diff options
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_irq_kms.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_irq_kms.c b/drivers/gpu/drm/radeon/radeon_irq_kms.c index 90374dd77960..48f80cd42d8f 100644 --- a/drivers/gpu/drm/radeon/radeon_irq_kms.c +++ b/drivers/gpu/drm/radeon/radeon_irq_kms.c | |||
| @@ -400,6 +400,9 @@ void radeon_irq_kms_enable_afmt(struct radeon_device *rdev, int block) | |||
| 400 | { | 400 | { |
| 401 | unsigned long irqflags; | 401 | unsigned long irqflags; |
| 402 | 402 | ||
| 403 | if (!rdev->ddev->irq_enabled) | ||
| 404 | return; | ||
| 405 | |||
| 403 | spin_lock_irqsave(&rdev->irq.lock, irqflags); | 406 | spin_lock_irqsave(&rdev->irq.lock, irqflags); |
| 404 | rdev->irq.afmt[block] = true; | 407 | rdev->irq.afmt[block] = true; |
| 405 | radeon_irq_set(rdev); | 408 | radeon_irq_set(rdev); |
| @@ -419,6 +422,9 @@ void radeon_irq_kms_disable_afmt(struct radeon_device *rdev, int block) | |||
| 419 | { | 422 | { |
| 420 | unsigned long irqflags; | 423 | unsigned long irqflags; |
| 421 | 424 | ||
| 425 | if (!rdev->ddev->irq_enabled) | ||
| 426 | return; | ||
| 427 | |||
| 422 | spin_lock_irqsave(&rdev->irq.lock, irqflags); | 428 | spin_lock_irqsave(&rdev->irq.lock, irqflags); |
| 423 | rdev->irq.afmt[block] = false; | 429 | rdev->irq.afmt[block] = false; |
| 424 | radeon_irq_set(rdev); | 430 | radeon_irq_set(rdev); |
| @@ -438,6 +444,9 @@ void radeon_irq_kms_enable_hpd(struct radeon_device *rdev, unsigned hpd_mask) | |||
| 438 | unsigned long irqflags; | 444 | unsigned long irqflags; |
| 439 | int i; | 445 | int i; |
| 440 | 446 | ||
| 447 | if (!rdev->ddev->irq_enabled) | ||
| 448 | return; | ||
| 449 | |||
| 441 | spin_lock_irqsave(&rdev->irq.lock, irqflags); | 450 | spin_lock_irqsave(&rdev->irq.lock, irqflags); |
| 442 | for (i = 0; i < RADEON_MAX_HPD_PINS; ++i) | 451 | for (i = 0; i < RADEON_MAX_HPD_PINS; ++i) |
| 443 | rdev->irq.hpd[i] |= !!(hpd_mask & (1 << i)); | 452 | rdev->irq.hpd[i] |= !!(hpd_mask & (1 << i)); |
| @@ -458,6 +467,9 @@ void radeon_irq_kms_disable_hpd(struct radeon_device *rdev, unsigned hpd_mask) | |||
| 458 | unsigned long irqflags; | 467 | unsigned long irqflags; |
| 459 | int i; | 468 | int i; |
| 460 | 469 | ||
| 470 | if (!rdev->ddev->irq_enabled) | ||
| 471 | return; | ||
| 472 | |||
| 461 | spin_lock_irqsave(&rdev->irq.lock, irqflags); | 473 | spin_lock_irqsave(&rdev->irq.lock, irqflags); |
| 462 | for (i = 0; i < RADEON_MAX_HPD_PINS; ++i) | 474 | for (i = 0; i < RADEON_MAX_HPD_PINS; ++i) |
| 463 | rdev->irq.hpd[i] &= !(hpd_mask & (1 << i)); | 475 | rdev->irq.hpd[i] &= !(hpd_mask & (1 << i)); |
