From 4088261539038bbfd5d5f4ba0d3ff76858c7c3df Mon Sep 17 00:00:00 2001 From: Vishwaroop A Date: Mon, 16 May 2022 11:16:55 +0000 Subject: [PATCH] dc: serializer: fix dt progamming in driver Device tree has been updated to use <0x0 0x0 0x1 0x1> instead of /bits/ 8 <0x0 0x0 0x1 0x1>. Fix the device tree parsing logic to fetch the data correctly. Bug 3645731 Change-Id: I51ce1194ffb4c71526d1d74a3a5dbbcfe2f18a51 Signed-off-by: Vishwaroop A Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2713103 Reviewed-by: svcacv Reviewed-by: svc_kernel_abi Reviewed-by: svc-mobile-coverity Reviewed-by: svc-mobile-cert Reviewed-by: Shu Zhong GVS: Gerrit_Virtual_Submit --- .../tegra/dc/bridge/maxim_gmsl_dp_serializer.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 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 45bf42ba..68f2beb4 100644 --- a/drivers/video/tegra/dc/bridge/maxim_gmsl_dp_serializer.c +++ b/drivers/video/tegra/dc/bridge/maxim_gmsl_dp_serializer.c @@ -121,9 +121,9 @@ struct max_gmsl_dp_ser_priv { int ser_errb; unsigned int ser_irq; bool enable_mst; - u8 mst_payload_ids[MAX_GMSL_ARRAY_SIZE]; - u8 gmsl_stream_ids[MAX_GMSL_ARRAY_SIZE]; - u8 gmsl_link_select[MAX_GMSL_ARRAY_SIZE]; + u32 mst_payload_ids[MAX_GMSL_ARRAY_SIZE]; + u32 gmsl_stream_ids[MAX_GMSL_ARRAY_SIZE]; + u32 gmsl_link_select[MAX_GMSL_ARRAY_SIZE]; bool link_a_is_enabled; bool link_b_is_enabled; }; @@ -200,7 +200,7 @@ static void max_gmsl_dp_ser_mst_setup(struct max_gmsl_dp_ser_priv *priv) static void max_gmsl_dp_ser_setup(struct max_gmsl_dp_ser_priv *priv) { int i; - u8 gmsl_link_select_value = 0; + u32 gmsl_link_select_value = 0; static const int max_gmsl_ser_vid_tx_regs[] = { MAX_GMSL_DP_SER_VID_TX_X, MAX_GMSL_DP_SER_VID_TX_Y, @@ -244,7 +244,7 @@ static void max_gmsl_dp_ser_setup(struct max_gmsl_dp_ser_priv *priv) max_gmsl_dp_ser_mst_setup(priv); } -static bool max_gmsl_dp_ser_check_dups(u8 *ids) +static bool max_gmsl_dp_ser_check_dups(u32 *ids) { int i = 0, j = 0; @@ -447,7 +447,7 @@ static int max_gmsl_dp_ser_parse_mst_props(struct i2c_client *client, dev_info(dev, "%s: MST mode not enabled:\n", __func__); if (priv->enable_mst) { - err = of_property_read_variable_u8_array(ser, + err = of_property_read_variable_u32_array(ser, "mst-payload-ids", priv->mst_payload_ids, 1, ARRAY_SIZE(priv->mst_payload_ids)); @@ -466,7 +466,7 @@ static int max_gmsl_dp_ser_parse_mst_props(struct i2c_client *client, return -EINVAL; } - err = of_property_read_variable_u8_array(ser, + err = of_property_read_variable_u32_array(ser, "gmsl-stream-ids", priv->gmsl_stream_ids, 1, ARRAY_SIZE(priv->gmsl_stream_ids)); @@ -534,7 +534,7 @@ static int max_gmsl_dp_ser_parse_dt(struct i2c_client *client, dev_info(dev, "%s: - dprx-link-rate %i\n", __func__, val); } - err = of_property_read_variable_u8_array(ser, "gmsl-link-select", + err = of_property_read_variable_u32_array(ser, "gmsl-link-select", priv->gmsl_link_select, 1, ARRAY_SIZE(priv->gmsl_link_select)); if (err < 0) {