Skip to content

Commit

Permalink
drm: zynqmp_dp: Convert to a hard IRQ
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Sean Anderson authored and Tomi Valkeinen committed Oct 30, 2024
1 parent 851daf0 commit 948a944
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions drivers/gpu/drm/xlnx/zynqmp_dp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1831,9 +1831,8 @@ int zynqmp_dp_probe(struct zynqmp_dpsub *dpsub)
* Now that the hardware is initialized and won't generate spurious
* interrupts, request the IRQ.
*/
ret = devm_request_threaded_irq(dp->dev, dp->irq, NULL,
zynqmp_dp_irq_handler, IRQF_ONESHOT,
dev_name(dp->dev), dp);
ret = devm_request_irq(dp->dev, dp->irq, zynqmp_dp_irq_handler,
IRQF_SHARED, dev_name(dp->dev), dp);
if (ret < 0)
goto err_phy_exit;

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

zynqmp_dp_write(dp, ZYNQMP_DP_INT_DS, ZYNQMP_DP_INT_ALL);
disable_irq(dp->irq);
devm_free_irq(dp->dev, dp->irq, dp);

cancel_work_sync(&dp->hpd_irq_work);
cancel_work_sync(&dp->hpd_work);
Expand Down

0 comments on commit 948a944

Please sign in to comment.