]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
some .25 patches added
authorGreg Kroah-Hartman <gregkh@suse.de>
Wed, 30 Jul 2008 19:23:55 +0000 (12:23 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 30 Jul 2008 19:23:55 +0000 (12:23 -0700)
queue-2.6.25/ahci-retry-enabling-ahci-a-few-times-before-spitting-out-warn_on.patch [new file with mode: 0644]
queue-2.6.25/alsa-trident-pause-s-pdif-output.patch [new file with mode: 0644]
queue-2.6.25/series

diff --git a/queue-2.6.25/ahci-retry-enabling-ahci-a-few-times-before-spitting-out-warn_on.patch b/queue-2.6.25/ahci-retry-enabling-ahci-a-few-times-before-spitting-out-warn_on.patch
new file mode 100644 (file)
index 0000000..f61b546
--- /dev/null
@@ -0,0 +1,60 @@
+From stable-bounces@linux.kernel.org Fri Jul 18 17:06:59 2008
+From: Tejun Heo <htejun@gmail.com>
+Date: Fri, 18 Jul 2008 19:14:40 -0400
+Subject: ahci: retry enabling AHCI a few times before spitting out WARN_ON()
+To: stable@kernel.org
+Cc: Jeff Garzik <jgarzik@redhat.com>
+Message-ID: <20080718191440.708f5f4a@redhat.com>
+
+From: Tejun Heo <htejun@gmail.com>
+
+commit 15fe982e429e0e6b7466719acb6cfd9dbfe47f0c upstream
+
+ahci: retry enabling AHCI a few times before spitting out WARN_ON()
+
+Some chips need AHCI_EN set more than once to actually set it.  Try a
+few times before giving up and spitting out WARN_ON().
+
+Signed-off-by: Tejun Heo <htejun@gmail.com>
+Cc: Peer Chen <pchen@nvidia.com>
+Cc: Volker Armin Hemmann <volker.armin.hemmann@tu-clausthal.de>
+Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
+Cc: Chuck Ebbert <cebbert@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/ata/ahci.c |   15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+--- a/drivers/ata/ahci.c
++++ b/drivers/ata/ahci.c
+@@ -634,16 +634,27 @@ static inline void __iomem *ahci_port_ba
+ static void ahci_enable_ahci(void __iomem *mmio)
+ {
++      int i;
+       u32 tmp;
+       /* turn on AHCI_EN */
+       tmp = readl(mmio + HOST_CTL);
+-      if (!(tmp & HOST_AHCI_EN)) {
++      if (tmp & HOST_AHCI_EN)
++              return;
++
++      /* Some controllers need AHCI_EN to be written multiple times.
++       * Try a few times before giving up.
++       */
++      for (i = 0; i < 5; i++) {
+               tmp |= HOST_AHCI_EN;
+               writel(tmp, mmio + HOST_CTL);
+               tmp = readl(mmio + HOST_CTL);   /* flush && sanity check */
+-              WARN_ON(!(tmp & HOST_AHCI_EN));
++              if (tmp & HOST_AHCI_EN)
++                      return;
++              msleep(10);
+       }
++
++      WARN_ON(1);
+ }
+ /**
diff --git a/queue-2.6.25/alsa-trident-pause-s-pdif-output.patch b/queue-2.6.25/alsa-trident-pause-s-pdif-output.patch
new file mode 100644 (file)
index 0000000..b43da77
--- /dev/null
@@ -0,0 +1,41 @@
+From stable-bounces@linux.kernel.org Fri Jul 18 16:37:37 2008
+From: Pierre Ossman <drzeus@drzeus.cx>
+Date: Fri, 18 Jul 2008 19:04:27 -0400
+Subject: ALSA: trident - pause s/pdif output
+To: stable@kernel.org
+Cc: Takashi Iwai <tiwai@suse.de>, cebbert@redhat.com
+Message-ID: <20080718190427.7cdfe1da@redhat.com>
+
+
+From: Pierre Ossman <drzeus@drzeus.cx>
+
+Commit 981bcead3f2279a1ec6fb5f2c57aff79ed61a700 upstream.
+
+Stop the S/PDIF DMA engine and output when the device is told to pause.
+It will keep on looping the current buffer contents if this isn't done.
+
+Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
+Tested-by: Rene Herman <rene.herman@gmail.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Cc: Chuck Ebbert <cebbert@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/pci/trident/trident_main.c |    5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/sound/pci/trident/trident_main.c
++++ b/sound/pci/trident/trident_main.c
+@@ -1590,7 +1590,10 @@ static int snd_trident_trigger(struct sn
+       if (spdif_flag) {
+               if (trident->device != TRIDENT_DEVICE_ID_SI7018) {
+                       outl(trident->spdif_pcm_bits, TRID_REG(trident, NX_SPCSTATUS));
+-                      outb(trident->spdif_pcm_ctrl, TRID_REG(trident, NX_SPCTRL_SPCSO + 3));
++                      val = trident->spdif_pcm_ctrl;
++                      if (!go)
++                              val &= ~(0x28);
++                      outb(val, TRID_REG(trident, NX_SPCTRL_SPCSO + 3));
+               } else {
+                       outl(trident->spdif_pcm_bits, TRID_REG(trident, SI_SPDIF_CS));
+                       val = inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL)) | SPDIF_EN;
index 69065bbdc1decc04cb6f0e5d69af97713d664fc1..46dc265a4e355beaa96e6c126fa9aa0e636264f5 100644 (file)
@@ -12,3 +12,5 @@ ide-cd-fix-oops-when-using-growisofs.patch
 fix-build-on-compat-platforms-when-config_epoll-is-disabled.patch
 arm-fix-fls-for-64-bit-arguments.patch
 alsa-hda-fix-alc262_sony_unsol-hda_verb-array.patch
+alsa-trident-pause-s-pdif-output.patch
+ahci-retry-enabling-ahci-a-few-times-before-spitting-out-warn_on.patch