Message ID | 20240318203925.2837689-1-l.stach@pengutronix.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/3] drm/bridge: analogix_dp: properly handle zero sized AUX transactions | expand |
On Mon, Mar 18, 2024 at 9:39 PM Lucas Stach <l.stach@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@vger.kernel.org > Signed-off-by: Lucas Stach <l.stach@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@kernel.org>
On Mon, 18 Mar 2024 21:39:23 +0100, Lucas Stach 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. > > Fixed checkpatch --strict formatting suggestions and applied, thanks! [1/3] drm/bridge: analogix_dp: properly handle zero sized AUX transactions https://cgit.freedesktop.org/drm/drm-misc/commit/?id=e82290a2e0e8 [2/3] drm/bridge: analogix_dp: simplify analogix_dp_{set/get}_lane_link_training helpers https://cgit.freedesktop.org/drm/drm-misc/commit/?id=3747c9818954 [3/3] drm/bridge: analogix_dp: don't adjust further when clock recovery succeeded https://cgit.freedesktop.org/drm/drm-misc/commit/?id=35e7a72a6719 Rob
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 */
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@vger.kernel.org Signed-off-by: Lucas Stach <l.stach@pengutronix.de> --- drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)