From d6b5a1444d44e81020bfd46b33382e61ba341805 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Sun, 10 Dec 2006 00:14:21 -0200 Subject: [PATCH] --- yaml --- r: 44151 b: refs/heads/master c: 67952e8cb111c5b2f9e675dba1bbde4876f9fcf3 h: refs/heads/master i: 44149: ef7054ede17a7e14787dc7cd023ec956df644b59 44147: 9cc7b31d3de9d38a24d6e6276529834eb3730573 44143: 7f2b888ca03fe2f08fffd70943361b1a7ac60649 v: v3 --- [refs] | 2 +- trunk/drivers/media/video/cx88/cx88-input.c | 2 +- trunk/drivers/media/video/usbvision/usbvision-core.c | 8 ++++---- trunk/drivers/media/video/usbvision/usbvision.h | 2 ++ 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index bf49bf4c3e93..ed402cdcf772 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f35db23c1b1c4da0642e932a7035b5c577377974 +refs/heads/master: 67952e8cb111c5b2f9e675dba1bbde4876f9fcf3 diff --git a/trunk/drivers/media/video/cx88/cx88-input.c b/trunk/drivers/media/video/cx88/cx88-input.c index c6d412b1f218..8136673fe9e8 100644 --- a/trunk/drivers/media/video/cx88/cx88-input.c +++ b/trunk/drivers/media/video/cx88/cx88-input.c @@ -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; diff --git a/trunk/drivers/media/video/usbvision/usbvision-core.c b/trunk/drivers/media/video/usbvision/usbvision-core.c index 9163b60c7f91..9ff93e7346ae 100644 --- a/trunk/drivers/media/video/usbvision/usbvision-core.c +++ b/trunk/drivers/media/video/usbvision/usbvision-core.c @@ -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); } diff --git a/trunk/drivers/media/video/usbvision/usbvision.h b/trunk/drivers/media/video/usbvision/usbvision.h index 0e7e3d653cac..782abf4ffaab 100644 --- a/trunk/drivers/media/video/usbvision/usbvision.h +++ b/trunk/drivers/media/video/usbvision/usbvision.h @@ -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;