Rev 5271 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5271 | Rev 6104 | ||
---|---|---|---|
Line 30... | Line 30... | ||
30 | #include |
30 | #include |
31 | #include "radeon_reg.h" |
31 | #include "radeon_reg.h" |
32 | #include "radeon.h" |
32 | #include "radeon.h" |
33 | #include "atom.h" |
33 | #include "atom.h" |
Line 34... | Line -... | ||
34 | - | ||
35 | #define RADEON_WAIT_IDLE_TIMEOUT 200 |
- | |
36 | - | ||
37 | 34 | ||
Line -... | Line 35... | ||
- | 35 | #include |
|
Line 38... | Line 36... | ||
38 | extern int irq_override; |
36 | |
39 | 37 | #define RADEON_WAIT_IDLE_TIMEOUT 200 |
|
40 | 38 | ||
41 | /** |
39 | /** |
Line 95... | Line 93... | ||
95 | * Handles stuff to be done after enabling irqs (all asics). |
93 | * Handles stuff to be done after enabling irqs (all asics). |
96 | * Returns 0 on success. |
94 | * Returns 0 on success. |
97 | */ |
95 | */ |
98 | int radeon_driver_irq_postinstall_kms(struct drm_device *dev) |
96 | int radeon_driver_irq_postinstall_kms(struct drm_device *dev) |
99 | { |
97 | { |
- | 98 | struct radeon_device *rdev = dev->dev_private; |
|
- | 99 | ||
- | 100 | if (ASIC_IS_AVIVO(rdev)) |
|
- | 101 | dev->max_vblank_count = 0x00ffffff; |
|
- | 102 | else |
|
100 | dev->max_vblank_count = 0x001fffff; |
103 | dev->max_vblank_count = 0x001fffff; |
- | 104 | ||
101 | return 0; |
105 | return 0; |
102 | } |
106 | } |
Line 103... | Line 107... | ||
103 | 107 | ||
104 | /** |
108 | /** |
Line 146... | Line 150... | ||
146 | int radeon_irq_kms_init(struct radeon_device *rdev) |
150 | int radeon_irq_kms_init(struct radeon_device *rdev) |
147 | { |
151 | { |
148 | int r = 0; |
152 | int r = 0; |
Line 149... | Line 153... | ||
149 | 153 | ||
- | 154 | spin_lock_init(&rdev->irq.lock); |
|
- | 155 | r = drm_vblank_init(rdev->ddev, rdev->num_crtc); |
|
- | 156 | if (r) { |
|
- | 157 | return r; |
|
150 | spin_lock_init(&rdev->irq.lock); |
158 | } |
151 | /* enable msi */ |
159 | /* enable msi */ |
Line 152... | Line 160... | ||
152 | rdev->msi_enabled = 0; |
160 | rdev->msi_enabled = 0; |
153 | 161 | ||
Line 170... | Line 178... | ||
170 | * |
178 | * |
171 | * Tears down the work irq handlers, vblank handlers, MSIs, etc. (all asics). |
179 | * Tears down the work irq handlers, vblank handlers, MSIs, etc. (all asics). |
172 | */ |
180 | */ |
173 | void radeon_irq_kms_fini(struct radeon_device *rdev) |
181 | void radeon_irq_kms_fini(struct radeon_device *rdev) |
174 | { |
182 | { |
175 | // drm_vblank_cleanup(rdev->ddev); |
183 | drm_vblank_cleanup(rdev->ddev); |
176 | if (rdev->irq.installed) { |
184 | if (rdev->irq.installed) { |
177 | // drm_irq_uninstall(rdev->ddev); |
185 | // drm_irq_uninstall(rdev->ddev); |
178 | rdev->irq.installed = false; |
186 | rdev->irq.installed = false; |
179 | // if (rdev->msi_enabled) |
187 | // if (rdev->msi_enabled) |
180 | // pci_disable_msi(rdev->pdev); |
188 | // pci_disable_msi(rdev->pdev); |