Skip to content

Commit

Permalink
drm/bridge: analogix_dp: handle AUX transfer timeouts
Browse files Browse the repository at this point in the history
Timeouts on the AUX bus are to be expected in certain normal operating
conditions. There is no need to raise an error log or re-initialize the
whole AUX state machine. Simply acknowledge the AUX_ERR interrupt and
let upper layers know about the timeout.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Robert Foss <rfoss@kernel.org>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Robert Foss <rfoss@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240619182200.3752465-14-l.stach@pengutronix.de
  • Loading branch information
Lucas Stach authored and Robert Foss committed Jun 27, 2024
1 parent e857142 commit 61bfcd1
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 0 deletions.
3 changes: 3 additions & 0 deletions drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
Original file line number Diff line number Diff line change
Expand Up @@ -1016,6 +1016,9 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,

writel(AUX_ERR, dp->reg_base + ANALOGIX_DP_INT_STA);

if (aux_status == AUX_STATUS_TIMEOUT_ERROR)
return -ETIMEDOUT;

dev_warn(dp->dev, "AUX CH error happened: %#x (%d)\n",
aux_status, !!(reg & AUX_ERR));
goto aux_error;
Expand Down
9 changes: 9 additions & 0 deletions drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,15 @@
/* ANALOGIX_DP_AUX_CH_STA */
#define AUX_BUSY (0x1 << 4)
#define AUX_STATUS_MASK (0xf << 0)
#define AUX_STATUS_OK (0x0 << 0)
#define AUX_STATUS_NACK_ERROR (0x1 << 0)
#define AUX_STATUS_TIMEOUT_ERROR (0x2 << 0)
#define AUX_STATUS_UNKNOWN_ERROR (0x3 << 0)
#define AUX_STATUS_MUCH_DEFER_ERROR (0x4 << 0)
#define AUX_STATUS_TX_SHORT_ERROR (0x5 << 0)
#define AUX_STATUS_RX_SHORT_ERROR (0x6 << 0)
#define AUX_STATUS_NACK_WITHOUT_M_ERROR (0x7 << 0)
#define AUX_STATUS_I2C_NACK_ERROR (0x8 << 0)

/* ANALOGIX_DP_AUX_CH_DEFER_CTL */
#define DEFER_CTRL_EN (0x1 << 7)
Expand Down

0 comments on commit 61bfcd1

Please sign in to comment.