diff options
author | Ilija Hadzic <ihadzic@research.bell-labs.com> | 2011-10-26 15:43:58 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2011-11-01 12:02:10 -0400 |
commit | 54bd5206bf1615eadee5b87c64252c6991d737dc (patch) | |
tree | 7f4a198f3e8114cc4910bce5666a9848c2a3af96 /drivers/gpu/drm/radeon/radeon_irq_kms.c | |
parent | 77b1bad423599c9841ea282a82172f039bb2ff92 (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.c | 12 |
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); |