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 <[email protected]>
Signed-off-by: David Kershner <[email protected]>
Acked-By: Neil Horman <[email protected]>
Reviewed-by: Thomas Gleixner <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2 files changed