diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c index 665483ee9c26..09d8ddc6b993 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -1372,6 +1372,11 @@ static irqreturn_t rk3588_hdmi_hardirq(int irq, void *dev_id) regmap_read(hdmi->regmap, RK3588_GRF_SOC_STATUS1, &intr_stat); + if (!hdmi->id) + intr_stat = intr_stat & RK3588_HDMI0_OHPD_INT; + else + intr_stat = intr_stat & RK3588_HDMI1_OHPD_INT; + if (intr_stat) { dev_dbg(hdmi->dev, "hpd irq %#x\n", intr_stat); @@ -1433,9 +1438,6 @@ static irqreturn_t rk3588_hdmi_thread(int irq, void *dev_id) regmap_read(hdmi->regmap, RK3588_GRF_SOC_STATUS1, &intr_stat); - if (!intr_stat) - return IRQ_NONE; - if (!hdmi->id) { val = HIWORD_UPDATE(RK3588_HDMI0_HPD_INT_CLR, RK3588_HDMI0_HPD_INT_CLR);