Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm: zynqmp_dp: Don't delay work

We always call scheduled_delayed_work with no delay, so just use a
non-delayed work_struct instead.

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/20240503192922.2172314-4-sean.anderson@linux.dev

authored by

Sean Anderson and committed by
Tomi Valkeinen
af197bef c194dd02

+6 -7
+6 -7
drivers/gpu/drm/xlnx/zynqmp_dp.c
··· 298 298 struct zynqmp_dp { 299 299 struct drm_dp_aux aux; 300 300 struct drm_bridge bridge; 301 - struct delayed_work hpd_work; 301 + struct work_struct hpd_work; 302 302 303 303 struct drm_bridge *next_bridge; 304 304 struct device *dev; ··· 1482 1482 struct zynqmp_dp *dp = bridge_to_dp(bridge); 1483 1483 1484 1484 dp->enabled = false; 1485 - cancel_delayed_work(&dp->hpd_work); 1485 + cancel_work(&dp->hpd_work); 1486 1486 zynqmp_dp_write(dp, ZYNQMP_DP_MAIN_STREAM_ENABLE, 0); 1487 1487 drm_dp_dpcd_writeb(&dp->aux, DP_SET_POWER, DP_SET_POWER_D3); 1488 1488 zynqmp_dp_write(dp, ZYNQMP_DP_TX_PHY_POWER_DOWN, ··· 1648 1648 1649 1649 static void zynqmp_dp_hpd_work_func(struct work_struct *work) 1650 1650 { 1651 - struct zynqmp_dp *dp = container_of(work, struct zynqmp_dp, 1652 - hpd_work.work); 1651 + struct zynqmp_dp *dp = container_of(work, struct zynqmp_dp, hpd_work); 1653 1652 enum drm_connector_status status; 1654 1653 1655 1654 status = zynqmp_dp_bridge_detect(&dp->bridge); ··· 1684 1685 zynqmp_dpsub_drm_handle_vblank(dp->dpsub); 1685 1686 1686 1687 if (status & ZYNQMP_DP_INT_HPD_EVENT) 1687 - schedule_delayed_work(&dp->hpd_work, 0); 1688 + schedule_work(&dp->hpd_work); 1688 1689 1689 1690 if (status & ZYNQMP_DP_INT_HPD_IRQ) { 1690 1691 int ret; ··· 1726 1727 dp->dpsub = dpsub; 1727 1728 dp->status = connector_status_disconnected; 1728 1729 1729 - INIT_DELAYED_WORK(&dp->hpd_work, zynqmp_dp_hpd_work_func); 1730 + INIT_WORK(&dp->hpd_work, zynqmp_dp_hpd_work_func); 1730 1731 1731 1732 /* Acquire all resources (IOMEM, IRQ and PHYs). */ 1732 1733 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dp"); ··· 1831 1832 zynqmp_dp_write(dp, ZYNQMP_DP_INT_DS, ZYNQMP_DP_INT_ALL); 1832 1833 disable_irq(dp->irq); 1833 1834 1834 - cancel_delayed_work_sync(&dp->hpd_work); 1835 + cancel_work_sync(&dp->hpd_work); 1835 1836 1836 1837 zynqmp_dp_write(dp, ZYNQMP_DP_TRANSMITTER_ENABLE, 0); 1837 1838 zynqmp_dp_write(dp, ZYNQMP_DP_INT_DS, 0xffffffff);