i8253: Convert i8253_lock to raw_spinlock
i8253_lock needs to be a real spinlock in preempt-rt, i.e. it can not be converted to a sleeping lock. Convert it to raw_spinlock and fix up all users. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Ralf Baechle <ralf@linux-mips.org> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Acked-by: Takashi Iwai <tiwai@suse.de> Cc: Jens Axboe <jens.axboe@oracle.com> LKML-Reference: <20100217163751.030764372@linutronix.de>
This commit is contained in:
@@ -65,7 +65,7 @@ static u64 pcsp_timer_update(struct snd_pcsp *chip)
|
||||
timer_cnt = val * CUR_DIV() / 256;
|
||||
|
||||
if (timer_cnt && chip->enable) {
|
||||
spin_lock_irqsave(&i8253_lock, flags);
|
||||
raw_spin_lock_irqsave(&i8253_lock, flags);
|
||||
if (!nforce_wa) {
|
||||
outb_p(chip->val61, 0x61);
|
||||
outb_p(timer_cnt, 0x42);
|
||||
@@ -74,7 +74,7 @@ static u64 pcsp_timer_update(struct snd_pcsp *chip)
|
||||
outb(chip->val61 ^ 2, 0x61);
|
||||
chip->thalf = 1;
|
||||
}
|
||||
spin_unlock_irqrestore(&i8253_lock, flags);
|
||||
raw_spin_unlock_irqrestore(&i8253_lock, flags);
|
||||
}
|
||||
|
||||
chip->ns_rem = PCSP_PERIOD_NS();
|
||||
@@ -158,10 +158,10 @@ static int pcsp_start_playing(struct snd_pcsp *chip)
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
spin_lock(&i8253_lock);
|
||||
raw_spin_lock(&i8253_lock);
|
||||
chip->val61 = inb(0x61) | 0x03;
|
||||
outb_p(0x92, 0x43); /* binary, mode 1, LSB only, ch 2 */
|
||||
spin_unlock(&i8253_lock);
|
||||
raw_spin_unlock(&i8253_lock);
|
||||
atomic_set(&chip->timer_active, 1);
|
||||
chip->thalf = 0;
|
||||
|
||||
@@ -178,11 +178,11 @@ static void pcsp_stop_playing(struct snd_pcsp *chip)
|
||||
return;
|
||||
|
||||
atomic_set(&chip->timer_active, 0);
|
||||
spin_lock(&i8253_lock);
|
||||
raw_spin_lock(&i8253_lock);
|
||||
/* restore the timer */
|
||||
outb_p(0xb6, 0x43); /* binary, mode 3, LSB/MSB, ch 2 */
|
||||
outb(chip->val61 & 0xFC, 0x61);
|
||||
spin_unlock(&i8253_lock);
|
||||
raw_spin_unlock(&i8253_lock);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user