[PATCH 1/3] drm/bridge: analogix_dp: properly handle zero sized AUX transactions

Robert Foss rfoss at kernel.org
Wed May 29 14:24:01 UTC 2024


On Mon, Mar 18, 2024 at 9:39 PM Lucas Stach <l.stach at pengutronix.de> wrote:
>
> Address only transactions without any data are valid and should not
> be flagged as short transactions. Simply return the message size when
> no transaction errors occured.
>
> CC: stable at vger.kernel.org
> Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
> ---
>  drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> index 6a4f20fccf84..7b0bc9704eac 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> @@ -1027,7 +1027,6 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,
>         u32 status_reg;
>         u8 *buffer = msg->buffer;
>         unsigned int i;
> -       int num_transferred = 0;
>         int ret;
>
>         /* Buffer size of AUX CH is 16 bytes */
> @@ -1079,7 +1078,6 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,
>                         reg = buffer[i];
>                         writel(reg, dp->reg_base + ANALOGIX_DP_BUF_DATA_0 +
>                                4 * i);
> -                       num_transferred++;
>                 }
>         }
>
> @@ -1127,7 +1125,6 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,
>                         reg = readl(dp->reg_base + ANALOGIX_DP_BUF_DATA_0 +
>                                     4 * i);
>                         buffer[i] = (unsigned char)reg;
> -                       num_transferred++;
>                 }
>         }
>
> @@ -1144,7 +1141,7 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,
>                  (msg->request & ~DP_AUX_I2C_MOT) == DP_AUX_NATIVE_READ)
>                 msg->reply = DP_AUX_NATIVE_REPLY_ACK;
>
> -       return num_transferred > 0 ? num_transferred : -EBUSY;
> +       return msg->size;
>
>  aux_error:
>         /* if aux err happen, reset aux */
> --
> 2.39.2
>

Reviewed-by: Robert Foss <rfoss at kernel.org>


More information about the dri-devel mailing list