drm/radeon: don't set hpd, afmt interrupts when interrupts are disabled
Avoids splatter if the interrupt handler is not registered due to acceleration being disabled. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Cc: stable@vger.kernel.org
This commit is contained in:
Родитель
2cc79544bd
Коммит
cc9945bf9c
|
@ -400,6 +400,9 @@ void radeon_irq_kms_enable_afmt(struct radeon_device *rdev, int block)
|
|||
{
|
||||
unsigned long irqflags;
|
||||
|
||||
if (!rdev->ddev->irq_enabled)
|
||||
return;
|
||||
|
||||
spin_lock_irqsave(&rdev->irq.lock, irqflags);
|
||||
rdev->irq.afmt[block] = true;
|
||||
radeon_irq_set(rdev);
|
||||
|
@ -419,6 +422,9 @@ void radeon_irq_kms_disable_afmt(struct radeon_device *rdev, int block)
|
|||
{
|
||||
unsigned long irqflags;
|
||||
|
||||
if (!rdev->ddev->irq_enabled)
|
||||
return;
|
||||
|
||||
spin_lock_irqsave(&rdev->irq.lock, irqflags);
|
||||
rdev->irq.afmt[block] = false;
|
||||
radeon_irq_set(rdev);
|
||||
|
@ -438,6 +444,9 @@ void radeon_irq_kms_enable_hpd(struct radeon_device *rdev, unsigned hpd_mask)
|
|||
unsigned long irqflags;
|
||||
int i;
|
||||
|
||||
if (!rdev->ddev->irq_enabled)
|
||||
return;
|
||||
|
||||
spin_lock_irqsave(&rdev->irq.lock, irqflags);
|
||||
for (i = 0; i < RADEON_MAX_HPD_PINS; ++i)
|
||||
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)
|
|||
unsigned long irqflags;
|
||||
int i;
|
||||
|
||||
if (!rdev->ddev->irq_enabled)
|
||||
return;
|
||||
|
||||
spin_lock_irqsave(&rdev->irq.lock, irqflags);
|
||||
for (i = 0; i < RADEON_MAX_HPD_PINS; ++i)
|
||||
rdev->irq.hpd[i] &= !(hpd_mask & (1 << i));
|
||||
|
|
Загрузка…
Ссылка в новой задаче