From 126d216d7171218c76fb2b01e1aae0253dce7b35 Mon Sep 17 00:00:00 2001 From: Wyon Bi Date: Mon, 17 Dec 2018 15:48:48 +0800 Subject: [PATCH] drm/bridge/analogix: anx6345: Fix color depth configuration Change-Id: Ifa805c62c5d6003f6b2c1a243c0f6e2c8274c681 Signed-off-by: Wyon Bi --- .../drm/bridge/analogix/analogix-anx6345.c | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c index 7d82e9fce8e8..6364bfbe770a 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c +++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c @@ -233,11 +233,28 @@ static int anx6345_dp_link_training(struct anx6345 *anx6345) static int anx6345_tx_initialization(struct anx6345 *anx6345) { + struct drm_display_info *di = &anx6345->connector.display_info; int err, i; + u32 color_depth; + + switch (di->bpc) { + case 12: + color_depth = SP_IN_BPC_12BIT; + break; + case 10: + color_depth = SP_IN_BPC_10BIT; + break; + case 6: + color_depth = SP_IN_BPC_6BIT; + break; + case 8: + default: + color_depth = SP_IN_BPC_8BIT; + break; + } - /* FIXME: hardcode color depth now */ err = regmap_write(anx6345->map[I2C_IDX_TXCOM], SP_VID_CTRL2_REG, - SP_IN_BPC_6BIT << SP_IN_BPC_SHIFT); + color_depth << SP_IN_BPC_SHIFT); if (err) return err;