diff options
author | Tejun Heo <tj@kernel.org> | 2010-06-29 04:07:09 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2010-06-29 04:07:09 -0400 |
commit | 7bc465605ffa90b281d6b774fcb13911636a6d45 (patch) | |
tree | d3f17ab707db89632b47a8247c1d5b4716830e99 /drivers/media/video/ivtv/ivtv-driver.h | |
parent | b56c0d8937e665a27d90517ee7a746d0aa05af46 (diff) |
ivtv: use kthread_worker instead of workqueue
Upcoming workqueue updates will no longer guarantee fixed workqueue to
worker kthread association, so giving RT priority to the irq worker
won't work. Use kthread_worker which guarantees specific kthread
association instead. This also makes setting the priority cleaner.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Andy Walls <awalls@md.metrocast.net>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: ivtv-devel@ivtvdriver.org
Cc: linux-media@vger.kernel.org
Diffstat (limited to 'drivers/media/video/ivtv/ivtv-driver.h')
-rw-r--r-- | drivers/media/video/ivtv/ivtv-driver.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/media/video/ivtv/ivtv-driver.h b/drivers/media/video/ivtv/ivtv-driver.h index 5b45fd2b2645..51f7f2a9cf5e 100644 --- a/drivers/media/video/ivtv/ivtv-driver.h +++ b/drivers/media/video/ivtv/ivtv-driver.h | |||
@@ -51,7 +51,7 @@ | |||
51 | #include <linux/unistd.h> | 51 | #include <linux/unistd.h> |
52 | #include <linux/pagemap.h> | 52 | #include <linux/pagemap.h> |
53 | #include <linux/scatterlist.h> | 53 | #include <linux/scatterlist.h> |
54 | #include <linux/workqueue.h> | 54 | #include <linux/kthread.h> |
55 | #include <linux/mutex.h> | 55 | #include <linux/mutex.h> |
56 | #include <linux/slab.h> | 56 | #include <linux/slab.h> |
57 | #include <asm/uaccess.h> | 57 | #include <asm/uaccess.h> |
@@ -257,7 +257,6 @@ struct ivtv_mailbox_data { | |||
257 | #define IVTV_F_I_DEC_PAUSED 20 /* the decoder is paused */ | 257 | #define IVTV_F_I_DEC_PAUSED 20 /* the decoder is paused */ |
258 | #define IVTV_F_I_INITED 21 /* set after first open */ | 258 | #define IVTV_F_I_INITED 21 /* set after first open */ |
259 | #define IVTV_F_I_FAILED 22 /* set if first open failed */ | 259 | #define IVTV_F_I_FAILED 22 /* set if first open failed */ |
260 | #define IVTV_F_I_WORK_INITED 23 /* worker thread was initialized */ | ||
261 | 260 | ||
262 | /* Event notifications */ | 261 | /* Event notifications */ |
263 | #define IVTV_F_I_EV_DEC_STOPPED 28 /* decoder stopped event */ | 262 | #define IVTV_F_I_EV_DEC_STOPPED 28 /* decoder stopped event */ |
@@ -663,8 +662,9 @@ struct ivtv { | |||
663 | /* Interrupts & DMA */ | 662 | /* Interrupts & DMA */ |
664 | u32 irqmask; /* active interrupts */ | 663 | u32 irqmask; /* active interrupts */ |
665 | u32 irq_rr_idx; /* round-robin stream index */ | 664 | u32 irq_rr_idx; /* round-robin stream index */ |
666 | struct workqueue_struct *irq_work_queues; /* workqueue for PIO/YUV/VBI actions */ | 665 | struct kthread_worker irq_worker; /* kthread worker for PIO/YUV/VBI actions */ |
667 | struct work_struct irq_work_queue; /* work entry */ | 666 | struct task_struct *irq_worker_task; /* task for irq_worker */ |
667 | struct kthread_work irq_work; /* kthread work entry */ | ||
668 | spinlock_t dma_reg_lock; /* lock access to DMA engine registers */ | 668 | spinlock_t dma_reg_lock; /* lock access to DMA engine registers */ |
669 | int cur_dma_stream; /* index of current stream doing DMA (-1 if none) */ | 669 | int cur_dma_stream; /* index of current stream doing DMA (-1 if none) */ |
670 | int cur_pio_stream; /* index of current stream doing PIO (-1 if none) */ | 670 | int cur_pio_stream; /* index of current stream doing PIO (-1 if none) */ |