V4L/DVB (4949a): Fix INIT_WORK
authorMauro Carvalho Chehab <mchehab@infradead.org>
Sun, 10 Dec 2006 02:14:21 +0000 (00:14 -0200)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Sun, 10 Dec 2006 11:22:53 +0000 (09:22 -0200)
INIT_WORK syntax changed on kernel 2.6.19. Fixing it on
usbvision and cx88-input.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/cx88/cx88-input.c
drivers/media/video/usbvision/usbvision-core.c
drivers/media/video/usbvision/usbvision.h

index c6d412b1f218fc922de93bbbecc0dbfb2737b259..8136673fe9e8b5d8d3551748dd7bc50c2c020685 100644 (file)
@@ -158,7 +158,7 @@ static void cx88_ir_work(struct work_struct *work)
 static void cx88_ir_start(struct cx88_core *core, struct cx88_IR *ir)
 {
        if (ir->polling) {
-               INIT_WORK(&ir->work, cx88_ir_work, ir);
+               INIT_WORK(&ir->work, cx88_ir_work);
                init_timer(&ir->timer);
                ir->timer.function = ir_timer;
                ir->timer.data = (unsigned long)ir;
index 9163b60c7f91eaec413bf495f23b242434673719..9ff93e7346ae8aab824ed10896e2669a2d47ceed 100644 (file)
@@ -1708,7 +1708,6 @@ int usbvision_power_off(struct usb_usbvision *usbvision)
        return errCode;
 }
 
-
 /*
  * usbvision_set_video_format()
  *
@@ -2217,14 +2216,15 @@ int usbvision_power_on(struct usb_usbvision *usbvision)
  */
 
 // to call usbvision_power_off from task queue
-static void call_usbvision_power_off(void *_usbvision)
+static void call_usbvision_power_off(struct work_struct *work)
 {
-       struct usb_usbvision *usbvision = _usbvision;
+       struct usb_usbvision *usbvision = container_of(work, struct usb_usbvision, work);
 
        PDEBUG(DBG_FUNC, "");
        down_interruptible(&usbvision->lock);
        if(usbvision->user == 0) {
                usbvision_i2c_usb_del_bus(&usbvision->i2c_adap);
+
                usbvision_power_off(usbvision);
                usbvision->initialized = 0;
        }
@@ -2237,7 +2237,7 @@ static void usbvision_powerOffTimer(unsigned long data)
 
        PDEBUG(DBG_FUNC, "");
        del_timer(&usbvision->powerOffTimer);
-       INIT_WORK(&usbvision->powerOffWork, call_usbvision_power_off, usbvision);
+       INIT_WORK(&usbvision->powerOffWork, call_usbvision_power_off);
        (void) schedule_work(&usbvision->powerOffWork);
 
 }
index 0e7e3d653cacd30c0bdf41dc8ef01390f36b2477..782abf4ffaab9b157e2252d77df910515b88994f 100644 (file)
@@ -381,6 +381,8 @@ struct usb_usbvision {
        struct video_device *rdev;                                      /* Radio Device */
        struct video_device *vbi;                                       /* VBI Device   */
 
+       struct work_struct work;
+
        /* i2c Declaration Section*/
        struct i2c_adapter i2c_adap;
        struct i2c_algo_usb_data i2c_algo;