diff -up libdrm-20080722/linux-core/radeon_drv.c~ libdrm-20080722/linux-core/radeon_drv.c --- libdrm-20080722/linux-core/radeon_drv.c~ 2008-07-22 01:06:52.000000000 +0300 +++ libdrm-20080722/linux-core/radeon_drv.c 2008-07-22 11:01:32.000000000 +0300 @@ -52,6 +52,18 @@ static int dri_library_name(struct drm_d "r300")); } +static int radeon_driver_suspend(struct drm_device *dev, pm_message_t state) +{ + radeon_disable_vblank(dev, 0); + return 0; +} + +static int radeon_driver_resume(struct drm_device *dev) +{ + radeon_enable_vblank(dev, 0); + return 0; +} + static struct pci_device_id pciidlist[] = { radeon_PCI_IDS }; @@ -69,6 +81,8 @@ static struct drm_driver driver = { .postclose = radeon_driver_postclose, .lastclose = radeon_driver_lastclose, .unload = radeon_driver_unload, + .suspend = radeon_driver_suspend, + .resume = radeon_driver_resume, .get_vblank_counter = radeon_get_vblank_counter, .enable_vblank = radeon_enable_vblank, .disable_vblank = radeon_disable_vblank,