Browse Source

drm/radeon/kms: release AGP bridge at suspend

I think it's good to release the AGP bridge at suspend
and reacquire it at resume. Also fix :
https://bugzilla.kernel.org/show_bug.cgi?id=15969

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Jerome Glisse 15 năm trước cách đây
mục cha
commit
10b06122af

+ 1 - 0
drivers/gpu/drm/radeon/radeon.h

@@ -576,6 +576,7 @@ typedef int (*radeon_packet3_check_t)(struct radeon_cs_parser *p,
  */
  */
 int radeon_agp_init(struct radeon_device *rdev);
 int radeon_agp_init(struct radeon_device *rdev);
 void radeon_agp_resume(struct radeon_device *rdev);
 void radeon_agp_resume(struct radeon_device *rdev);
+void radeon_agp_suspend(struct radeon_device *rdev);
 void radeon_agp_fini(struct radeon_device *rdev);
 void radeon_agp_fini(struct radeon_device *rdev);
 
 
 
 

+ 5 - 0
drivers/gpu/drm/radeon/radeon_agp.c

@@ -270,3 +270,8 @@ void radeon_agp_fini(struct radeon_device *rdev)
 	}
 	}
 #endif
 #endif
 }
 }
+
+void radeon_agp_suspend(struct radeon_device *rdev)
+{
+	radeon_agp_fini(rdev);
+}

+ 2 - 0
drivers/gpu/drm/radeon/radeon_device.c

@@ -754,6 +754,8 @@ int radeon_suspend_kms(struct drm_device *dev, pm_message_t state)
 	/* evict remaining vram memory */
 	/* evict remaining vram memory */
 	radeon_bo_evict_vram(rdev);
 	radeon_bo_evict_vram(rdev);
 
 
+	radeon_agp_suspend(rdev);
+
 	pci_save_state(dev->pdev);
 	pci_save_state(dev->pdev);
 	if (state.event == PM_EVENT_SUSPEND) {
 	if (state.event == PM_EVENT_SUSPEND) {
 		/* Shut down the device */
 		/* Shut down the device */