diff options
Diffstat (limited to 'sound/drivers/pcsp/pcsp.c')
| -rw-r--r-- | sound/drivers/pcsp/pcsp.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/sound/drivers/pcsp/pcsp.c b/sound/drivers/pcsp/pcsp.c index 1899cf0685bc..2a02f704f366 100644 --- a/sound/drivers/pcsp/pcsp.c +++ b/sound/drivers/pcsp/pcsp.c | |||
| @@ -96,7 +96,7 @@ static int __devinit snd_card_pcsp_probe(int devnum, struct device *dev) | |||
| 96 | return -EINVAL; | 96 | return -EINVAL; |
| 97 | 97 | ||
| 98 | hrtimer_init(&pcsp_chip.timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); | 98 | hrtimer_init(&pcsp_chip.timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); |
| 99 | pcsp_chip.timer.cb_mode = HRTIMER_CB_SOFTIRQ; | 99 | pcsp_chip.timer.cb_mode = HRTIMER_CB_IRQSAFE_UNLOCKED; |
| 100 | pcsp_chip.timer.function = pcsp_do_timer; | 100 | pcsp_chip.timer.function = pcsp_do_timer; |
| 101 | 101 | ||
| 102 | card = snd_card_new(index, id, THIS_MODULE, 0); | 102 | card = snd_card_new(index, id, THIS_MODULE, 0); |
| @@ -188,10 +188,8 @@ static int __devexit pcsp_remove(struct platform_device *dev) | |||
| 188 | 188 | ||
| 189 | static void pcsp_stop_beep(struct snd_pcsp *chip) | 189 | static void pcsp_stop_beep(struct snd_pcsp *chip) |
| 190 | { | 190 | { |
| 191 | spin_lock_irq(&chip->substream_lock); | 191 | pcsp_sync_stop(chip); |
| 192 | if (!chip->playback_substream) | 192 | pcspkr_stop_sound(); |
| 193 | pcspkr_stop_sound(); | ||
| 194 | spin_unlock_irq(&chip->substream_lock); | ||
| 195 | } | 193 | } |
| 196 | 194 | ||
| 197 | #ifdef CONFIG_PM | 195 | #ifdef CONFIG_PM |
