[kernel] r16429 - in dists/sid/linux-2.6/debian: . patches/bugfix/all patches/bugfix/x86 patches/series

Ben Hutchings benh at alioth.debian.org
Mon Oct 11 00:49:25 UTC 2010


Author: benh
Date: Mon Oct 11 00:49:08 2010
New Revision: 16429

Log:
Add drm changes from 2.6.32.22+drm33.10

Added:
   dists/sid/linux-2.6/debian/patches/bugfix/all/radeon-kms-initialize-set_surface_reg-for-rs600.patch
   dists/sid/linux-2.6/debian/patches/bugfix/all/radeon-kms-release-AGP-bridge-at-suspend.patch
   dists/sid/linux-2.6/debian/patches/bugfix/x86/drm-i915-Don-t-touch-PORT_HOTPLUG_EN-in-intel_dp_detect.patch
   dists/sid/linux-2.6/debian/patches/bugfix/x86/drm-i915-Kill-dangerous-pending-flip-debugging.patch
Modified:
   dists/sid/linux-2.6/debian/changelog
   dists/sid/linux-2.6/debian/patches/series/25

Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog	Mon Oct 11 00:35:29 2010	(r16428)
+++ dists/sid/linux-2.6/debian/changelog	Mon Oct 11 00:49:08 2010	(r16429)
@@ -12,6 +12,11 @@
   * [x86] KVM: SVM: Fix wrong intercept masks on 32 bit (Closes: #599507)
   * e1000: fix Tx hangs by disabling 64-bit DMA (Closes: #518182)
   * rt2x00: Fix calculation of required TX headroom (Closes: #599395)
+  * Add drm changes from 2.6.32.22+drm33.10:
+    - i915: Don't touch PORT_HOTPLUG_EN in intel_dp_detect()
+    - i915: Kill dangerous pending-flip debugging
+    - radeon: release AGP bridge at suspend
+    - radeon: initialize set_surface_reg for rs600 asic
 
   [ Stephen R. Marenka ]
   * m68k: fix missing io macros.

Added: dists/sid/linux-2.6/debian/patches/bugfix/all/radeon-kms-initialize-set_surface_reg-for-rs600.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/radeon-kms-initialize-set_surface_reg-for-rs600.patch	Mon Oct 11 00:49:08 2010	(r16429)
@@ -0,0 +1,34 @@
+From 3ae83753bc5ed8b204991688c9cce2ad69a71e7a Mon Sep 17 00:00:00 2001
+From: Jerome Glisse <jglisse at redhat.com>
+Date: Fri, 26 Feb 2010 19:14:12 +0000
+Subject: [PATCH 4/4] drm/radeon/kms: initialize set_surface_reg reg for rs600 asic
+
+commit 32b3c2abaf8c61c80a8b02071c73f05252122ffe upstream
+
+rs600 asic was missing set_surface_reg callback leading to
+oops.
+
+Signed-off-by: Jerome Glisse <jglisse at redhat.com>
+Signed-off-by: Dave Airlie <airlied at redhat.com>
+(cherry-picked from commit 32b3c2abaf8c61c80a8b02071c73f05252122ffe upstream)
+Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
+---
+ drivers/gpu/drm/radeon/radeon_asic.h |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/gpu/drm/radeon/radeon_asic.h b/drivers/gpu/drm/radeon/radeon_asic.h
+index 05ee1ae..ad368b9 100644
+--- a/drivers/gpu/drm/radeon/radeon_asic.h
++++ b/drivers/gpu/drm/radeon/radeon_asic.h
+@@ -322,6 +322,8 @@ static struct radeon_asic rs600_asic = {
+ 	.set_memory_clock = &radeon_atom_set_memory_clock,
+ 	.set_pcie_lanes = NULL,
+ 	.set_clock_gating = &radeon_atom_set_clock_gating,
++	.set_surface_reg = r100_set_surface_reg,
++	.clear_surface_reg = r100_clear_surface_reg,
+ 	.bandwidth_update = &rs600_bandwidth_update,
+ 	.hpd_init = &rs600_hpd_init,
+ 	.hpd_fini = &rs600_hpd_fini,
+-- 
+1.7.1
+

Added: dists/sid/linux-2.6/debian/patches/bugfix/all/radeon-kms-release-AGP-bridge-at-suspend.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/radeon-kms-release-AGP-bridge-at-suspend.patch	Mon Oct 11 00:49:08 2010	(r16429)
@@ -0,0 +1,64 @@
+From bdbc27a82218447177e99bc0ea788454b76e8037 Mon Sep 17 00:00:00 2001
+From: Jerome Glisse <jglisse at redhat.com>
+Date: Fri, 21 May 2010 18:48:54 +0200
+Subject: [PATCH 3/4] drm/radeon/kms: release AGP bridge at suspend
+
+commit 10b06122afcc78468bd1d009633cb71e528acdc5 upstream.
+
+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 at redhat.com>
+Signed-off-by: Dave Airlie <airlied at redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+(cherry-picked from commit 9f819608412a8195c82ea8fb94b5755346f1b4ac 2.6.34.1)
+Signed-off-by: Steve Conklin <sconklin at canonical.com>
+Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
+---
+ drivers/gpu/drm/radeon/radeon.h        |    1 +
+ drivers/gpu/drm/radeon/radeon_agp.c    |    5 +++++
+ drivers/gpu/drm/radeon/radeon_device.c |    2 ++
+ 3 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
+index c0356bb..6a439d9 100644
+--- a/drivers/gpu/drm/radeon/radeon.h
++++ b/drivers/gpu/drm/radeon/radeon.h
+@@ -539,6 +539,7 @@ typedef int (*radeon_packet3_check_t)(struct radeon_cs_parser *p,
+  */
+ int radeon_agp_init(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);
+ 
+ 
+diff --git a/drivers/gpu/drm/radeon/radeon_agp.c b/drivers/gpu/drm/radeon/radeon_agp.c
+index c0681a5..60d0411 100644
+--- a/drivers/gpu/drm/radeon/radeon_agp.c
++++ b/drivers/gpu/drm/radeon/radeon_agp.c
+@@ -268,3 +268,8 @@ void radeon_agp_fini(struct radeon_device *rdev)
+ 	}
+ #endif
+ }
++
++void radeon_agp_suspend(struct radeon_device *rdev)
++{
++	radeon_agp_fini(rdev);
++}
+diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
+index 509ba3f..ac47fd0 100644
+--- a/drivers/gpu/drm/radeon/radeon_device.c
++++ b/drivers/gpu/drm/radeon/radeon_device.c
+@@ -783,6 +783,8 @@ int radeon_suspend_kms(struct drm_device *dev, pm_message_t state)
+ 	/* evict remaining vram memory */
+ 	radeon_bo_evict_vram(rdev);
+ 
++	radeon_agp_suspend(rdev);
++
+ 	pci_save_state(dev->pdev);
+ 	if (state.event == PM_EVENT_SUSPEND) {
+ 		/* Shut down the device */
+-- 
+1.7.1
+

Added: dists/sid/linux-2.6/debian/patches/bugfix/x86/drm-i915-Don-t-touch-PORT_HOTPLUG_EN-in-intel_dp_detect.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/x86/drm-i915-Don-t-touch-PORT_HOTPLUG_EN-in-intel_dp_detect.patch	Mon Oct 11 00:49:08 2010	(r16429)
@@ -0,0 +1,49 @@
+From 67b97855b649b158718154dc70f442a23d2e174c Mon Sep 17 00:00:00 2001
+From: Karsten Wiese <fzuuzf at googlemail.com>
+Date: Sat, 27 Mar 2010 22:48:33 +0100
+Subject: [PATCH 1/4] drm/i915: Don't touch PORT_HOTPLUG_EN in intel_dp_detect()
+
+commit 6e0032f0ae4440e75256bee11b163552cae21962 upstream.
+
+PORT_HOTPLUG_EN has allready been setup in i915_driver_irq_postinstall(),
+when intel_dp_detect() runs.
+
+Delete the DP[BCD]_HOTPLUG_INT_EN defines, they are not referenced anymore.
+
+I found this while searching for a fix for
+        https://bugzilla.redhat.com/show_bug.cgi?id=528312
+
+Signed-off-by: Karsten Wiese <fzu at wemgehoertderstaat.de>
+Signed-off-by: Eric Anholt <eric at anholt.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+(cherry-picked from commit 36346c14bde58f34c0a2df91635895f943eeb58b 2.6.34.1)
+Signed-off-by: Steve Conklin <sconklin at canonical.com>
+Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
+---
+ drivers/gpu/drm/i915/intel_dp.c |   10 ----------
+ 1 files changed, 0 insertions(+), 10 deletions(-)
+
+diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
+index 63ea21e..2bbe4ea 100644
+--- a/drivers/gpu/drm/i915/intel_dp.c
++++ b/drivers/gpu/drm/i915/intel_dp.c
+@@ -1249,16 +1249,6 @@ intel_dp_detect(struct drm_connector *connector)
+ 	if (IS_IRONLAKE(dev))
+ 		return ironlake_dp_detect(connector);
+ 
+-	temp = I915_READ(PORT_HOTPLUG_EN);
+-
+-	I915_WRITE(PORT_HOTPLUG_EN,
+-	       temp |
+-	       DPB_HOTPLUG_INT_EN |
+-	       DPC_HOTPLUG_INT_EN |
+-	       DPD_HOTPLUG_INT_EN);
+-
+-	POSTING_READ(PORT_HOTPLUG_EN);
+-
+ 	switch (dp_priv->output_reg) {
+ 	case DP_B:
+ 		bit = DPB_HOTPLUG_INT_STATUS;
+-- 
+1.7.1
+

Added: dists/sid/linux-2.6/debian/patches/bugfix/x86/drm-i915-Kill-dangerous-pending-flip-debugging.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/x86/drm-i915-Kill-dangerous-pending-flip-debugging.patch	Mon Oct 11 00:49:08 2010	(r16429)
@@ -0,0 +1,53 @@
+From 04cb152f41b7b8d1e177896c4af6ed9aaa8d1b57 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris at chris-wilson.co.uk>
+Date: Sat, 15 May 2010 09:57:03 +0100
+Subject: [PATCH 2/4] drm/i915: Kill dangerous pending-flip debugging
+
+commit 9908ff736adf261e749b4887486a32ffa209304c upstream.
+
+We can, by virtue of a vblank interrupt firing in the middle of setting
+up the unpin work (i.e. after we set the unpin_work field and before we
+write to the ringbuffer) enter intel_finish_page_flip() prior to
+receiving the pending flip notification. Therefore we can expect to hit
+intel_finish_page_flip() under normal circumstances without a pending flip
+and even without installing the pending_flip_obj. This is exacerbated by
+aperture thrashing whilst binding the framebuffer
+
+References:
+
+  Bug 28079 - "glresize" causes kernel panic in intel_finish_page_flip.
+  https://bugs.freedesktop.org/show_bug.cgi?id=28079
+
+Reported-by: Nick Bowler <nbowler at draconx.ca>
+Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
+Cc: Jesse Barnes <jbarnes at virtuousgeek.org>
+Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>
+Signed-off-by: Eric Anholt <eric at anholt.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+(cherry-picked from commit 36346c14bde58f34c0a2df91635895f943eeb58b 2.6.34.1)
+Signed-off-by: Steve Conklin <sconklin at canonical.com>
+Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
+---
+ drivers/gpu/drm/i915/intel_display.c |    6 ------
+ 1 files changed, 0 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
+index 0d6641f..6af71e8 100644
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -4123,12 +4123,6 @@ static void do_intel_finish_page_flip(struct drm_device *dev,
+ 	spin_lock_irqsave(&dev->event_lock, flags);
+ 	work = intel_crtc->unpin_work;
+ 	if (work == NULL || !work->pending) {
+-		if (work && !work->pending) {
+-			obj_priv = work->pending_flip_obj->driver_private;
+-			DRM_DEBUG_DRIVER("flip finish: %p (%d) not pending?\n",
+-					 obj_priv,
+-					 atomic_read(&obj_priv->pending_flip));
+-		}
+ 		spin_unlock_irqrestore(&dev->event_lock, flags);
+ 		return;
+ 	}
+-- 
+1.7.1
+

Modified: dists/sid/linux-2.6/debian/patches/series/25
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/25	Mon Oct 11 00:35:29 2010	(r16428)
+++ dists/sid/linux-2.6/debian/patches/series/25	Mon Oct 11 00:49:08 2010	(r16429)
@@ -11,3 +11,7 @@
 + bugfix/all/rt2x00-Centralize-setting-of-extra-TX-headroom-reque.patch
 + bugfix/all/rt2x00-use-correct-headroom-for-transmission.patch
 + bugfix/all/rt2x00-Properly-request-tx-headroom-for-alignment-op.patch
++ bugfix/x86/drm-i915-Don-t-touch-PORT_HOTPLUG_EN-in-intel_dp_detect.patch
++ bugfix/x86/drm-i915-Kill-dangerous-pending-flip-debugging.patch
++ bugfix/all/radeon-kms-release-AGP-bridge-at-suspend.patch
++ bugfix/all/radeon-kms-initialize-set_surface_reg-for-rs600.patch



More information about the Kernel-svn-changes mailing list