aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRene Herman <rene.herman>2007-09-18 12:10:49 -0400
committerJaroslav Kysela <perex@perex.cz>2007-10-16 10:50:54 -0400
commitd86d01935a4c4c818514d8c23579703abd768329 (patch)
tree6b0a1f67979fb5283511d6cf1776dca0c89507ba
parentb44ef2f1544a0a8d3d8907890662924082d0f1fa (diff)
[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 <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
-rw-r--r--sound/isa/sscape.c4
-rw-r--r--sound/isa/wavefront/wavefront_synth.c10
-rw-r--r--sound/pci/hda/hda_intel.c2
-rw-r--r--sound/pci/via82xx.c4
-rw-r--r--sound/pci/via82xx_modem.c4
-rw-r--r--sound/pci/ymfpci/ymfpci_main.c1
-rw-r--r--sound/soc/soc-dapm.c2
7 files changed, 12 insertions, 15 deletions
diff --git a/sound/isa/sscape.c b/sound/isa/sscape.c
index 4902da40b6c0..1cb921d6137e 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)
401 unsigned long flags; 401 unsigned long flags;
402 unsigned char x; 402 unsigned char x;
403 403
404 schedule_timeout(1); 404 schedule_timeout_uninterruptible(1);
405 405
406 spin_lock_irqsave(&s->lock, flags); 406 spin_lock_irqsave(&s->lock, flags);
407 x = inb(HOST_DATA_IO(s->io_base)); 407 x = inb(HOST_DATA_IO(s->io_base));
@@ -428,7 +428,7 @@ static int host_startup_ack(struct soundscape *s, unsigned timeout)
428 unsigned long flags; 428 unsigned long flags;
429 unsigned char x; 429 unsigned char x;
430 430
431 schedule_timeout(1); 431 schedule_timeout_uninterruptible(1);
432 432
433 spin_lock_irqsave(&s->lock, flags); 433 spin_lock_irqsave(&s->lock, flags);
434 x = inb(HOST_DATA_IO(s->io_base)); 434 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 2da11e8337dd..a1ebb7c5c684 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)
1768 1768
1769static void __devinit 1769static void __devinit
1770wavefront_should_cause_interrupt (snd_wavefront_t *dev, 1770wavefront_should_cause_interrupt (snd_wavefront_t *dev,
1771 int val, int port, int timeout) 1771 int val, int port, unsigned long timeout)
1772 1772
1773{ 1773{
1774 wait_queue_t wait; 1774 wait_queue_t wait;
@@ -1779,11 +1779,9 @@ wavefront_should_cause_interrupt (snd_wavefront_t *dev,
1779 dev->irq_ok = 0; 1779 dev->irq_ok = 0;
1780 outb (val,port); 1780 outb (val,port);
1781 spin_unlock_irq(&dev->irq_lock); 1781 spin_unlock_irq(&dev->irq_lock);
1782 while (1) { 1782 while (!dev->irq_ok && time_before(jiffies, timeout)) {
1783 if ((timeout = schedule_timeout(timeout)) == 0) 1783 schedule_timeout_uninterruptible(1);
1784 return; 1784 barrier();
1785 if (dev->irq_ok)
1786 return;
1787 } 1785 }
1788} 1786}
1789 1787
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index cbb3da408e80..4e3474c2b662 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)
555 } 555 }
556 if (!chip->rirb.cmds) 556 if (!chip->rirb.cmds)
557 return chip->rirb.res; /* the last value */ 557 return chip->rirb.res; /* the last value */
558 schedule_timeout(1); 558 schedule_timeout_uninterruptible(1);
559 } while (time_after_eq(timeout, jiffies)); 559 } while (time_after_eq(timeout, jiffies));
560 560
561 if (chip->msi) { 561 if (chip->msi) {
diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c
index 5faa57956ca9..45d89deb64e5 100644
--- a/sound/pci/via82xx.c
+++ b/sound/pci/via82xx.c
@@ -2090,7 +2090,7 @@ static int snd_via82xx_chip_init(struct via82xx *chip)
2090 pci_read_config_byte(chip->pci, VIA_ACLINK_STAT, &pval); 2090 pci_read_config_byte(chip->pci, VIA_ACLINK_STAT, &pval);
2091 if (pval & VIA_ACLINK_C00_READY) /* primary codec ready */ 2091 if (pval & VIA_ACLINK_C00_READY) /* primary codec ready */
2092 break; 2092 break;
2093 schedule_timeout(1); 2093 schedule_timeout_uninterruptible(1);
2094 } while (time_before(jiffies, end_time)); 2094 } while (time_before(jiffies, end_time));
2095 2095
2096 if ((val = snd_via82xx_codec_xread(chip)) & VIA_REG_AC97_BUSY) 2096 if ((val = snd_via82xx_codec_xread(chip)) & VIA_REG_AC97_BUSY)
@@ -2109,7 +2109,7 @@ static int snd_via82xx_chip_init(struct via82xx *chip)
2109 chip->ac97_secondary = 1; 2109 chip->ac97_secondary = 1;
2110 goto __ac97_ok2; 2110 goto __ac97_ok2;
2111 } 2111 }
2112 schedule_timeout(1); 2112 schedule_timeout_uninterruptible(1);
2113 } while (time_before(jiffies, end_time)); 2113 } while (time_before(jiffies, end_time));
2114 /* This is ok, the most of motherboards have only one codec */ 2114 /* This is ok, the most of motherboards have only one codec */
2115 2115
diff --git a/sound/pci/via82xx_modem.c b/sound/pci/via82xx_modem.c
index 72425e73abae..3aa9d31d9992 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)
983 pci_read_config_byte(chip->pci, VIA_ACLINK_STAT, &pval); 983 pci_read_config_byte(chip->pci, VIA_ACLINK_STAT, &pval);
984 if (pval & VIA_ACLINK_C00_READY) /* primary codec ready */ 984 if (pval & VIA_ACLINK_C00_READY) /* primary codec ready */
985 break; 985 break;
986 schedule_timeout(1); 986 schedule_timeout_uninterruptible(1);
987 } while (time_before(jiffies, end_time)); 987 } while (time_before(jiffies, end_time));
988 988
989 if ((val = snd_via82xx_codec_xread(chip)) & VIA_REG_AC97_BUSY) 989 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)
1001 chip->ac97_secondary = 1; 1001 chip->ac97_secondary = 1;
1002 goto __ac97_ok2; 1002 goto __ac97_ok2;
1003 } 1003 }
1004 schedule_timeout(1); 1004 schedule_timeout_uninterruptible(1);
1005 } while (time_before(jiffies, end_time)); 1005 } while (time_before(jiffies, end_time));
1006 /* This is ok, the most of motherboards have only one codec */ 1006 /* This is ok, the most of motherboards have only one codec */
1007 1007
diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c
index e33e4aa6855c..e76ed5dfc861 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)
84 do { 84 do {
85 if ((snd_ymfpci_readw(chip, reg) & 0x8000) == 0) 85 if ((snd_ymfpci_readw(chip, reg) & 0x8000) == 0)
86 return 0; 86 return 0;
87 set_current_state(TASK_UNINTERRUPTIBLE);
88 schedule_timeout_uninterruptible(1); 87 schedule_timeout_uninterruptible(1);
89 } while (time_before(jiffies, end_time)); 88 } while (time_before(jiffies, end_time));
90 snd_printk(KERN_ERR "codec_ready: codec %i is not ready [0x%x]\n", secondary, snd_ymfpci_readw(chip, reg)); 89 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 96bce55572a0..b3193e687db7 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -63,7 +63,7 @@
63#define POP_DEBUG 0 63#define POP_DEBUG 0
64#if POP_DEBUG 64#if POP_DEBUG
65#define POP_TIME 500 /* 500 msecs - change if pop debug is too fast */ 65#define POP_TIME 500 /* 500 msecs - change if pop debug is too fast */
66#define pop_wait(time) schedule_timeout_interruptible(msecs_to_jiffies(time)) 66#define pop_wait(time) schedule_timeout_uninterruptible(msecs_to_jiffies(time))
67#define pop_dbg(format, arg...) printk(format, ## arg); pop_wait(POP_TIME) 67#define pop_dbg(format, arg...) printk(format, ## arg); pop_wait(POP_TIME)
68#else 68#else
69#define pop_dbg(format, arg...) 69#define pop_dbg(format, arg...)