[PATCH 14/14] drm/bridge: analogix_dp: handle AUX transfer timeouts
Robert Foss
rfoss at kernel.org
Mon Jun 10 04:57:52 PDT 2024
On Fri, May 3, 2024 at 5:12 PM Lucas Stach <l.stach at pengutronix.de> wrote:
>
> 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 at pengutronix.de>
> ---
> drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 3 +++
> drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h | 9 +++++++++
> 2 files changed, 12 insertions(+)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> index 0f016dca9f3d..3afc73c858c4 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
> @@ -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;
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h
> index e284ee8da58b..12735139046c 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h
> @@ -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)
> --
> 2.39.2
>
Reviewed-by: Robert Foss <rfoss at kernel.org>
This series has a few checkpath --strict warnings, could you fix those
and I'll merge v2?
Rob.
More information about the Linux-rockchip
mailing list