aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_irq_kms.c
diff options
context:
space:
mode:
authorIlija Hadzic <ihadzic@research.bell-labs.com>2011-10-26 15:43:58 -0400
committerDave Airlie <airlied@redhat.com>2011-11-01 12:02:10 -0400
commit54bd5206bf1615eadee5b87c64252c6991d737dc (patch)
tree7f4a198f3e8114cc4910bce5666a9848c2a3af96 /drivers/gpu/drm/radeon/radeon_irq_kms.c
parent77b1bad423599c9841ea282a82172f039bb2ff92 (diff)
drm/radeon/kms: use defined constants for crtc/hpd count instead of hard-coded value 6
radeon_driver_irq_preinstall_kms and radeon_driver_irq_uninstall_kms hard code the loop to 6 which happens to be the current maximum number of crtcs and hpd pins; if one day an ASIC with more crtcs (or hpd pins) comes out, this is a trouble waiting to happen. introduce constants for maximum CRTC count, maximum HPD pins count and maximum HDMI blocks count (per FIXME in radeon_irq structure) and correct the loops in radeon_driver_irq_preinstall_kms and radeon_driver_irq_uninstall_kms v2: take care of goofs pointed out by Alex Deucher Signed-off-by: Ilija Hadzic <ihadzic@research.bell-labs.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_irq_kms.c')
-rw-r--r--drivers/gpu/drm/radeon/radeon_irq_kms.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_irq_kms.c b/drivers/gpu/drm/radeon/radeon_irq_kms.c
index 9ec830c77af0..93da85515cd2 100644
--- a/drivers/gpu/drm/radeon/radeon_irq_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_irq_kms.c
@@ -67,10 +67,10 @@ void radeon_driver_irq_preinstall_kms(struct drm_device *dev)
67 /* Disable *all* interrupts */ 67 /* Disable *all* interrupts */
68 rdev->irq.sw_int = false; 68 rdev->irq.sw_int = false;
69 rdev->irq.gui_idle = false; 69 rdev->irq.gui_idle = false;
70 for (i = 0; i < rdev->num_crtc; i++) 70 for (i = 0; i < RADEON_MAX_HPD_PINS; i++)
71 rdev->irq.crtc_vblank_int[i] = false;
72 for (i = 0; i < 6; i++) {
73 rdev->irq.hpd[i] = false; 71 rdev->irq.hpd[i] = false;
72 for (i = 0; i < RADEON_MAX_CRTCS; i++) {
73 rdev->irq.crtc_vblank_int[i] = false;
74 rdev->irq.pflip[i] = false; 74 rdev->irq.pflip[i] = false;
75 } 75 }
76 radeon_irq_set(rdev); 76 radeon_irq_set(rdev);
@@ -99,10 +99,10 @@ void radeon_driver_irq_uninstall_kms(struct drm_device *dev)
99 /* Disable *all* interrupts */ 99 /* Disable *all* interrupts */
100 rdev->irq.sw_int = false; 100 rdev->irq.sw_int = false;
101 rdev->irq.gui_idle = false; 101 rdev->irq.gui_idle = false;
102 for (i = 0; i < rdev->num_crtc; i++) 102 for (i = 0; i < RADEON_MAX_HPD_PINS; i++)
103 rdev->irq.crtc_vblank_int[i] = false;
104 for (i = 0; i < 6; i++) {
105 rdev->irq.hpd[i] = false; 103 rdev->irq.hpd[i] = false;
104 for (i = 0; i < RADEON_MAX_CRTCS; i++) {
105 rdev->irq.crtc_vblank_int[i] = false;
106 rdev->irq.pflip[i] = false; 106 rdev->irq.pflip[i] = false;
107 } 107 }
108 radeon_irq_set(rdev); 108 radeon_irq_set(rdev);