Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[pandora-kernel.git] / drivers / media / video / ivtv / ivtv-driver.h
index bd084df..7580314 100644 (file)
@@ -51,7 +51,7 @@
 #include <linux/unistd.h>
 #include <linux/pagemap.h>
 #include <linux/scatterlist.h>
-#include <linux/workqueue.h>
+#include <linux/kthread.h>
 #include <linux/mutex.h>
 #include <linux/slab.h>
 #include <asm/uaccess.h>
@@ -62,6 +62,7 @@
 #include <linux/dvb/audio.h>
 #include <media/v4l2-common.h>
 #include <media/v4l2-ioctl.h>
+#include <media/v4l2-ctrls.h>
 #include <media/v4l2-device.h>
 #include <media/v4l2-fh.h>
 #include <media/tuner.h>
@@ -260,7 +261,6 @@ struct ivtv_mailbox_data {
 #define IVTV_F_I_DEC_PAUSED       20   /* the decoder is paused */
 #define IVTV_F_I_INITED                   21   /* set after first open */
 #define IVTV_F_I_FAILED                   22   /* set if first open failed */
-#define IVTV_F_I_WORK_INITED       23  /* worker thread was initialized */
 
 /* Event notifications */
 #define IVTV_F_I_EV_DEC_STOPPED           28   /* decoder stopped event */
@@ -632,6 +632,8 @@ struct ivtv {
        struct ivtv_options options;    /* user options */
 
        struct v4l2_device v4l2_dev;
+       struct cx2341x_handler cxhdl;
+       struct v4l2_ctrl_handler hdl_gpio;
        struct v4l2_subdev sd_gpio;     /* GPIO sub-device */
        u16 instance;
 
@@ -649,7 +651,6 @@ struct ivtv {
        v4l2_std_id std_out;            /* current TV output standard */
        u8 audio_stereo_mode;           /* decoder setting how to handle stereo MPEG audio */
        u8 audio_bilingual_mode;        /* decoder setting how to handle bilingual MPEG audio */
-       struct cx2341x_mpeg_params params;              /* current encoder parameters */
 
 
        /* Locking */
@@ -666,8 +667,9 @@ struct ivtv {
        /* Interrupts & DMA */
        u32 irqmask;                    /* active interrupts */
        u32 irq_rr_idx;                 /* round-robin stream index */
-       struct workqueue_struct *irq_work_queues;       /* workqueue for PIO/YUV/VBI actions */
-       struct work_struct irq_work_queue;              /* work entry */
+       struct kthread_worker irq_worker;               /* kthread worker for PIO/YUV/VBI actions */
+       struct task_struct *irq_worker_task;            /* task for irq_worker */
+       struct kthread_work irq_work;   /* kthread work entry */
        spinlock_t dma_reg_lock;        /* lock access to DMA engine registers */
        int cur_dma_stream;             /* index of current stream doing DMA (-1 if none) */
        int cur_pio_stream;             /* index of current stream doing PIO (-1 if none) */