]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
.32 patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Wed, 23 Jun 2010 20:37:33 +0000 (13:37 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 23 Jun 2010 20:37:33 +0000 (13:37 -0700)
queue-2.6.32/drm-edid-fix-1024x768-85hz.patch [new file with mode: 0644]
queue-2.6.32/drm-i915-configure-the-tv-sense-state-correctly-on-gm45-to-make-tv-detection-reliable.patch [new file with mode: 0644]
queue-2.6.32/drm-radeon-kms-atom-fix-typo-in-lvds-panel-info-parsing.patch [new file with mode: 0644]
queue-2.6.32/powerpc-fix-handling-of-strncmp-with-zero-len.patch [new file with mode: 0644]
queue-2.6.32/powerpc-oprofile-fix-potential-buffer-overrun-in-op_model_cell.c.patch [new file with mode: 0644]
queue-2.6.32/powerpc-pseries-only-call-start-cpu-when-a-cpu-is-stopped.patch [new file with mode: 0644]
queue-2.6.32/series
queue-2.6.32/writeback-disable-periodic-old-data-writeback-for-dirty_writeback_centisecs.patch [new file with mode: 0644]

diff --git a/queue-2.6.32/drm-edid-fix-1024x768-85hz.patch b/queue-2.6.32/drm-edid-fix-1024x768-85hz.patch
new file mode 100644 (file)
index 0000000..2d925ee
--- /dev/null
@@ -0,0 +1,32 @@
+From 61dd98fad58f945ed720ba132681acb58fcee015 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Thu, 13 May 2010 14:55:28 -0400
+Subject: drm/edid: Fix 1024x768@85Hz
+
+From: Adam Jackson <ajax@redhat.com>
+
+commit 61dd98fad58f945ed720ba132681acb58fcee015 upstream.
+
+Having hsync both start and end on pixel 1072 ain't gonna work very
+well.  Matches the X server's list.
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+Tested-By: Michael Tokarev <mjt@tls.msk.ru>
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/gpu/drm/drm_edid.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/drm_edid.c
++++ b/drivers/gpu/drm/drm_edid.c
+@@ -324,7 +324,7 @@ static struct drm_display_mode drm_dmt_m
+                  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+       /* 1024x768@85Hz */
+       { DRM_MODE("1024x768", DRM_MODE_TYPE_DRIVER, 94500, 1024, 1072,
+-                 1072, 1376, 0, 768, 769, 772, 808, 0,
++                 1168, 1376, 0, 768, 769, 772, 808, 0,
+                  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+       /* 1152x864@75Hz */
+       { DRM_MODE("1152x864", DRM_MODE_TYPE_DRIVER, 108000, 1152, 1216,
diff --git a/queue-2.6.32/drm-i915-configure-the-tv-sense-state-correctly-on-gm45-to-make-tv-detection-reliable.patch b/queue-2.6.32/drm-i915-configure-the-tv-sense-state-correctly-on-gm45-to-make-tv-detection-reliable.patch
new file mode 100644 (file)
index 0000000..bc414f7
--- /dev/null
@@ -0,0 +1,49 @@
+From fb8b5a39b6310379d7b54c0c7113703a8eaf4a57 Mon Sep 17 00:00:00 2001
+From: Zhao Yakui <yakui.zhao@intel.com>
+Date: Wed, 7 Apr 2010 17:11:19 +0800
+Subject: drm/i915: Configure the TV sense state correctly on GM45 to make TV detection reliable
+
+From: Zhao Yakui <yakui.zhao@intel.com>
+
+commit fb8b5a39b6310379d7b54c0c7113703a8eaf4a57 upstream.
+
+The TV detection logic is not reliable on the Cantiga platform.
+Sometimes the TV will be misdetected as the following two cases:
+- TV is misdetected on some laptops. e.g. There is no TV connector
+port or no TV is attached. But the TV is shown as connected.
+- TV connector type is misdetected. e.g. the component TV is
+attached, but the TV is shown as S-video type.
+
+According to the hardware requirement, the TV sense state bits of TV DAC
+register should be cleared to zero on Cantiga platfrom.
+
+https://bugzilla.kernel.org/show_bug.cgi?id=14792
+
+Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
+Tested-by: Santi <santi@agolina.net>
+Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
+Signed-off-by: Eric Anholt <eric@anholt.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/gpu/drm/i915/intel_tv.c |    9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/drivers/gpu/drm/i915/intel_tv.c
++++ b/drivers/gpu/drm/i915/intel_tv.c
+@@ -1399,6 +1399,15 @@ intel_tv_detect_type (struct drm_crtc *c
+                  DAC_A_0_7_V |
+                  DAC_B_0_7_V |
+                  DAC_C_0_7_V);
++
++      /*
++       * The TV sense state should be cleared to zero on cantiga platform. Otherwise
++       * the TV is misdetected. This is hardware requirement.
++       */
++      if (IS_GM45(dev))
++              tv_dac &= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL |
++                          TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL);
++
+       I915_WRITE(TV_CTL, tv_ctl);
+       I915_WRITE(TV_DAC, tv_dac);
+       intel_wait_for_vblank(dev);
diff --git a/queue-2.6.32/drm-radeon-kms-atom-fix-typo-in-lvds-panel-info-parsing.patch b/queue-2.6.32/drm-radeon-kms-atom-fix-typo-in-lvds-panel-info-parsing.patch
new file mode 100644 (file)
index 0000000..70e3b26
--- /dev/null
@@ -0,0 +1,31 @@
+From 1ff26a3604d0292988d4cade0e49ba9918dbfd46 Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexdeucher@gmail.com>
+Date: Tue, 18 May 2010 00:23:15 -0400
+Subject: drm/radeon/kms/atom: fix typo in LVDS panel info parsing
+
+From: Alex Deucher <alexdeucher@gmail.com>
+
+commit 1ff26a3604d0292988d4cade0e49ba9918dbfd46 upstream.
+
+Fixes LVDS issues on some laptops; notably laptops with
+2048x1536 panels.
+
+Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/gpu/drm/radeon/radeon_atombios.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/radeon/radeon_atombios.c
++++ b/drivers/gpu/drm/radeon/radeon_atombios.c
+@@ -942,7 +942,7 @@ struct radeon_encoder_atom_dig *radeon_a
+               lvds->native_mode.vtotal = lvds->native_mode.vdisplay +
+                       le16_to_cpu(lvds_info->info.sLCDTiming.usVBlanking_Time);
+               lvds->native_mode.vsync_start = lvds->native_mode.vdisplay +
+-                      le16_to_cpu(lvds_info->info.sLCDTiming.usVSyncWidth);
++                      le16_to_cpu(lvds_info->info.sLCDTiming.usVSyncOffset);
+               lvds->native_mode.vsync_end = lvds->native_mode.vsync_start +
+                       le16_to_cpu(lvds_info->info.sLCDTiming.usVSyncWidth);
+               lvds->panel_pwr_delay =
diff --git a/queue-2.6.32/powerpc-fix-handling-of-strncmp-with-zero-len.patch b/queue-2.6.32/powerpc-fix-handling-of-strncmp-with-zero-len.patch
new file mode 100644 (file)
index 0000000..5ad7367
--- /dev/null
@@ -0,0 +1,49 @@
+From 637a99022fb119b90fb281715d13172f0394fc12 Mon Sep 17 00:00:00 2001
+From: Jeff Mahoney <jeffm@suse.com>
+Date: Wed, 17 Mar 2010 10:55:51 +0000
+Subject: powerpc: Fix handling of strncmp with zero len
+
+From: Jeff Mahoney <jeffm@suse.com>
+
+commit 637a99022fb119b90fb281715d13172f0394fc12 upstream.
+
+Commit 0119536c, which added the assembly version of strncmp to
+powerpc, mentions that it adds two instructions to the version from
+boot/string.S to allow it to handle len=0. Unfortunately, it doesn't
+always return 0 when that is the case. The length is passed in r5, but
+the return value is passed back in r3. In certain cases, this will
+happen to work. Otherwise it will pass back the address of the first
+string as the return value.
+
+This patch lifts the len <= 0 handling code from memcpy to handle that
+case.
+
+Reported by: Christian_Sellars@symantec.com
+Signed-off-by: Jeff Mahoney <jeffm@suse.com>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/powerpc/lib/string.S |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/arch/powerpc/lib/string.S
++++ b/arch/powerpc/lib/string.S
+@@ -71,7 +71,7 @@ _GLOBAL(strcmp)
+ _GLOBAL(strncmp)
+       PPC_LCMPI r5,0
+-      beqlr
++      ble-    2f
+       mtctr   r5
+       addi    r5,r3,-1
+       addi    r4,r4,-1
+@@ -82,6 +82,8 @@ _GLOBAL(strncmp)
+       beqlr   1
+       bdnzt   eq,1b
+       blr
++2:    li      r3,0
++      blr
+ _GLOBAL(strlen)
+       addi    r4,r3,-1
diff --git a/queue-2.6.32/powerpc-oprofile-fix-potential-buffer-overrun-in-op_model_cell.c.patch b/queue-2.6.32/powerpc-oprofile-fix-potential-buffer-overrun-in-op_model_cell.c.patch
new file mode 100644 (file)
index 0000000..bd26d95
--- /dev/null
@@ -0,0 +1,31 @@
+From 238c1a78c957f3dc7cb848b161dcf4805793ed56 Mon Sep 17 00:00:00 2001
+From: Denis Kirjanov <dkirjanov@hera.kernel.org>
+Date: Tue, 1 Jun 2010 15:43:34 -0400
+Subject: powerpc/oprofile: fix potential buffer overrun in op_model_cell.c
+
+From: Denis Kirjanov <dkirjanov@hera.kernel.org>
+
+commit 238c1a78c957f3dc7cb848b161dcf4805793ed56 upstream.
+
+Fix potential initial_lfsr buffer overrun.
+Writing past the end of the buffer could happen when index == ENTRIES
+
+Signed-off-by: Denis Kirjanov <dkirjanov@kernel.org>
+Signed-off-by: Robert Richter <robert.richter@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/powerpc/oprofile/op_model_cell.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/powerpc/oprofile/op_model_cell.c
++++ b/arch/powerpc/oprofile/op_model_cell.c
+@@ -1077,7 +1077,7 @@ static int calculate_lfsr(int n)
+               index = ENTRIES-1;
+       /* make sure index is valid */
+-      if ((index > ENTRIES) || (index < 0))
++      if ((index >= ENTRIES) || (index < 0))
+               index = ENTRIES-1;
+       return initial_lfsr[index];
diff --git a/queue-2.6.32/powerpc-pseries-only-call-start-cpu-when-a-cpu-is-stopped.patch b/queue-2.6.32/powerpc-pseries-only-call-start-cpu-when-a-cpu-is-stopped.patch
new file mode 100644 (file)
index 0000000..e6431d4
--- /dev/null
@@ -0,0 +1,45 @@
+From aef40e87d866355ffd279ab21021de733242d0d5 Mon Sep 17 00:00:00 2001
+From: Michael Neuling <mikey@neuling.org>
+Date: Wed, 28 Apr 2010 13:39:41 +0000
+Subject: powerpc/pseries: Only call start-cpu when a CPU is stopped
+
+From: Michael Neuling <mikey@neuling.org>
+
+commit aef40e87d866355ffd279ab21021de733242d0d5 upstream.
+
+Currently we always call start-cpu irrespective of if the CPU is
+stopped or not. Unfortunatley on POWER7, firmware seems to not like
+start-cpu being called when a cpu already been started.  This was not
+the case on POWER6 and earlier.
+
+This patch checks to see if the CPU is stopped or not via an
+query-cpu-stopped-state call, and only calls start-cpu on CPUs which
+are stopped.
+
+This fixes a bug with kexec on POWER7 on PHYP where only the primary
+thread would make it to the second kernel.
+
+Reported-by: Ankita Garg <ankita@linux.vnet.ibm.com>
+Signed-off-by: Michael Neuling <mikey@neuling.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/powerpc/platforms/pseries/smp.c |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/arch/powerpc/platforms/pseries/smp.c
++++ b/arch/powerpc/platforms/pseries/smp.c
+@@ -81,6 +81,12 @@ static inline int __devinit smp_startup_
+       pcpu = get_hard_smp_processor_id(lcpu);
++      /* Check to see if the CPU out of FW already for kexec */
++      if (smp_query_cpu_stopped(pcpu) == QCSS_NOT_STOPPED){
++              cpu_set(lcpu, of_spin_map);
++              return 1;
++      }
++
+       /* Fixup atomic count: it exited inside IRQ handler. */
+       task_thread_info(paca[lcpu].__current)->preempt_count   = 0;
index 7fcfb473eed8c86520ba76da8abd4fa9ddbad356..d40ee32ad94365d65dbdab144d3f0bd6953f0e44 100644 (file)
@@ -48,3 +48,10 @@ pci-quirks-disable-msi-on-amd-rs4xx-internal-gfx-bridges.patch
 pci-disable-msi-for-mcp55-on-p5n32-e-sli.patch
 virtio_net-make-delayed-refill-more-reliable.patch
 mm-hugetlb-fix-clear_huge_page.patch
+drm-edid-fix-1024x768-85hz.patch
+drm-radeon-kms-atom-fix-typo-in-lvds-panel-info-parsing.patch
+drm-i915-configure-the-tv-sense-state-correctly-on-gm45-to-make-tv-detection-reliable.patch
+powerpc-fix-handling-of-strncmp-with-zero-len.patch
+powerpc-pseries-only-call-start-cpu-when-a-cpu-is-stopped.patch
+powerpc-oprofile-fix-potential-buffer-overrun-in-op_model_cell.c.patch
+writeback-disable-periodic-old-data-writeback-for-dirty_writeback_centisecs.patch
diff --git a/queue-2.6.32/writeback-disable-periodic-old-data-writeback-for-dirty_writeback_centisecs.patch b/queue-2.6.32/writeback-disable-periodic-old-data-writeback-for-dirty_writeback_centisecs.patch
new file mode 100644 (file)
index 0000000..da62ad6
--- /dev/null
@@ -0,0 +1,52 @@
+From 69b62d01ec44fe0d505d89917392347732135a4d Mon Sep 17 00:00:00 2001
+From: Jens Axboe <jens.axboe@oracle.com>
+Date: Mon, 17 May 2010 12:51:03 +0200
+Subject: writeback: disable periodic old data writeback for !dirty_writeback_centisecs
+
+From: Jens Axboe <jens.axboe@oracle.com>
+
+commit 69b62d01ec44fe0d505d89917392347732135a4d upstream.
+
+Prior to 2.6.32, setting /proc/sys/vm/dirty_writeback_centisecs disabled
+periodic dirty writeback from kupdate. This got broken and now causes
+excessive sys CPU usage if set to zero, as we'll keep beating on
+schedule().
+
+Reported-by: Justin Maggard <jmaggard10@gmail.com>
+Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/fs-writeback.c |   14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+--- a/fs/fs-writeback.c
++++ b/fs/fs-writeback.c
+@@ -859,6 +859,12 @@ static long wb_check_old_data_flush(stru
+       unsigned long expired;
+       long nr_pages;
++      /*
++       * When set to zero, disable periodic writeback
++       */
++      if (!dirty_writeback_interval)
++              return 0;
++
+       expired = wb->last_old_flush +
+                       msecs_to_jiffies(dirty_writeback_interval * 10);
+       if (time_before(jiffies, expired))
+@@ -954,8 +960,12 @@ int bdi_writeback_task(struct bdi_writeb
+                               break;
+               }
+-              wait_jiffies = msecs_to_jiffies(dirty_writeback_interval * 10);
+-              schedule_timeout_interruptible(wait_jiffies);
++              if (dirty_writeback_interval) {
++                      wait_jiffies = msecs_to_jiffies(dirty_writeback_interval * 10);
++                      schedule_timeout_interruptible(wait_jiffies);
++              } else
++                      schedule();
++
+               try_to_freeze();
+       }