[PATCH 1/4] drm/msm/dp: remove redundant checks related to ST_DISPLAY_OFF in plug/irq_ipd handlers
Dmitry Baryshkov
dmitry.baryshkov at linaro.org
Tue Dec 3 13:50:17 UTC 2024
On Mon, Dec 02, 2024 at 04:39:00PM -0800, Abhinav Kumar wrote:
> In commit 8ede2ecc3e5ee ("drm/msm/dp: Add DP compliance tests on Snapdragon Chipsets"),
> checks were introduced to avoid handling any plug or irq hpd events in
> ST_DISPLAY_OFF state.
>
> Even if we do get hpd events, after the bridge was disabled,
> it should get handled. Moreover, its unclear under what circumstances
> these events will fire because ST_DISPLAY_OFF means that the link was
> still connected but only the bridge was disabled. If the link was untouched,
> then interrupts shouldn't fire.
What about the link being untouched, but the monitor being toggled
somehow, which might generate HPD / attention events?
>
> Even in the case of the DP compliance equipment, it should be raising these
> interrupts during the start of the test which is usually accompanied with either
> a HPD pulse or a IRQ HPD but after the bridge is disabled it should be fine
> to handle these anyway. In the absence of a better reason to keep these checks,
> drop these and if any other issues do arise, it should be handled in a different
> way.
>
> Signed-off-by: Abhinav Kumar <quic_abhinavk at quicinc.com>
> ---
> drivers/gpu/drm/msm/dp/dp_display.c | 10 ----------
> 1 file changed, 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
> index aba925aab7ad..992184cc17e4 100644
> --- a/drivers/gpu/drm/msm/dp/dp_display.c
> +++ b/drivers/gpu/drm/msm/dp/dp_display.c
> @@ -562,11 +562,6 @@ static int msm_dp_hpd_plug_handle(struct msm_dp_display_private *dp, u32 data)
> drm_dbg_dp(dp->drm_dev, "Before, type=%d hpd_state=%d\n",
> dp->msm_dp_display.connector_type, state);
>
> - if (state == ST_DISPLAY_OFF) {
> - mutex_unlock(&dp->event_mutex);
> - return 0;
> - }
> -
> if (state == ST_MAINLINK_READY || state == ST_CONNECTED) {
> mutex_unlock(&dp->event_mutex);
> return 0;
> @@ -689,11 +684,6 @@ static int msm_dp_irq_hpd_handle(struct msm_dp_display_private *dp, u32 data)
> drm_dbg_dp(dp->drm_dev, "Before, type=%d hpd_state=%d\n",
> dp->msm_dp_display.connector_type, state);
>
> - if (state == ST_DISPLAY_OFF) {
> - mutex_unlock(&dp->event_mutex);
> - return 0;
> - }
> -
> if (state == ST_MAINLINK_READY || state == ST_DISCONNECT_PENDING) {
> /* wait until ST_CONNECTED */
> msm_dp_add_event(dp, EV_IRQ_HPD_INT, 0, 1); /* delay = 1 */
>
> --
> 2.34.1
>
--
With best wishes
Dmitry
More information about the Freedreno
mailing list