All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Yongxing Mou" <yongxing.mou@oss.qualcomm.com>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v8 26/29] drm/msm/dp: wake threaded handler for HPD IRQs
Date: Tue, 10 Nov 2026 05:21:05 +0000	[thread overview]
Message-ID: <sashiko-outbox-206275@kernel.org> (raw)
In-Reply-To: <20261110-msm-dp-mst-v8-26-d040fb33db5f@oss.qualcomm.com>

Thank you for your contribution! Sashiko AI review found 1 potential
issue to consider:
- [Medium] drm/msm/dp: ret initialized to IRQ_HANDLED in
  msm_dp_display_irq_handler()
--

commit ee3e939cb1174f2996abe5c5ad053dbd42ebbbaa
Author: Yongxing Mou <yongxing.mou@oss.qualcomm.com>

drm/msm/dp: wake threaded handler for HPD IRQs

This commit fixes msm_dp_display_irq_handler() to return IRQ_WAKE_THREAD
when an HPD interrupt is pending, and updates msm_dp_ctrl_isr() to report
DP_INTERRUPT_STATUS2 interrupts as IRQ_HANDLED.

> diff --git a/drivers/gpu/drm/msm/dp/dp_ctrl.c b/drivers/gpu/drm/msm/dp/dp_ctrl.c
> index 82fb3ae750f42..5623693d9242e 100644
> --- a/drivers/gpu/drm/msm/dp/dp_ctrl.c
> +++ b/drivers/gpu/drm/msm/dp/dp_ctrl.c
> @@ -3018,6 +3018,9 @@ irqreturn_t msm_dp_ctrl_isr(struct msm_dp_ctrl *msm_dp_ctrl,
>  	}
>  
>  	isr = msm_dp_ctrl_get_interrupt(ctrl);
> +	/* All status2 sources are ACKed by msm_dp_ctrl_get_interrupt(). */
> +	if (isr & DP_INTERRUPT_STATUS2)
> +		ret = IRQ_HANDLED;
>  
>  	if (isr & DP_CTRL_INTR_READY_FOR_VIDEO) {
>  		drm_dbg_dp(ctrl->drm_dev, "dp_video_ready\n");
> diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
> index 8ea3d258a98f3..40b2f6e120cf0 100644
> --- a/drivers/gpu/drm/msm/dp/dp_display.c
> +++ b/drivers/gpu/drm/msm/dp/dp_display.c
> @@ -1091,23 +1091,24 @@ static irqreturn_t msm_dp_display_irq_handler(int irq, void *dev_id)
>  	u32 hpd_isr_status;
>  	unsigned long flags;
>  	irqreturn_t ret = IRQ_HANDLED;
> +	bool hpd_irq_pending;
>  
>  	hpd_isr_status = msm_dp_aux_get_hpd_intr_status(dp->aux);
> +	hpd_irq_pending = hpd_isr_status & DP_DP_HPD_INT_MASK;
>  
> -	if (hpd_isr_status & 0x0F) {
> +	if (hpd_irq_pending) {
>  		drm_dbg_dp(dp->drm_dev, "type=%d isr=0x%x\n",
>  			dp->msm_dp_display.connector_type, hpd_isr_status);
>  
>  		spin_lock_irqsave(&dp->irq_thread_lock, flags);
>  		dp->hpd_isr_status |= hpd_isr_status;
> -		ret = IRQ_WAKE_THREAD;
>  		spin_unlock_irqrestore(&dp->irq_thread_lock, flags);
>  	}
>  
>  	/* DP controller isr */
>  	ret |= msm_dp_ctrl_isr(dp->ctrl, dp->panel);
>  
> -	return ret;
> +	return hpd_irq_pending ? IRQ_WAKE_THREAD : ret;
>  }

[Severity: Medium]
Should ret in msm_dp_display_irq_handler() be initialized to IRQ_NONE (or
assigned directly from msm_dp_ctrl_isr()) instead of IRQ_HANDLED?

Because ret starts as IRQ_HANDLED (1) and msm_dp_ctrl_isr() only returns
IRQ_NONE (0) or IRQ_HANDLED (1), "ret |= msm_dp_ctrl_isr(...)" always
evaluates to IRQ_HANDLED.  This discards the return value of
msm_dp_ctrl_isr(), makes the new DP_INTERRUPT_STATUS2 check a no-op, and
prevents the IRQ core from ever seeing IRQ_NONE on unhandled or spurious
interrupts.

Also, if ret is changed to reflect msm_dp_ctrl_isr(), should the PSR
branch in msm_dp_ctrl_isr() set ret = IRQ_HANDLED when
msm_dp_ctrl_get_psr_interrupt(ctrl) returns a non-zero status?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261110-msm-dp-mst-v8-0-d040fb33db5f@oss.qualcomm.com?part=26

  reply	other threads:[~2026-11-10  5:21 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-10  4:54 [PATCH v8 00/29] drm/msm/dp: Add MST support for MSM chipsets Yongxing Mou
2026-11-10  4:54 ` [PATCH v8 01/29] drm/msm/dp: skip sink requests while the mainlink clocks are off Yongxing Mou
2026-11-11 14:25   ` Dmitry Baryshkov
2026-11-10  4:54 ` [PATCH v8 02/29] drm/msm/dp: add support to send ACT packets for MST Yongxing Mou
2026-11-10  5:11   ` sashiko-bot
2026-11-11 14:41   ` Dmitry Baryshkov
2026-11-12  2:21     ` Yongxing Mou
2026-11-10  4:54 ` [PATCH v8 03/29] drm/msm/dp: add support to enable MST in mainlink control Yongxing Mou
2026-11-10  4:54 ` [PATCH v8 04/29] drm/msm/dp: no need to update tu calculation for mst Yongxing Mou
2026-11-10  4:54 ` [PATCH v8 05/29] drm/msm/dp: always program MST_FIFO_CONSTANT_FILL for MST use cases Yongxing Mou
2026-11-10  4:54 ` [PATCH v8 06/29] drm/msm/dp: add support for sending VCPF packets in DP controller Yongxing Mou
2026-11-10  4:54 ` [PATCH v8 07/29] drm/msm/dp: add support for MST channel slot allocation Yongxing Mou
2026-11-10  5:21   ` sashiko-bot
2026-11-11 14:47   ` Dmitry Baryshkov
2026-11-10  4:54 ` [PATCH v8 08/29] drm/msm/dp: replace power_on with active_stream_mask Yongxing Mou
2026-11-11 14:48   ` Dmitry Baryshkov
2026-11-10  4:54 ` [PATCH v8 09/29] drm/msm/dp: factor out _helper variants of bridge ops accepting a panel Yongxing Mou
2026-11-10  4:54 ` [PATCH v8 10/29] drm/msm/dp: add link_ready to manage link-level operations Yongxing Mou
2026-11-10  5:21   ` sashiko-bot
2026-11-11 14:49   ` Dmitry Baryshkov
2026-11-10  4:54 ` [PATCH v8 11/29] drm/msm/dp: add msm_dp_display_get_panel() to initialize DP panel Yongxing Mou
2026-11-10  5:23   ` sashiko-bot
2026-11-10  4:54 ` [PATCH v8 12/29] drm/msm/dp: introduce dp_mst_drm module Yongxing Mou
2026-11-10  4:54 ` [PATCH v8 13/29] drm/msm/dp: add MST connector creation and topology callbacks Yongxing Mou
2026-11-10  5:24   ` sashiko-bot
2026-11-10  4:54 ` [PATCH v8 14/29] drm/msm/dpu: pass msm_display_info to dpu_encoder_get_intf() Yongxing Mou
2026-11-10  4:54 ` [PATCH v8 15/29] drm/msm/dpu: use stream_id to select MST interfaces Yongxing Mou
2026-11-10  5:08   ` sashiko-bot
2026-11-10  4:54 ` [PATCH v8 16/29] drm/msm/dpu: add per-stream MST encoders Yongxing Mou
2026-11-10  5:18   ` sashiko-bot
2026-11-10  4:54 ` [PATCH v8 17/29] drm/msm/dp: move link capabilities to dp_link Yongxing Mou
2026-11-10  4:54 ` [PATCH v8 18/29] drm/msm/dp: add atomic stream handling for MST Yongxing Mou
2026-11-10  5:33   ` sashiko-bot
2026-11-10  4:54 ` [PATCH v8 19/29] drm/bridge_connector: suppress hotplug for IRQ_HPD without status changes Yongxing Mou
2026-11-10  5:37   ` sashiko-bot
2026-11-10  4:54 ` [PATCH v8 20/29] drm/bridge_connector: avoid detect-based HPD notifications for DisplayPort Yongxing Mou
2026-11-10  5:38   ` sashiko-bot
2026-11-10  4:54 ` [PATCH v8 21/29] drm/msm/dp: add HPD callback for dp MST Yongxing Mou
2026-11-10  5:28   ` sashiko-bot
2026-11-10  4:54 ` [PATCH v8 22/29] drm/msm/dp: wire MST helpers into atomic check and commit paths Yongxing Mou
2026-11-10  5:18   ` sashiko-bot
2026-11-10  4:54 ` [PATCH v8 23/29] drm/msm/dp: mark the SST bridge disconnected when mst is active Yongxing Mou
2026-11-10  5:25   ` sashiko-bot
2026-11-10  4:54 ` [PATCH v8 24/29] drm/msm/dp: enable MST on capable sinks Yongxing Mou
2026-11-10  5:41   ` sashiko-bot
2026-11-10  4:54 ` [PATCH v8 25/29] drm/msm/dp: mark the SST bridge disconnected when an MST-capable sink is present Yongxing Mou
2026-11-10  5:29   ` sashiko-bot
2026-11-10  4:54 ` [PATCH v8 26/29] drm/msm/dp: wake threaded handler for HPD IRQs Yongxing Mou
2026-11-10  5:21   ` sashiko-bot [this message]
2026-11-10  4:54 ` [PATCH v8 27/29] drm/msm/dp: ignore IRQ HPD latched together with an unplug Yongxing Mou
2026-11-10  4:54 ` [PATCH v8 28/29] drm/msm/dp: select MST stream bpp during atomic check Yongxing Mou
2026-11-10  5:27   ` sashiko-bot
2026-11-10  4:54 ` [PATCH v8 29/29] soc: qcom: pmic-glink-altmode: skip retimer reset on DP IRQ Yongxing Mou
2026-11-10  9:34   ` Abel Vesa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=sashiko-outbox-206275@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=yongxing.mou@oss.qualcomm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.