staging: unisys: visorbus: use kernel timer instead of workqueue
A kernel timer is now used as the vehicle to periodically call the channel_interrupt function of registered visor drivers, instead of a workqueue. This simplifies a lot of things by making periodic_work.c and periodic_work.h no longer necessary. This change also means that the channel_interrupt() callbacks registered by visor drivers (via visorbus_register_visor_driver()) will now be called in atomic context (i.e., canNOT sleep) rather than kernel thread context (CAN sleep). Fortunately this did NOT necessitate any change to the existing channel_interrupt() callbacks, because none of them ever perform any operations that would be invalid in atomic context. Signed-off-by: Tim Sell <Timothy.Sell@unisys.com> Signed-off-by: David Kershner <david.kershner@unisys.com> Acked-By: Neil Horman <nhorman@tuxdriver.com> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Showing
Please register or sign in to comment