From 9cf42b295fb379883deaee09a3333c192794eb4c Mon Sep 17 00:00:00 2001 From: Vishwaroop A Date: Thu, 9 Dec 2021 02:12:42 +0000 Subject: [PATCH] dc: bridge: update link_select shift value Add a macro to handle the shift value for link select. Change-Id: Id43090c3d9b3b72cae22286f2d1c85548e8b5a63 Signed-off-by: Vishwaroop A Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2639102 Tested-by: mobile promotions Reviewed-by: svcacv Reviewed-by: Shu Zhong Reviewed-by: svc_kernel_abi Reviewed-by: mobile promotions GVS: Gerrit_Virtual_Submit --- .../tegra/dc/bridge/maxim_gmsl_dp_serializer.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/video/tegra/dc/bridge/maxim_gmsl_dp_serializer.c b/drivers/video/tegra/dc/bridge/maxim_gmsl_dp_serializer.c index 0fd1dbe3..56a386d7 100644 --- a/drivers/video/tegra/dc/bridge/maxim_gmsl_dp_serializer.c +++ b/drivers/video/tegra/dc/bridge/maxim_gmsl_dp_serializer.c @@ -50,6 +50,7 @@ #define MAX_GMSL_DP_SER_VID_TX_MASK (1 << 0) #define MAX_GMSL_DP_SER_VID_TX_LINK_MASK (3 << 1) +#define MAX_GMSL_DP_SER_LINK_SEL_SHIFT_VAL 0x1 #define MAX_GMSL_DP_SER_PHY_EDP_0_CTRL0_B0 0x6064 #define MAX_GMSL_DP_SER_PHY_EDP_0_CTRL0_B1 0x6065 @@ -138,6 +139,8 @@ static inline void max_gmsl_dp_ser_update(struct max_gmsl_dp_ser_priv *priv, static void max_gmsl_dp_ser_sst_setup(struct max_gmsl_dp_ser_priv *priv) { + u8 gmsl_link_select_value = 0; + max_gmsl_dp_ser_write(priv, MAX_GMSL_DP_SER_PHY_EDP_0_CTRL0_B0, 0x0f); max_gmsl_dp_ser_write(priv, MAX_GMSL_DP_SER_PHY_EDP_0_CTRL0_B1, 0x0f); max_gmsl_dp_ser_write(priv, MAX_GMSL_DP_SER_PHY_EDP_1_CTRL0_B0, 0x0f); @@ -158,18 +161,21 @@ static void max_gmsl_dp_ser_sst_setup(struct max_gmsl_dp_ser_priv *priv) max_gmsl_dp_ser_write(priv, MAX_GMSL_DP_SER_MAX_LINK_COUNT, priv->dprx_lane_count); + gmsl_link_select_value = (priv->gmsl_link_select << + MAX_GMSL_DP_SER_LINK_SEL_SHIFT_VAL); + max_gmsl_dp_ser_update(priv, MAX_GMSL_DP_SER_VID_TX_X, MAX_GMSL_DP_SER_VID_TX_LINK_MASK, - priv->gmsl_link_select); + gmsl_link_select_value); max_gmsl_dp_ser_update(priv, MAX_GMSL_DP_SER_VID_TX_Y, MAX_GMSL_DP_SER_VID_TX_LINK_MASK, - priv->gmsl_link_select); + gmsl_link_select_value); max_gmsl_dp_ser_update(priv, MAX_GMSL_DP_SER_VID_TX_Z, MAX_GMSL_DP_SER_VID_TX_LINK_MASK, - priv->gmsl_link_select); + gmsl_link_select_value); max_gmsl_dp_ser_update(priv, MAX_GMSL_DP_SER_VID_TX_U, MAX_GMSL_DP_SER_VID_TX_LINK_MASK, - priv->gmsl_link_select); + gmsl_link_select_value); max_gmsl_dp_ser_update(priv, MAX_GMSL_DP_SER_I2C_SPEED_CAPABILITY, MAX_GMSL_DP_SER_I2C_SPEED_CAPABILITY_MASK,