lkml.org 
[lkml]   [2022]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.17 270/772] drm/bridge: anx7625: Use uint8 for lane-swing arrays
    Date
    From: Nícolas F. R. A. Prado <nfraprado@collabora.com>

    [ Upstream commit fb8da7f3111ab500606960bef1bb32450c664750 ]

    As defined in the anx7625 dt-binding, the analogix,lane0-swing and
    analogix,lane1-swing properties are uint8 arrays. Yet, the driver was
    reading the array as if it were of uint32 and masking to 8-bit before
    writing to the registers. This means that a devicetree written in
    accordance to the dt-binding would have its values incorrectly parsed.

    Fix the issue by reading the array as uint8 and storing them as uint8
    internally, so that we can also drop the masking when writing the
    registers.

    Fixes: fd0310b6fe7d ("drm/bridge: anx7625: add MIPI DPI input feature")
    Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Signed-off-by: Robert Foss <robert.foss@linaro.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220408013034.673418-1-nfraprado@collabora.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/bridge/analogix/anx7625.c | 12 ++++++------
    drivers/gpu/drm/bridge/analogix/anx7625.h | 4 ++--
    2 files changed, 8 insertions(+), 8 deletions(-)

    diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c
    index e596cacce9e3..ce04b17c0d3a 100644
    --- a/drivers/gpu/drm/bridge/analogix/anx7625.c
    +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c
    @@ -1201,12 +1201,12 @@ static void anx7625_dp_adjust_swing(struct anx7625_data *ctx)
    for (i = 0; i < ctx->pdata.dp_lane0_swing_reg_cnt; i++)
    anx7625_reg_write(ctx, ctx->i2c.tx_p1_client,
    DP_TX_LANE0_SWING_REG0 + i,
    - ctx->pdata.lane0_reg_data[i] & 0xFF);
    + ctx->pdata.lane0_reg_data[i]);

    for (i = 0; i < ctx->pdata.dp_lane1_swing_reg_cnt; i++)
    anx7625_reg_write(ctx, ctx->i2c.tx_p1_client,
    DP_TX_LANE1_SWING_REG0 + i,
    - ctx->pdata.lane1_reg_data[i] & 0xFF);
    + ctx->pdata.lane1_reg_data[i]);
    }

    static void dp_hpd_change_handler(struct anx7625_data *ctx, bool on)
    @@ -1313,8 +1313,8 @@ static int anx7625_get_swing_setting(struct device *dev,
    num_regs = DP_TX_SWING_REG_CNT;

    pdata->dp_lane0_swing_reg_cnt = num_regs;
    - of_property_read_u32_array(dev->of_node, "analogix,lane0-swing",
    - pdata->lane0_reg_data, num_regs);
    + of_property_read_u8_array(dev->of_node, "analogix,lane0-swing",
    + pdata->lane0_reg_data, num_regs);
    }

    if (of_get_property(dev->of_node,
    @@ -1323,8 +1323,8 @@ static int anx7625_get_swing_setting(struct device *dev,
    num_regs = DP_TX_SWING_REG_CNT;

    pdata->dp_lane1_swing_reg_cnt = num_regs;
    - of_property_read_u32_array(dev->of_node, "analogix,lane1-swing",
    - pdata->lane1_reg_data, num_regs);
    + of_property_read_u8_array(dev->of_node, "analogix,lane1-swing",
    + pdata->lane1_reg_data, num_regs);
    }

    return 0;
    diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.h b/drivers/gpu/drm/bridge/analogix/anx7625.h
    index 3d79b6fb13c8..8759d9441f4e 100644
    --- a/drivers/gpu/drm/bridge/analogix/anx7625.h
    +++ b/drivers/gpu/drm/bridge/analogix/anx7625.h
    @@ -370,9 +370,9 @@ struct anx7625_platform_data {
    int mipi_lanes;
    int audio_en;
    int dp_lane0_swing_reg_cnt;
    - int lane0_reg_data[DP_TX_SWING_REG_CNT];
    + u8 lane0_reg_data[DP_TX_SWING_REG_CNT];
    int dp_lane1_swing_reg_cnt;
    - int lane1_reg_data[DP_TX_SWING_REG_CNT];
    + u8 lane1_reg_data[DP_TX_SWING_REG_CNT];
    u32 low_power_mode;
    struct device_node *mipi_host_node;
    };
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-07 22:59    [W:4.106 / U:0.140 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site