rpms/kernel/F-10 drm-radeon-fix-upstream-suspend.patch, NONE, 1.1.2.1 kernel.spec, 1.1206.2.29, 1.1206.2.30

Dave Airlie airlied at fedoraproject.org
Fri Feb 20 22:24:30 UTC 2009


Author: airlied

Update of /cvs/pkgs/rpms/kernel/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv9173

Modified Files:
      Tag: private-fedora-10-2_6_27
	kernel.spec 
Added Files:
      Tag: private-fedora-10-2_6_27
	drm-radeon-fix-upstream-suspend.patch 
Log Message:
* Sat Feb 21 2009 Dave Airlie <airlied at redhat.com> 2.6.27.19-170-2.30.rc1
- Fix from upstream multi-master fixes for radeon suspend/resume


drm-radeon-fix-upstream-suspend.patch:

--- NEW FILE drm-radeon-fix-upstream-suspend.patch ---
diff -up linux-2.6.27.noarch/drivers/gpu/drm/radeon/radeon_cp.c.dma linux-2.6.27.noarch/drivers/gpu/drm/radeon/radeon_cp.c
--- linux-2.6.27.noarch/drivers/gpu/drm/radeon/radeon_cp.c.dma	2009-02-21 08:04:01.000000000 +1000
+++ linux-2.6.27.noarch/drivers/gpu/drm/radeon/radeon_cp.c	2009-02-21 08:07:08.000000000 +1000
@@ -726,9 +726,11 @@ static int radeon_do_engine_reset(struct
 }
 
 static void radeon_cp_init_ring_buffer(struct drm_device * dev,
-				       drm_radeon_private_t * dev_priv)
+				       drm_radeon_private_t * dev_priv,
+				       struct drm_file *file_priv)
 {
 	u32 ring_start, cur_read_ptr;
+	struct drm_radeon_master_private *master_priv;
 
 	/* Initialize the memory controller. With new memory map, the fb location
 	 * is not changed, it should have been properly initialized already. Part
@@ -859,6 +861,16 @@ static void radeon_cp_init_ring_buffer(s
 	dev_priv->scratch[6] = 0;
 	RADEON_WRITE(RADEON_SCRATCH_REG6, 0);
 
+	/* reset sarea copies of these */
+	if (file_priv) {
+		master_priv = file_priv->master->driver_priv;
+		if (master_priv->sarea_priv) {
+			master_priv->sarea_priv->last_frame = 0;
+			master_priv->sarea_priv->last_dispatch = 0;
+			master_priv->sarea_priv->last_clear = 0;
+		}
+	}
+
 	radeon_do_wait_for_idle(dev_priv);
 
 	/* Sync everything up */
@@ -1430,7 +1442,7 @@ static int radeon_do_init_cp(struct drm_
 	dev_priv->writeback_works = 0;
 
 	radeon_cp_load_microcode(dev_priv);
-	radeon_cp_init_ring_buffer(dev, dev_priv);
+	radeon_cp_init_ring_buffer(dev, dev_priv, file_priv);
 
 	dev_priv->last_buf = 0;
 
@@ -1498,7 +1510,7 @@ static int radeon_do_cleanup_cp(struct d
  *
  * Charl P. Botha <http://cpbotha.net>
  */
-static int radeon_do_resume_cp(struct drm_device * dev)
+static int radeon_do_resume_cp(struct drm_device * dev, struct drm_file *file_priv)
 {
 	drm_radeon_private_t *dev_priv = dev->dev_private;
 
@@ -1521,7 +1533,7 @@ static int radeon_do_resume_cp(struct dr
 	}
 
 	radeon_cp_load_microcode(dev_priv);
-	radeon_cp_init_ring_buffer(dev, dev_priv);
+	radeon_cp_init_ring_buffer(dev, dev_priv, file_priv);
 
 	radeon_do_engine_reset(dev);
 	radeon_irq_set_state(dev, RADEON_SW_INT_ENABLE, 1);
@@ -1721,7 +1733,7 @@ int radeon_cp_resume(struct drm_device *
 	if (drm_core_check_feature(dev, DRIVER_MODESET)) 
 		return 0;
 
-	return radeon_do_resume_cp(dev);
+	return radeon_do_resume_cp(dev, file_priv);
 }
 
 int radeon_engine_reset(struct drm_device *dev, void *data, struct drm_file *file_priv)
@@ -2419,7 +2431,7 @@ int radeon_modeset_cp_resume(struct drm_
 	radeon_gart_flush(dev);
 
 	radeon_cp_load_microcode(dev_priv);
-	radeon_cp_init_ring_buffer(dev, dev_priv);
+	radeon_cp_init_ring_buffer(dev, dev_priv, NULL);
 
 	radeon_do_engine_reset(dev);
 


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/kernel.spec,v
retrieving revision 1.1206.2.29
retrieving revision 1.1206.2.30
diff -u -r1.1206.2.29 -r1.1206.2.30
--- kernel.spec	18 Feb 2009 22:45:35 -0000	1.1206.2.29
+++ kernel.spec	20 Feb 2009 22:24:00 -0000	1.1206.2.30
@@ -671,6 +671,7 @@
 Patch1815: drm-nouveau.patch
 Patch1816: drm-intel-8xx-pae-no-gem.patch
 Patch1817: drm-fix-master-enable.patch
+Patch1818: drm-radeon-fix-upstream-suspend.patch
 
 # kludge to make ich9 e1000 work
 Patch2000: linux-2.6-e1000-ich9.patch
@@ -1325,6 +1326,7 @@
 ApplyPatch drm-nouveau.patch
 ApplyPatch drm-intel-8xx-pae-no-gem.patch
 ApplyPatch drm-fix-master-enable.patch
+ApplyPatch drm-radeon-fix-upstream-suspend.patch
 
 # linux1394 git patches
 ApplyPatch linux-2.6-firewire-git-update.patch
@@ -1933,6 +1935,9 @@
 %kernel_variant_files -k vmlinux %{with_kdump} kdump
 
 %changelog
+* Sat Feb 21 2009 Dave Airlie <airlied at redhat.com> 2.6.27.19-170-2.30.rc1
+- Fix from upstream multi-master fixes for radeon suspend/resume
+
 * Wed Feb 18 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.27.19-170.2.29.rc1
 - 2.6.27.19-rc1
   Dropped patches (merged upstream):




More information about the scm-commits mailing list