[PATCH 3/6] drm/vc4: Take the IRQ number from vc4_dev in vc4_irq_install()

Maíra Canal <[email protected]>
Newsgroups org.freedesktop.lists.dri-devel
Message-ID <[email protected]>
vc4_irq_install() is handed the IRQ number as an argument even though
vc4_v3d_bind() has already stored it in vc4->irq, which is where
vc4_irq_disable() reads it from. Having a single source for it makes the
two paths agree by construction.

While at it, drop the IRQ_NOTCONNECTED check. platform_get_irq() doesn't
return that value, and vc4_v3d_bind() already refuses to continue on a
negative return, so the test can never be true.

No functional change.

Signed-off-by: Maíra Canal <[email protected]>
---
 drivers/gpu/drm/vc4/vc4_drv.h | 2 +-
 drivers/gpu/drm/vc4/vc4_irq.c | 7 ++-----
 drivers/gpu/drm/vc4/vc4_v3d.c | 2 +-
 3 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h
index 35b9b574671b..38f539cb49f4 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.h
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
@@ -1015,7 +1015,7 @@ extern struct platform_driver vc4_txp_driver;
 /* vc4_irq.c */
 void vc4_irq_enable(struct drm_device *dev);
 void vc4_irq_disable(struct drm_device *dev);
-int vc4_irq_install(struct drm_device *dev, int irq);
+int vc4_irq_install(struct drm_device *dev);
 void vc4_irq_uninstall(struct drm_device *dev);
 void vc4_irq_reset(struct drm_device *dev);
 
diff --git a/drivers/gpu/drm/vc4/vc4_irq.c b/drivers/gpu/drm/vc4/vc4_irq.c
index 95b1a8ad848b..a1004c64e71b 100644
--- a/drivers/gpu/drm/vc4/vc4_irq.c
+++ b/drivers/gpu/drm/vc4/vc4_irq.c
@@ -283,7 +283,7 @@ vc4_irq_disable(struct drm_device *dev)
 	cancel_work_sync(&vc4->overflow_mem_work);
 }
 
-int vc4_irq_install(struct drm_device *dev, int irq)
+int vc4_irq_install(struct drm_device *dev)
 {
 	struct vc4_dev *vc4 = to_vc4_dev(dev);
 	int ret;
@@ -294,9 +294,6 @@ int vc4_irq_install(struct drm_device *dev, int irq)
 	if (!vc4->v3d)
 		return -ENODEV;
 
-	if (irq == IRQ_NOTCONNECTED)
-		return -ENOTCONN;
-
 	init_waitqueue_head(&vc4->job_wait_queue);
 	INIT_WORK(&vc4->overflow_mem_work, vc4_overflow_mem_work);
 
@@ -305,7 +302,7 @@ int vc4_irq_install(struct drm_device *dev, int irq)
 	 */
 	V3D_WRITE(V3D_INTCTL, V3D_DRIVER_IRQS);
 
-	ret = devm_request_irq(dev->dev, irq, vc4_irq, 0,
+	ret = devm_request_irq(dev->dev, vc4->irq, vc4_irq, 0,
 			       dev_name(dev->dev), dev);
 	if (ret)
 		return ret;
diff --git a/drivers/gpu/drm/vc4/vc4_v3d.c b/drivers/gpu/drm/vc4/vc4_v3d.c
index 9aa8985e0428..818997ded33a 100644
--- a/drivers/gpu/drm/vc4/vc4_v3d.c
+++ b/drivers/gpu/drm/vc4/vc4_v3d.c
@@ -466,7 +466,7 @@ static int vc4_v3d_bind(struct device *dev, struct device *master, void *data)
 	V3D_WRITE(V3D_BPOA, 0);
 	V3D_WRITE(V3D_BPOS, 0);
 
-	ret = vc4_irq_install(drm, vc4->irq);
+	ret = vc4_irq_install(drm);
 	if (ret) {
 		drm_err(drm, "Failed to install IRQ handler\n");
 		goto err_put_runtime_pm;

-- 
2.55.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.