]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
more 2.6.20 patches added
authorGreg Kroah-Hartman <gregkh@suse.de>
Thu, 26 Apr 2007 16:50:10 +0000 (09:50 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 26 Apr 2007 16:50:10 +0000 (09:50 -0700)
queue-2.6.20/agpgart-intel_agp-fix-g965-gtt-size-detect.patch [new file with mode: 0644]
queue-2.6.20/alsa-intel8x0-fix-speaker-output-after-s2ram.patch [new file with mode: 0644]
queue-2.6.20/cfq-iosched-fix-alias-front-merge-bug.patch [new file with mode: 0644]
queue-2.6.20/hwmon-w83627ehf-fix-the-fan5-clock-divider-write.patch [new file with mode: 0644]
queue-2.6.20/revert-adjust-legacy-ide-resource-setting.patch [new file with mode: 0644]
queue-2.6.20/series

diff --git a/queue-2.6.20/agpgart-intel_agp-fix-g965-gtt-size-detect.patch b/queue-2.6.20/agpgart-intel_agp-fix-g965-gtt-size-detect.patch
new file mode 100644 (file)
index 0000000..de8e937
--- /dev/null
@@ -0,0 +1,38 @@
+From stable-bounces@linux.kernel.org Wed Apr 25 12:09:01 2007
+From: Wang Zhenyu <zhenyu.z.wang@intel.com>
+Date: Wed, 25 Apr 2007 15:07:38 -0400
+Subject: AGPGART: intel_agp: fix G965 GTT size detect
+To: linux-stable <stable@kernel.org>
+Cc: Dave Jones <davej@redhat.com>
+Message-ID: <462FA6FA.7090307@redhat.com>
+
+From: Wang Zhenyu <zhenyu.z.wang@intel.com>
+
+[AGPGART] intel_agp: fix G965 GTT size detect
+
+On G965, I810_PGETBL_CTL is a mmio offset, but we wrongly take it
+as pci config space offset in detecting GTT size. This one line patch
+fixs this.
+
+Signed-off-by: Wang Zhenyu <zhenyu.z.wang@intel.com>
+Signed-off-by: Dave Jones <davej@redhat.com>
+Cc: Chuck Ebbert <cebbert@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/char/agp/intel-agp.c |    3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/drivers/char/agp/intel-agp.c
++++ b/drivers/char/agp/intel-agp.c
+@@ -405,9 +405,8 @@ static void intel_i830_init_gtt_entries(
+       if (IS_I965) {
+               u32 pgetbl_ctl;
++              pgetbl_ctl = readl(intel_i830_private.registers+I810_PGETBL_CTL);
+-              pci_read_config_dword(agp_bridge->dev, I810_PGETBL_CTL,
+-                                    &pgetbl_ctl);
+               /* The 965 has a field telling us the size of the GTT,
+                * which may be larger than what is necessary to map the
+                * aperture.
diff --git a/queue-2.6.20/alsa-intel8x0-fix-speaker-output-after-s2ram.patch b/queue-2.6.20/alsa-intel8x0-fix-speaker-output-after-s2ram.patch
new file mode 100644 (file)
index 0000000..08d6cd6
--- /dev/null
@@ -0,0 +1,40 @@
+From stable-bounces@linux.kernel.org Wed Apr 25 12:07:10 2007
+From: Tommi Kyntola <tommi.kyntola@ray.fi>
+Date: Wed, 25 Apr 2007 15:05:50 -0400
+Subject: ALSA: intel8x0 - Fix speaker output after S2RAM
+To: linux-stable <stable@kernel.org>
+Cc: Takashi Iwai <tiwai@suse.de>
+Message-ID: <462FA68E.8060909@redhat.com>
+
+From: Tommi Kyntola <tommi.kyntola@ray.fi>
+
+[ALSA] intel8x0 - Fix speaker output after S2RAM
+
+Fixed the mute speaker problem after S2RAM on some laptops:
+       http://bugme.osdl.org/show_bug.cgi?id=6181
+
+Signed-off-by: Tommi Kyntola <tommi.kyntola@ray.fi>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Jaroslav Kysela <perex@suse.cz>
+Cc: Chuck Ebbert <cebbert@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ sound/pci/intel8x0.c |    5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/sound/pci/intel8x0.c
++++ b/sound/pci/intel8x0.c
+@@ -2489,7 +2489,10 @@ static int intel8x0_suspend(struct pci_d
+       }
+       pci_disable_device(pci);
+       pci_save_state(pci);
+-      pci_set_power_state(pci, pci_choose_state(pci, state));
++      /* The call below may disable built-in speaker on some laptops
++       * after S2RAM.  So, don't touch it.
++       */
++      /* pci_set_power_state(pci, pci_choose_state(pci, state)); */
+       return 0;
+ }
diff --git a/queue-2.6.20/cfq-iosched-fix-alias-front-merge-bug.patch b/queue-2.6.20/cfq-iosched-fix-alias-front-merge-bug.patch
new file mode 100644 (file)
index 0000000..3d5c2e6
--- /dev/null
@@ -0,0 +1,64 @@
+From stable-bounces@linux.kernel.org Wed Apr 25 04:44:56 2007
+From: Jens Axboe <jens.axboe@oracle.com>
+Date: Wed, 25 Apr 2007 13:42:27 +0200
+Subject: cfq-iosched: fix alias + front merge bug
+To: stable@kernel.org
+Message-ID: <20070425114227.GZ9715@kernel.dk>
+Content-Disposition: inline
+
+From: Jens Axboe <jens.axboe@oracle.com>
+
+There's a really rare and obscure bug in CFQ, that causes a crash in
+cfq_dispatch_insert() due to rq == NULL. One example of that is seen
+here:
+
+http://lkml.org/lkml/2007/4/15/41
+
+Neil correctly diagnosed the situation for how this can happen, read
+that analysis here:
+
+http://lkml.org/lkml/2007/4/25/57
+
+This looks like it requires md to trigger, even though it should
+potentially be possible to due with O_DIRECT (at least if you edit the
+kernel and doctor some of the unplug calls).
+
+The fix is to move the ->next_rq update to when we add a request to the
+rbtree. Then we remove the possibility for a request to exist in the
+rbtree code, but not have ->next_rq correctly updated.
+
+Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ block/cfq-iosched.c |   12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- a/block/cfq-iosched.c
++++ b/block/cfq-iosched.c
+@@ -462,6 +462,12 @@ static void cfq_add_rq_rb(struct request
+       if (!cfq_cfqq_on_rr(cfqq))
+               cfq_add_cfqq_rr(cfqd, cfqq);
++
++      /*
++       * check if this request is a better next-serve candidate
++       */
++      cfqq->next_rq = cfq_choose_req(cfqd, cfqq->next_rq, rq);
++      BUG_ON(!cfqq->next_rq);
+ }
+ static inline void
+@@ -1623,12 +1629,6 @@ cfq_rq_enqueued(struct cfq_data *cfqd, s
+               cfqq->meta_pending++;
+       /*
+-       * check if this request is a better next-serve candidate)) {
+-       */
+-      cfqq->next_rq = cfq_choose_req(cfqd, cfqq->next_rq, rq);
+-      BUG_ON(!cfqq->next_rq);
+-
+-      /*
+        * we never wait for an async request and we don't allow preemption
+        * of an async request. so just return early
+        */
diff --git a/queue-2.6.20/hwmon-w83627ehf-fix-the-fan5-clock-divider-write.patch b/queue-2.6.20/hwmon-w83627ehf-fix-the-fan5-clock-divider-write.patch
new file mode 100644 (file)
index 0000000..e4daf29
--- /dev/null
@@ -0,0 +1,55 @@
+From stable-bounces@linux.kernel.org Wed Apr 25 00:51:47 2007
+From: Jean Delvare <khali@linux-fr.org>
+Date: Wed, 25 Apr 2007 09:51:01 +0200
+Subject: hwmon/w83627ehf: Fix the fan5 clock divider write
+To: stable@kernel.org
+Message-ID: <20070425095101.0fdde04b@hyperion.delvare>
+
+From: Jean Delvare <khali@linux-fr.org>
+
+Users have been complaining about the w83627ehf driver flooding their
+logs with debug messages like:
+
+w83627ehf 9191-0a10: Increasing fan 4 clock divider from 64 to 128
+
+or:
+
+w83627ehf 9191-0290: Increasing fan 4 clock divider from 4 to 8
+
+The reason is that we failed to actually write the LSB of the encoded
+clock divider value for that fan, causing the next read to report the
+same old value again and again.
+
+Additionally, the fan number was improperly reported, making the bug
+harder to find.
+
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/hwmon/w83627ehf.c |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/hwmon/w83627ehf.c
++++ b/drivers/hwmon/w83627ehf.c
+@@ -389,7 +389,7 @@ static void w83627ehf_write_fan_div(stru
+               break;
+       case 4:
+               reg = (w83627ehf_read_value(client, W83627EHF_REG_DIODE) & 0x73)
+-                  | ((data->fan_div[4] & 0x03) << 3)
++                  | ((data->fan_div[4] & 0x03) << 2)
+                   | ((data->fan_div[4] & 0x04) << 5);
+               w83627ehf_write_value(client, W83627EHF_REG_DIODE, reg);
+               break;
+@@ -453,9 +453,9 @@ static struct w83627ehf_data *w83627ehf_
+                          time */
+                       if (data->fan[i] == 0xff
+                        && data->fan_div[i] < 0x07) {
+-                              dev_dbg(&client->dev, "Increasing fan %d "
++                              dev_dbg(&client->dev, "Increasing fan%d "
+                                       "clock divider from %u to %u\n",
+-                                      i, div_from_reg(data->fan_div[i]),
++                                      i + 1, div_from_reg(data->fan_div[i]),
+                                       div_from_reg(data->fan_div[i] + 1));
+                               data->fan_div[i]++;
+                               w83627ehf_write_fan_div(client, i);
diff --git a/queue-2.6.20/revert-adjust-legacy-ide-resource-setting.patch b/queue-2.6.20/revert-adjust-legacy-ide-resource-setting.patch
new file mode 100644 (file)
index 0000000..a33321f
--- /dev/null
@@ -0,0 +1,95 @@
+From stable-bounces@linux.kernel.org Wed Apr 25 13:20:44 2007
+From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
+Date: Wed, 25 Apr 2007 16:18:52 -0400
+Subject: Revert "adjust legacy IDE resource setting (v2)"
+To: linux-stable <stable@kernel.org>
+Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
+Message-ID: <462FB7AC.2000807@redhat.com>
+
+From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
+
+Revert "adjust legacy IDE resource setting (v2)"
+
+This reverts commit ed8ccee0918ad063a4741c0656fda783e02df627.
+
+It causes hang on boot for some users and we don't yet know why:
+
+http://bugzilla.kernel.org/show_bug.cgi?id=7562
+
+http://lkml.org/lkml/2007/4/20/404
+http://lkml.org/lkml/2007/3/25/113
+
+Just reverse it for 2.6.21-final, having broken X server is somehow
+better than unbootable system.
+
+Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
+Cc: Chuck Ebbert <cebbert@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/pci/probe.c |   45 +++++++++++++--------------------------------
+ 1 file changed, 13 insertions(+), 32 deletions(-)
+
+--- a/drivers/pci/probe.c
++++ b/drivers/pci/probe.c
+@@ -639,34 +639,7 @@ static void pci_read_irq(struct pci_dev 
+       dev->irq = irq;
+ }
+-static void change_legacy_io_resource(struct pci_dev * dev, unsigned index,
+-                                      unsigned start, unsigned end)
+-{
+-      unsigned base = start & PCI_BASE_ADDRESS_IO_MASK;
+-      unsigned len = (end | ~PCI_BASE_ADDRESS_IO_MASK) - base + 1;
+-
+-      /*
+-       * Some X versions get confused when the BARs reported through
+-       * /sys or /proc differ from those seen in config space, thus
+-       * try to update the config space values, too.
+-       */
+-      if (!(pci_resource_flags(dev, index) & IORESOURCE_IO))
+-              printk(KERN_WARNING "%s: cannot adjust BAR%u (not I/O)\n",
+-                     pci_name(dev), index);
+-      else if (pci_resource_len(dev, index) != len)
+-              printk(KERN_WARNING "%s: cannot adjust BAR%u (size %04X)\n",
+-                     pci_name(dev), index, (unsigned)pci_resource_len(dev, index));
+-      else {
+-              printk(KERN_INFO "%s: trying to change BAR%u from %04X to %04X\n",
+-                     pci_name(dev), index,
+-                     (unsigned)pci_resource_start(dev, index), base);
+-              pci_write_config_dword(dev, PCI_BASE_ADDRESS_0 + index * 4, base);
+-      }
+-      pci_resource_start(dev, index) = start;
+-      pci_resource_end(dev, index)   = end;
+-      pci_resource_flags(dev, index) =
+-              IORESOURCE_IO | IORESOURCE_PCI_FIXED | PCI_BASE_ADDRESS_SPACE_IO;
+-}
++#define LEGACY_IO_RESOURCE    (IORESOURCE_IO | IORESOURCE_PCI_FIXED)
+ /**
+  * pci_setup_device - fill in class and map information of a device
+@@ -719,12 +692,20 @@ static int pci_setup_device(struct pci_d
+                       u8 progif;
+                       pci_read_config_byte(dev, PCI_CLASS_PROG, &progif);
+                       if ((progif & 1) == 0) {
+-                              change_legacy_io_resource(dev, 0, 0x1F0, 0x1F7);
+-                              change_legacy_io_resource(dev, 1, 0x3F6, 0x3F6);
++                              dev->resource[0].start = 0x1F0;
++                              dev->resource[0].end = 0x1F7;
++                              dev->resource[0].flags = LEGACY_IO_RESOURCE;
++                              dev->resource[1].start = 0x3F6;
++                              dev->resource[1].end = 0x3F6;
++                              dev->resource[1].flags = LEGACY_IO_RESOURCE;
+                       }
+                       if ((progif & 4) == 0) {
+-                              change_legacy_io_resource(dev, 2, 0x170, 0x177);
+-                              change_legacy_io_resource(dev, 3, 0x376, 0x376);
++                              dev->resource[2].start = 0x170;
++                              dev->resource[2].end = 0x177;
++                              dev->resource[2].flags = LEGACY_IO_RESOURCE;
++                              dev->resource[3].start = 0x376;
++                              dev->resource[3].end = 0x376;
++                              dev->resource[3].flags = LEGACY_IO_RESOURCE;
+                       }
+               }
+               break;
index 73a102ce49b72fbc5a620104d88e0f37404bd863..bf5fc623cced494d7ee7419c883b744568495c9e 100644 (file)
@@ -26,3 +26,8 @@ fix-possible-null-pointer-access-in-8250-serial-driver.patch
 page-migration-fix-nr_file_pages-accounting.patch
 taskstats-fix-the-structure-members-alignment-issue.patch
 reiserfs-fix-xattr-root-locking-refcount-bug.patch
+hwmon-w83627ehf-fix-the-fan5-clock-divider-write.patch
+alsa-intel8x0-fix-speaker-output-after-s2ram.patch
+agpgart-intel_agp-fix-g965-gtt-size-detect.patch
+cfq-iosched-fix-alias-front-merge-bug.patch
+revert-adjust-legacy-ide-resource-setting.patch