Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d86d01935a4c4c818514d8c23579703abd768329
Commit:     d86d01935a4c4c818514d8c23579703abd768329
Parent:     b44ef2f1544a0a8d3d8907890662924082d0f1fa
Author:     Rene Herman <rene.herman>
AuthorDate: Tue Sep 18 18:10:49 2007 +0200
Committer:  Jaroslav Kysela <[EMAIL PROTECTED]>
CommitDate: Tue Oct 16 16:50:54 2007 +0200

    [ALSA] alsa-kernel: schedule_timeout() fixes
    
    Fix schedule_timeout() use in alsa-kernel. Mostly just
        schedule_timeout(1) --> schedule_timeout_uninterruptible(1)
    The wavefront_synth one fixes the surrounding loop as well. In ymfpci_main,
    delete a superfluous set_current_state() and in soc/soc-dapm.c replace an
    _interruptible with _uninterruptible in some debug code; it's not waiting
    for signals.
    
    Signed-off-by: Rene Herman <rene.herman>
    Signed-off-by: Takashi Iwai <[EMAIL PROTECTED]>
    Signed-off-by: Jaroslav Kysela <[EMAIL PROTECTED]>
---
 sound/isa/sscape.c                    |    4 ++--
 sound/isa/wavefront/wavefront_synth.c |   10 ++++------
 sound/pci/hda/hda_intel.c             |    2 +-
 sound/pci/via82xx.c                   |    4 ++--
 sound/pci/via82xx_modem.c             |    4 ++--
 sound/pci/ymfpci/ymfpci_main.c        |    1 -
 sound/soc/soc-dapm.c                  |    2 +-
 7 files changed, 12 insertions(+), 15 deletions(-)

diff --git a/sound/isa/sscape.c b/sound/isa/sscape.c
index 4902da4..1cb921d 100644
--- a/sound/isa/sscape.c
+++ b/sound/isa/sscape.c
@@ -401,7 +401,7 @@ static int obp_startup_ack(struct soundscape *s, unsigned 
timeout)
                unsigned long flags;
                unsigned char x;
 
-               schedule_timeout(1);
+               schedule_timeout_uninterruptible(1);
 
                spin_lock_irqsave(&s->lock, flags);
                x = inb(HOST_DATA_IO(s->io_base));
@@ -428,7 +428,7 @@ static int host_startup_ack(struct soundscape *s, unsigned 
timeout)
                unsigned long flags;
                unsigned char x;
 
-               schedule_timeout(1);
+               schedule_timeout_uninterruptible(1);
 
                spin_lock_irqsave(&s->lock, flags);
                x = inb(HOST_DATA_IO(s->io_base));
diff --git a/sound/isa/wavefront/wavefront_synth.c 
b/sound/isa/wavefront/wavefront_synth.c
index 2da11e8..a1ebb7c 100644
--- a/sound/isa/wavefront/wavefront_synth.c
+++ b/sound/isa/wavefront/wavefront_synth.c
@@ -1768,7 +1768,7 @@ snd_wavefront_interrupt_bits (int irq)
 
 static void __devinit
 wavefront_should_cause_interrupt (snd_wavefront_t *dev, 
-                                 int val, int port, int timeout)
+                                 int val, int port, unsigned long timeout)
 
 {
        wait_queue_t wait;
@@ -1779,11 +1779,9 @@ wavefront_should_cause_interrupt (snd_wavefront_t *dev,
        dev->irq_ok = 0;
        outb (val,port);
        spin_unlock_irq(&dev->irq_lock);
-       while (1) {
-               if ((timeout = schedule_timeout(timeout)) == 0)
-                       return;
-               if (dev->irq_ok)
-                       return;
+       while (!dev->irq_ok && time_before(jiffies, timeout)) {
+               schedule_timeout_uninterruptible(1);
+               barrier();
        }
 }
 
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index cbb3da4..4e3474c 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -555,7 +555,7 @@ static unsigned int azx_rirb_get_response(struct hda_codec 
*codec)
                }
                if (!chip->rirb.cmds)
                        return chip->rirb.res; /* the last value */
-               schedule_timeout(1);
+               schedule_timeout_uninterruptible(1);
        } while (time_after_eq(timeout, jiffies));
 
        if (chip->msi) {
diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c
index 5faa579..45d89de 100644
--- a/sound/pci/via82xx.c
+++ b/sound/pci/via82xx.c
@@ -2090,7 +2090,7 @@ static int snd_via82xx_chip_init(struct via82xx *chip)
                pci_read_config_byte(chip->pci, VIA_ACLINK_STAT, &pval);
                if (pval & VIA_ACLINK_C00_READY) /* primary codec ready */
                        break;
-               schedule_timeout(1);
+               schedule_timeout_uninterruptible(1);
        } while (time_before(jiffies, end_time));
 
        if ((val = snd_via82xx_codec_xread(chip)) & VIA_REG_AC97_BUSY)
@@ -2109,7 +2109,7 @@ static int snd_via82xx_chip_init(struct via82xx *chip)
                        chip->ac97_secondary = 1;
                        goto __ac97_ok2;
                }
-               schedule_timeout(1);
+               schedule_timeout_uninterruptible(1);
        } while (time_before(jiffies, end_time));
        /* This is ok, the most of motherboards have only one codec */
 
diff --git a/sound/pci/via82xx_modem.c b/sound/pci/via82xx_modem.c
index 72425e7..3aa9d31 100644
--- a/sound/pci/via82xx_modem.c
+++ b/sound/pci/via82xx_modem.c
@@ -983,7 +983,7 @@ static int snd_via82xx_chip_init(struct via82xx_modem *chip)
                pci_read_config_byte(chip->pci, VIA_ACLINK_STAT, &pval);
                if (pval & VIA_ACLINK_C00_READY) /* primary codec ready */
                        break;
-               schedule_timeout(1);
+               schedule_timeout_uninterruptible(1);
        } while (time_before(jiffies, end_time));
 
        if ((val = snd_via82xx_codec_xread(chip)) & VIA_REG_AC97_BUSY)
@@ -1001,7 +1001,7 @@ static int snd_via82xx_chip_init(struct via82xx_modem 
*chip)
                        chip->ac97_secondary = 1;
                        goto __ac97_ok2;
                }
-               schedule_timeout(1);
+               schedule_timeout_uninterruptible(1);
        } while (time_before(jiffies, end_time));
        /* This is ok, the most of motherboards have only one codec */
 
diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c
index e33e4aa..e76ed5d 100644
--- a/sound/pci/ymfpci/ymfpci_main.c
+++ b/sound/pci/ymfpci/ymfpci_main.c
@@ -84,7 +84,6 @@ static int snd_ymfpci_codec_ready(struct snd_ymfpci *chip, 
int secondary)
        do {
                if ((snd_ymfpci_readw(chip, reg) & 0x8000) == 0)
                        return 0;
-               set_current_state(TASK_UNINTERRUPTIBLE);
                schedule_timeout_uninterruptible(1);
        } while (time_before(jiffies, end_time));
        snd_printk(KERN_ERR "codec_ready: codec %i is not ready [0x%x]\n", 
secondary, snd_ymfpci_readw(chip, reg));
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 96bce55..b3193e6 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -63,7 +63,7 @@
 #define POP_DEBUG 0
 #if POP_DEBUG
 #define POP_TIME 500 /* 500 msecs - change if pop debug is too fast */
-#define pop_wait(time) schedule_timeout_interruptible(msecs_to_jiffies(time))
+#define pop_wait(time) schedule_timeout_uninterruptible(msecs_to_jiffies(time))
 #define pop_dbg(format, arg...) printk(format, ## arg); pop_wait(POP_TIME)
 #else
 #define pop_dbg(format, arg...)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to