提交 6ca4dbe3 编写于 作者: W William Hubbs 提交者: Greg Kroah-Hartman

staging: speakup: apollo: remove custom locking macros

Signed-off-by: NWilliam Hubbs <w.d.hubbs@gmail.com>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 995b9040
...@@ -148,30 +148,30 @@ static void do_catch_up(struct spk_synth *synth) ...@@ -148,30 +148,30 @@ static void do_catch_up(struct spk_synth *synth)
jiffy_delta = spk_get_var(JIFFY); jiffy_delta = spk_get_var(JIFFY);
delay_time = spk_get_var(DELAY); delay_time = spk_get_var(DELAY);
full_time = spk_get_var(FULL); full_time = spk_get_var(FULL);
spk_lock(flags); spin_lock_irqsave(&speakup_info.spinlock, flags);
jiffy_delta_val = jiffy_delta->u.n.value; jiffy_delta_val = jiffy_delta->u.n.value;
spk_unlock(flags); spin_unlock_irqrestore(&speakup_info.spinlock, flags);
jiff_max = jiffies + jiffy_delta_val; jiff_max = jiffies + jiffy_delta_val;
while (!kthread_should_stop()) { while (!kthread_should_stop()) {
spk_lock(flags); spin_lock_irqsave(&speakup_info.spinlock, flags);
jiffy_delta_val = jiffy_delta->u.n.value; jiffy_delta_val = jiffy_delta->u.n.value;
full_time_val = full_time->u.n.value; full_time_val = full_time->u.n.value;
delay_time_val = delay_time->u.n.value; delay_time_val = delay_time->u.n.value;
if (speakup_info.flushing) { if (speakup_info.flushing) {
speakup_info.flushing = 0; speakup_info.flushing = 0;
spk_unlock(flags); spin_unlock_irqrestore(&speakup_info.spinlock, flags);
synth->flush(synth); synth->flush(synth);
continue; continue;
} }
if (synth_buffer_empty()) { if (synth_buffer_empty()) {
spk_unlock(flags); spin_unlock_irqrestore(&speakup_info.spinlock, flags);
break; break;
} }
ch = synth_buffer_peek(); ch = synth_buffer_peek();
set_current_state(TASK_INTERRUPTIBLE); set_current_state(TASK_INTERRUPTIBLE);
full_time_val = full_time->u.n.value; full_time_val = full_time->u.n.value;
spk_unlock(flags); spin_unlock_irqrestore(&speakup_info.spinlock, flags);
if (!spk_serial_out(ch)) { if (!spk_serial_out(ch)) {
outb(UART_MCR_DTR, speakup_info.port_tts + UART_MCR); outb(UART_MCR_DTR, speakup_info.port_tts + UART_MCR);
outb(UART_MCR_DTR | UART_MCR_RTS, outb(UART_MCR_DTR | UART_MCR_RTS,
...@@ -180,11 +180,11 @@ static void do_catch_up(struct spk_synth *synth) ...@@ -180,11 +180,11 @@ static void do_catch_up(struct spk_synth *synth)
continue; continue;
} }
if ((jiffies >= jiff_max) && (ch == SPACE)) { if ((jiffies >= jiff_max) && (ch == SPACE)) {
spk_lock(flags); spin_lock_irqsave(&speakup_info.spinlock, flags);
jiffy_delta_val = jiffy_delta->u.n.value; jiffy_delta_val = jiffy_delta->u.n.value;
full_time_val = full_time->u.n.value; full_time_val = full_time->u.n.value;
delay_time_val = delay_time->u.n.value; delay_time_val = delay_time->u.n.value;
spk_unlock(flags); spin_unlock_irqrestore(&speakup_info.spinlock, flags);
if (spk_serial_out(synth->procspeech)) if (spk_serial_out(synth->procspeech))
schedule_timeout(msecs_to_jiffies schedule_timeout(msecs_to_jiffies
(delay_time_val)); (delay_time_val));
...@@ -194,9 +194,9 @@ static void do_catch_up(struct spk_synth *synth) ...@@ -194,9 +194,9 @@ static void do_catch_up(struct spk_synth *synth)
jiff_max = jiffies + jiffy_delta_val; jiff_max = jiffies + jiffy_delta_val;
} }
set_current_state(TASK_RUNNING); set_current_state(TASK_RUNNING);
spk_lock(flags); spin_lock_irqsave(&speakup_info.spinlock, flags);
synth_buffer_getc(); synth_buffer_getc();
spk_unlock(flags); spin_unlock_irqrestore(&speakup_info.spinlock, flags);
} }
spk_serial_out(PROCSPEECH); spk_serial_out(PROCSPEECH);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册