[kernel] r15376 - in dists/sid/linux-2.6/debian: . patches/bugfix/all patches/bugfix/all/stable patches/series
Ben Hutchings
benh at alioth.debian.org
Mon Mar 15 00:34:39 UTC 2010
Author: benh
Date: Mon Mar 15 00:34:37 2010
New Revision: 15376
Log:
Revert all DRM changes in 2.6.32.10 and apply all changes in 2.6.33.1-rc1
Added:
dists/sid/linux-2.6/debian/patches/bugfix/all/drm-i915-give-up-on-8xx-lid-status-2.patch
dists/sid/linux-2.6/debian/patches/bugfix/all/drm-i915-use-a-dmi-quirk-to-skip-a-broken-sdvo-tv-output.patch
dists/sid/linux-2.6/debian/patches/bugfix/all/drm-ttm-handle-oom-in-ttm_tt_swapout.patch
Modified:
dists/sid/linux-2.6/debian/changelog
dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.32.10-reverts.patch
dists/sid/linux-2.6/debian/patches/series/10
Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog Mon Mar 15 00:32:54 2010 (r15375)
+++ dists/sid/linux-2.6/debian/changelog Mon Mar 15 00:34:37 2010 (r15376)
@@ -4,7 +4,6 @@
* tcp: fix ICMP-RTO war.
* Add stable 2.6.32.10-rc1.
- net/via-rhine: Fix scheduling while atomic bugs (closes: #549606)
- * drm/radeon/kms/atom: fix shr/shl ops.
[ Moritz Muehlenhoff ]
* Enable CONFIG_KEYS_DEBUG_PROC_KEYS (Closes: #400932)
@@ -25,7 +24,7 @@
#554564, #554621, #559175, #559634)
[ Ben Hutchings ]
- * drm: Apply all changes from 2.6.33:
+ * drm: Apply all changes from 2.6.33 and 2.6.33.1:
- Add nouveau driver
- i915: Fix disappearing mouse pointer (Closes: #551330)
- i915: Restore video overlay support (Closes: #560033)
Added: dists/sid/linux-2.6/debian/patches/bugfix/all/drm-i915-give-up-on-8xx-lid-status-2.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/drm-i915-give-up-on-8xx-lid-status-2.patch Mon Mar 15 00:34:37 2010 (r15376)
@@ -0,0 +1,41 @@
+From 7b9c5abee98c54f85bcc04bd4d7ec8d5094c73f4 Mon Sep 17 00:00:00 2001
+From: Jesse Barnes <jbarnes at virtuousgeek.org>
+Date: Fri, 12 Feb 2010 09:30:00 -0800
+Subject: drm/i915: give up on 8xx lid status
+
+From: Jesse Barnes <jbarnes at virtuousgeek.org>
+
+commit 7b9c5abee98c54f85bcc04bd4d7ec8d5094c73f4 upstream.
+
+These old machines more often than not lie about their lid state. So
+don't use it to detect LVDS presence, but leave the event handler to
+deal with lid open/close, when we might need to reset the mode.
+
+Fixes kernel bug #15248
+
+Signed-off-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>
+
+---
+ drivers/gpu/drm/i915/intel_lvds.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/gpu/drm/i915/intel_lvds.c
++++ b/drivers/gpu/drm/i915/intel_lvds.c
+@@ -655,8 +655,15 @@ static const struct dmi_system_id bad_li
+ */
+ static enum drm_connector_status intel_lvds_detect(struct drm_connector *connector)
+ {
++ struct drm_device *dev = connector->dev;
+ enum drm_connector_status status = connector_status_connected;
+
++ /* ACPI lid methods were generally unreliable in this generation, so
++ * don't even bother.
++ */
++ if (IS_I8XX(dev))
++ return connector_status_connected;
++
+ if (!dmi_check_system(bad_lid_status) && !acpi_lid_open())
+ status = connector_status_disconnected;
+
Added: dists/sid/linux-2.6/debian/patches/bugfix/all/drm-i915-use-a-dmi-quirk-to-skip-a-broken-sdvo-tv-output.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/drm-i915-use-a-dmi-quirk-to-skip-a-broken-sdvo-tv-output.patch Mon Mar 15 00:34:37 2010 (r15376)
@@ -0,0 +1,70 @@
+From 6070a4a928f8c92b9fae7d6717ebbb05f425d6b2 Mon Sep 17 00:00:00 2001
+From: Zhao Yakui <yakui.zhao at intel.com>
+Date: Mon, 8 Feb 2010 21:35:12 +0800
+Subject: drm/i915: Use a dmi quirk to skip a broken SDVO TV output.
+
+From: Zhao Yakui <yakui.zhao at intel.com>
+
+commit 6070a4a928f8c92b9fae7d6717ebbb05f425d6b2 upstream.
+
+This IBM system has a multi-function SDVO card that reports both VGA
+and TV, but the system has no TV connector. The TV connector always
+reported as connected, which would lead to poor modesetting choices.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=25787
+
+Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
+Tested-by: Vance <liangghv at sg.ibm.com>
+Signed-off-by: Eric Anholt <eric at anholt.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+---
+ drivers/gpu/drm/i915/intel_sdvo.c | 23 ++++++++++++++++++++++-
+ 1 file changed, 22 insertions(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/i915/intel_sdvo.c
++++ b/drivers/gpu/drm/i915/intel_sdvo.c
+@@ -35,6 +35,7 @@
+ #include "i915_drm.h"
+ #include "i915_drv.h"
+ #include "intel_sdvo_regs.h"
++#include <linux/dmi.h>
+
+ static char *tv_format_names[] = {
+ "NTSC_M" , "NTSC_J" , "NTSC_443",
+@@ -2283,6 +2284,25 @@ intel_sdvo_get_slave_addr(struct drm_dev
+ return 0x72;
+ }
+
++static int intel_sdvo_bad_tv_callback(const struct dmi_system_id *id)
++{
++ DRM_DEBUG_KMS("Ignoring bad SDVO TV connector for %s\n", id->ident);
++ return 1;
++}
++
++static struct dmi_system_id intel_sdvo_bad_tv[] = {
++ {
++ .callback = intel_sdvo_bad_tv_callback,
++ .ident = "IntelG45/ICH10R/DME1737",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "IBM CORPORATION"),
++ DMI_MATCH(DMI_PRODUCT_NAME, "4800784"),
++ },
++ },
++
++ { } /* terminating entry */
++};
++
+ static bool
+ intel_sdvo_output_setup(struct intel_output *intel_output, uint16_t flags)
+ {
+@@ -2323,7 +2343,8 @@ intel_sdvo_output_setup(struct intel_out
+ (1 << INTEL_SDVO_NON_TV_CLONE_BIT) |
+ (1 << INTEL_ANALOG_CLONE_BIT);
+ }
+- } else if (flags & SDVO_OUTPUT_SVID0) {
++ } else if ((flags & SDVO_OUTPUT_SVID0) &&
++ !dmi_check_system(intel_sdvo_bad_tv)) {
+
+ sdvo_priv->controlled_output = SDVO_OUTPUT_SVID0;
+ encoder->encoder_type = DRM_MODE_ENCODER_TVDAC;
Added: dists/sid/linux-2.6/debian/patches/bugfix/all/drm-ttm-handle-oom-in-ttm_tt_swapout.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/drm-ttm-handle-oom-in-ttm_tt_swapout.patch Mon Mar 15 00:34:37 2010 (r15376)
@@ -0,0 +1,91 @@
+From 290e55056ec3d25c72088628245d8cae037b30db Mon Sep 17 00:00:00 2001
+From: Maarten Maathuis <madman2003 at gmail.com>
+Date: Sat, 20 Feb 2010 03:22:21 +0100
+Subject: drm/ttm: handle OOM in ttm_tt_swapout
+
+From: Maarten Maathuis <madman2003 at gmail.com>
+
+commit 290e55056ec3d25c72088628245d8cae037b30db upstream.
+
+- Without this change I get a general protection fault.
+- Also use PTR_ERR where applicable.
+
+Signed-off-by: Maarten Maathuis <madman2003 at gmail.com>
+Reviewed-by: Dave Airlie <airlied at redhat.com>
+Acked-by: Thomas Hellstrom <thellstrom at vmware.com>
+Signed-off-by: Dave Airlie <airlied at redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+---
+ drivers/gpu/drm/ttm/ttm_tt.c | 18 +++++++++++-------
+ 1 file changed, 11 insertions(+), 7 deletions(-)
+
+--- a/drivers/gpu/drm/ttm/ttm_tt.c
++++ b/drivers/gpu/drm/ttm/ttm_tt.c
+@@ -480,7 +480,7 @@ static int ttm_tt_swapin(struct ttm_tt *
+ void *from_virtual;
+ void *to_virtual;
+ int i;
+- int ret;
++ int ret = -ENOMEM;
+
+ if (ttm->page_flags & TTM_PAGE_FLAG_USER) {
+ ret = ttm_tt_set_user(ttm, ttm->tsk, ttm->start,
+@@ -499,8 +499,10 @@ static int ttm_tt_swapin(struct ttm_tt *
+
+ for (i = 0; i < ttm->num_pages; ++i) {
+ from_page = read_mapping_page(swap_space, i, NULL);
+- if (IS_ERR(from_page))
++ if (IS_ERR(from_page)) {
++ ret = PTR_ERR(from_page);
+ goto out_err;
++ }
+ to_page = __ttm_tt_get_page(ttm, i);
+ if (unlikely(to_page == NULL))
+ goto out_err;
+@@ -523,7 +525,7 @@ static int ttm_tt_swapin(struct ttm_tt *
+ return 0;
+ out_err:
+ ttm_tt_free_alloced_pages(ttm);
+- return -ENOMEM;
++ return ret;
+ }
+
+ int ttm_tt_swapout(struct ttm_tt *ttm, struct file *persistant_swap_storage)
+@@ -535,6 +537,7 @@ int ttm_tt_swapout(struct ttm_tt *ttm, s
+ void *from_virtual;
+ void *to_virtual;
+ int i;
++ int ret = -ENOMEM;
+
+ BUG_ON(ttm->state != tt_unbound && ttm->state != tt_unpopulated);
+ BUG_ON(ttm->caching_state != tt_cached);
+@@ -557,7 +560,7 @@ int ttm_tt_swapout(struct ttm_tt *ttm, s
+ 0);
+ if (unlikely(IS_ERR(swap_storage))) {
+ printk(KERN_ERR "Failed allocating swap storage.\n");
+- return -ENOMEM;
++ return PTR_ERR(swap_storage);
+ }
+ } else
+ swap_storage = persistant_swap_storage;
+@@ -569,9 +572,10 @@ int ttm_tt_swapout(struct ttm_tt *ttm, s
+ if (unlikely(from_page == NULL))
+ continue;
+ to_page = read_mapping_page(swap_space, i, NULL);
+- if (unlikely(to_page == NULL))
++ if (unlikely(IS_ERR(to_page))) {
++ ret = PTR_ERR(to_page);
+ goto out_err;
+-
++ }
+ preempt_disable();
+ from_virtual = kmap_atomic(from_page, KM_USER0);
+ to_virtual = kmap_atomic(to_page, KM_USER1);
+@@ -595,5 +599,5 @@ out_err:
+ if (!persistant_swap_storage)
+ fput(swap_storage);
+
+- return -ENOMEM;
++ return ret;
+ }
Modified: dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.32.10-reverts.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.32.10-reverts.patch Mon Mar 15 00:32:54 2010 (r15375)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.32.10-reverts.patch Mon Mar 15 00:34:37 2010 (r15376)
@@ -346,3 +346,73 @@
dev_priv->display.get_display_clock_speed =
i945_get_display_clock_speed;
else if (IS_I915G(dev))
+reverted:
+--- b/drivers/gpu/drm/ttm/ttm_tt.c
++++ a/drivers/gpu/drm/ttm/ttm_tt.c
+@@ -466,7 +466,7 @@
+ void *from_virtual;
+ void *to_virtual;
+ int i;
++ int ret;
+- int ret = -ENOMEM;
+
+ if (ttm->page_flags & TTM_PAGE_FLAG_USER) {
+ ret = ttm_tt_set_user(ttm, ttm->tsk, ttm->start,
+@@ -485,10 +485,8 @@
+
+ for (i = 0; i < ttm->num_pages; ++i) {
+ from_page = read_mapping_page(swap_space, i, NULL);
++ if (IS_ERR(from_page))
+- if (IS_ERR(from_page)) {
+- ret = PTR_ERR(from_page);
+ goto out_err;
+- }
+ to_page = __ttm_tt_get_page(ttm, i);
+ if (unlikely(to_page == NULL))
+ goto out_err;
+@@ -511,7 +509,7 @@
+ return 0;
+ out_err:
+ ttm_tt_free_alloced_pages(ttm);
++ return -ENOMEM;
+- return ret;
+ }
+
+ int ttm_tt_swapout(struct ttm_tt *ttm, struct file *persistant_swap_storage)
+@@ -523,7 +521,6 @@
+ void *from_virtual;
+ void *to_virtual;
+ int i;
+- int ret = -ENOMEM;
+
+ BUG_ON(ttm->state != tt_unbound && ttm->state != tt_unpopulated);
+ BUG_ON(ttm->caching_state != tt_cached);
+@@ -546,7 +543,7 @@
+ 0);
+ if (unlikely(IS_ERR(swap_storage))) {
+ printk(KERN_ERR "Failed allocating swap storage.\n");
++ return -ENOMEM;
+- return PTR_ERR(swap_storage);
+ }
+ } else
+ swap_storage = persistant_swap_storage;
+@@ -558,10 +555,9 @@
+ if (unlikely(from_page == NULL))
+ continue;
+ to_page = read_mapping_page(swap_space, i, NULL);
++ if (unlikely(to_page == NULL))
+- if (unlikely(IS_ERR(to_page))) {
+- ret = PTR_ERR(to_page);
+ goto out_err;
++
+- }
+ preempt_disable();
+ from_virtual = kmap_atomic(from_page, KM_USER0);
+ to_virtual = kmap_atomic(to_page, KM_USER1);
+@@ -585,5 +581,5 @@
+ if (!persistant_swap_storage)
+ fput(swap_storage);
+
++ return -ENOMEM;
+- return ret;
+ }
Modified: dists/sid/linux-2.6/debian/patches/series/10
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/10 Mon Mar 15 00:32:54 2010 (r15375)
+++ dists/sid/linux-2.6/debian/patches/series/10 Mon Mar 15 00:34:37 2010 (r15376)
@@ -35,4 +35,7 @@
+ bugfix/all/net-Fix-first-line-of-kernel-doc.patch
+ bugfix/all/video-fix-first-line-of-kernel-doc.patch
+ bugfix/all/mptscsih-Fix-first-line-of-kernel-doc.patch
++ bugfix/all/drm-i915-give-up-on-8xx-lid-status-2.patch
++ bugfix/all/drm-i915-use-a-dmi-quirk-to-skip-a-broken-sdvo-tv-output.patch
++ bugfix/all/drm-ttm-handle-oom-in-ttm_tt_swapout.patch
+ bugfix/all/drm-radeon-kms-atom-fix-shr-shl-ops.patch
More information about the Kernel-svn-changes
mailing list