Skip to content

Commit 948a944

Browse files
Sean Andersontomba
authored andcommitted
drm: zynqmp_dp: Convert to a hard IRQ
Now that all of the sleeping work is done outside of the IRQ, we can convert it to a hard IRQ. Shared IRQs may be triggered even after calling disable_irq, so use free_irq instead which removes our callback altogether. Signed-off-by: Sean Anderson <sean.anderson@linux.dev> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240809193600.3360015-5-sean.anderson@linux.dev
1 parent 851daf0 commit 948a944

1 file changed

Lines changed: 3 additions & 4 deletions

File tree

drivers/gpu/drm/xlnx/zynqmp_dp.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1831,9 +1831,8 @@ int zynqmp_dp_probe(struct zynqmp_dpsub *dpsub)
18311831
* Now that the hardware is initialized and won't generate spurious
18321832
* interrupts, request the IRQ.
18331833
*/
1834-
ret = devm_request_threaded_irq(dp->dev, dp->irq, NULL,
1835-
zynqmp_dp_irq_handler, IRQF_ONESHOT,
1836-
dev_name(dp->dev), dp);
1834+
ret = devm_request_irq(dp->dev, dp->irq, zynqmp_dp_irq_handler,
1835+
IRQF_SHARED, dev_name(dp->dev), dp);
18371836
if (ret < 0)
18381837
goto err_phy_exit;
18391838

@@ -1858,7 +1857,7 @@ void zynqmp_dp_remove(struct zynqmp_dpsub *dpsub)
18581857
struct zynqmp_dp *dp = dpsub->dp;
18591858

18601859
zynqmp_dp_write(dp, ZYNQMP_DP_INT_DS, ZYNQMP_DP_INT_ALL);
1861-
disable_irq(dp->irq);
1860+
devm_free_irq(dp->dev, dp->irq, dp);
18621861

18631862
cancel_work_sync(&dp->hpd_irq_work);
18641863
cancel_work_sync(&dp->hpd_work);

0 commit comments

Comments
 (0)