staging: speakup: remove custom locking macro definitions

Signed-off-by: William Hubbs <w.d.hubbs@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
William Hubbs 2013-05-13 13:31:40 -05:00 committed by Greg Kroah-Hartman
parent 6697330ac5
commit 667b614118
2 changed files with 12 additions and 12 deletions

View File

@ -77,16 +77,4 @@ extern struct speakup_info_t speakup_info;
extern struct var_t synth_time_vars[]; extern struct var_t synth_time_vars[];
/* Protect the whole speakup machinery, must be taken at each kernel->speakup
* transition and released at all corresponding speakup->kernel transitions
* (flags must be the same variable between lock/trylock and unlock).
*
* The progression thread only interferes with the speakup machinery through
* the synth buffer, and so only needs to take the lock while tinkering with
* it.
*/
/* Speakup needs to disable the keyboard IRQ, hence _irqsave/restore */
#define spk_lock(flags) spin_lock_irqsave(&speakup_info.spinlock, flags)
#define spk_unlock(flags) spin_unlock_irqrestore(&speakup_info.spinlock, flags)
#endif #endif

View File

@ -25,6 +25,18 @@ static int module_status;
bool spk_quiet_boot; bool spk_quiet_boot;
struct speakup_info_t speakup_info = { struct speakup_info_t speakup_info = {
/*
* This spinlock is used to protect the entire speakup machinery, and
* must be taken at each kernel->speakup transition and released at
* each corresponding speakup->kernel transition.
*
* The progression thread only interferes with the speakup machinery through
* the synth buffer, so only needs to take the lock while tinkering with
* the buffer.
*
* We use spin_lock/trylock_irqsave and spin_unlock_irqrestore with this
* spinlock because speakup needs to disable the keyboard IRQ.
*/
.spinlock = __SPIN_LOCK_UNLOCKED(speakup_info.spinlock), .spinlock = __SPIN_LOCK_UNLOCKED(speakup_info.spinlock),
.flushing = 0, .flushing = 0,
}; };