drm/radeon: Track IRQ state in local device state
authorThomas Zimmermann <tzimmermann@suse.de>
Fri, 25 Jun 2021 08:21:58 +0000 (10:21 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 29 Jun 2021 09:03:32 +0000 (11:03 +0200)
Replace usage of struct drm_device.irq_enabled with the driver's
own state field struct radeon_device.irq.installed. The field in
the DRM device structure is considered legacy and should not be
used by KMS drivers.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20210625082222.3845-4-tzimmermann@suse.de
drivers/gpu/drm/radeon/radeon_fence.c
drivers/gpu/drm/radeon/radeon_irq_kms.c

index 0d8ef2368adfea5aae43709a447373055eba38fc..7ec581363e23371b8f6f11fce363ebdc30d4b3fe 100644 (file)
@@ -288,7 +288,7 @@ static void radeon_fence_check_lockup(struct work_struct *work)
                return;
        }
 
-       if (fence_drv->delayed_irq && rdev->ddev->irq_enabled) {
+       if (fence_drv->delayed_irq && rdev->irq.installed) {
                unsigned long irqflags;
 
                fence_drv->delayed_irq = false;
index 84d0b1a3355f36c427923b9c7f220e79b6a9521e..a36ce826d0c0baccfc1f5a1317116952d3fbd136 100644 (file)
@@ -357,7 +357,7 @@ void radeon_irq_kms_sw_irq_get(struct radeon_device *rdev, int ring)
 {
        unsigned long irqflags;
 
-       if (!rdev->ddev->irq_enabled)
+       if (!rdev->irq.installed)
                return;
 
        if (atomic_inc_return(&rdev->irq.ring_int[ring]) == 1) {
@@ -396,7 +396,7 @@ void radeon_irq_kms_sw_irq_put(struct radeon_device *rdev, int ring)
 {
        unsigned long irqflags;
 
-       if (!rdev->ddev->irq_enabled)
+       if (!rdev->irq.installed)
                return;
 
        if (atomic_dec_and_test(&rdev->irq.ring_int[ring])) {
@@ -422,7 +422,7 @@ void radeon_irq_kms_pflip_irq_get(struct radeon_device *rdev, int crtc)
        if (crtc < 0 || crtc >= rdev->num_crtc)
                return;
 
-       if (!rdev->ddev->irq_enabled)
+       if (!rdev->irq.installed)
                return;
 
        if (atomic_inc_return(&rdev->irq.pflip[crtc]) == 1) {
@@ -448,7 +448,7 @@ void radeon_irq_kms_pflip_irq_put(struct radeon_device *rdev, int crtc)
        if (crtc < 0 || crtc >= rdev->num_crtc)
                return;
 
-       if (!rdev->ddev->irq_enabled)
+       if (!rdev->irq.installed)
                return;
 
        if (atomic_dec_and_test(&rdev->irq.pflip[crtc])) {
@@ -470,7 +470,7 @@ void radeon_irq_kms_enable_afmt(struct radeon_device *rdev, int block)
 {
        unsigned long irqflags;
 
-       if (!rdev->ddev->irq_enabled)
+       if (!rdev->irq.installed)
                return;
 
        spin_lock_irqsave(&rdev->irq.lock, irqflags);
@@ -492,7 +492,7 @@ void radeon_irq_kms_disable_afmt(struct radeon_device *rdev, int block)
 {
        unsigned long irqflags;
 
-       if (!rdev->ddev->irq_enabled)
+       if (!rdev->irq.installed)
                return;
 
        spin_lock_irqsave(&rdev->irq.lock, irqflags);
@@ -514,7 +514,7 @@ void radeon_irq_kms_enable_hpd(struct radeon_device *rdev, unsigned hpd_mask)
        unsigned long irqflags;
        int i;
 
-       if (!rdev->ddev->irq_enabled)
+       if (!rdev->irq.installed)
                return;
 
        spin_lock_irqsave(&rdev->irq.lock, irqflags);
@@ -537,7 +537,7 @@ void radeon_irq_kms_disable_hpd(struct radeon_device *rdev, unsigned hpd_mask)
        unsigned long irqflags;
        int i;
 
-       if (!rdev->ddev->irq_enabled)
+       if (!rdev->irq.installed)
                return;
 
        spin_lock_irqsave(&rdev->irq.lock, irqflags);