mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2025-12-20 23:20:11 +01:00
radeon: Add suspend/resume hooks for saving/clearing/restoring interrupts.
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=16799 .
This commit is contained in:
parent
c3d463840c
commit
514c05cebe
1 changed files with 24 additions and 0 deletions
|
|
@ -52,6 +52,28 @@ static int dri_library_name(struct drm_device * dev, char * buf)
|
||||||
"r300"));
|
"r300"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int radeon_suspend(struct drm_device *dev, pm_message_t state)
|
||||||
|
{
|
||||||
|
drm_radeon_private_t *dev_priv = dev->dev_private;
|
||||||
|
|
||||||
|
/* Disable *all* interrupts */
|
||||||
|
if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS690)
|
||||||
|
RADEON_WRITE(R500_DxMODE_INT_MASK, 0);
|
||||||
|
RADEON_WRITE(RADEON_GEN_INT_CNTL, 0);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int radeon_resume(struct drm_device *dev)
|
||||||
|
{
|
||||||
|
drm_radeon_private_t *dev_priv = dev->dev_private;
|
||||||
|
|
||||||
|
/* Restore interrupt registers */
|
||||||
|
if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS690)
|
||||||
|
RADEON_WRITE(R500_DxMODE_INT_MASK, dev_priv->r500_disp_irq_reg);
|
||||||
|
RADEON_WRITE(RADEON_GEN_INT_CNTL, dev_priv->irq_enable_reg);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static struct pci_device_id pciidlist[] = {
|
static struct pci_device_id pciidlist[] = {
|
||||||
radeon_PCI_IDS
|
radeon_PCI_IDS
|
||||||
};
|
};
|
||||||
|
|
@ -69,6 +91,8 @@ static struct drm_driver driver = {
|
||||||
.postclose = radeon_driver_postclose,
|
.postclose = radeon_driver_postclose,
|
||||||
.lastclose = radeon_driver_lastclose,
|
.lastclose = radeon_driver_lastclose,
|
||||||
.unload = radeon_driver_unload,
|
.unload = radeon_driver_unload,
|
||||||
|
.suspend = radeon_suspend,
|
||||||
|
.resume = radeon_resume,
|
||||||
.get_vblank_counter = radeon_get_vblank_counter,
|
.get_vblank_counter = radeon_get_vblank_counter,
|
||||||
.enable_vblank = radeon_enable_vblank,
|
.enable_vblank = radeon_enable_vblank,
|
||||||
.disable_vblank = radeon_disable_vblank,
|
.disable_vblank = radeon_disable_vblank,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue