From 3dde2ffcc8d8db76f67a53a839a4f1db97b841fd Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Fri, 17 Jun 2011 12:36:01 +0200 Subject: Add wrapper for system-wide workqueues Signed-off-by: Takashi Iwai --- include/adriver.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/include/adriver.h b/include/adriver.h index 75440c10b..0ffb00a4c 100644 --- a/include/adriver.h +++ b/include/adriver.h @@ -1974,6 +1974,21 @@ static inline bool flush_delayed_work_sync(struct delayed_work *dwork) #define cancel_work_sync flush_work #endif +/* system-wide workqueues */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 36) +#define system_wq (struct workqueue_struct *)-1L +#define system_long_wq (struct workqueue_struct *)-1L +static inline int _snd_queue_work(struct workqueue_struct *wq, + struct work_struct *work) +{ + if (wq == system_wq || wq == system_long_wq) + return schedule_work(work); + else + return queue_work(wq, work); +} +#define queue_work(wq, work) _snd_queue_work(wq, work) +#endif + #endif /* < 2.6.37 */ /* pm_wakeup_event() wrapper */ -- cgit 1.2.3-korg