diff options
author | Rene Herman <rene.herman> | 2007-09-18 12:10:49 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2007-10-16 10:50:54 -0400 |
commit | d86d01935a4c4c818514d8c23579703abd768329 (patch) | |
tree | 6b0a1f67979fb5283511d6cf1776dca0c89507ba /sound | |
parent | b44ef2f1544a0a8d3d8907890662924082d0f1fa (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>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/isa/sscape.c | 4 | ||||
-rw-r--r-- | sound/isa/wavefront/wavefront_synth.c | 10 | ||||
-rw-r--r-- | sound/pci/hda/hda_intel.c | 2 | ||||
-rw-r--r-- | sound/pci/via82xx.c | 4 | ||||
-rw-r--r-- | sound/pci/via82xx_modem.c | 4 | ||||
-rw-r--r-- | sound/pci/ymfpci/ymfpci_main.c | 1 | ||||
-rw-r--r-- | 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 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 | ||
1769 | static void __devinit | 1769 | static void __devinit |
1770 | wavefront_should_cause_interrupt (snd_wavefront_t *dev, | 1770 | wavefront_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...) |