aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/cx88/cx88-input.c2
-rw-r--r--drivers/media/video/usbvision/usbvision-core.c8
-rw-r--r--drivers/media/video/usbvision/usbvision.h2
3 files changed, 7 insertions, 5 deletions
diff --git a/drivers/media/video/cx88/cx88-input.c b/drivers/media/video/cx88/cx88-input.c
index c6d412b1f21..8136673fe9e 100644
--- a/drivers/media/video/cx88/cx88-input.c
+++ b/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/drivers/media/video/usbvision/usbvision-core.c b/drivers/media/video/usbvision/usbvision-core.c
index 9163b60c7f9..9ff93e7346a 100644
--- a/drivers/media/video/usbvision/usbvision-core.c
+++ b/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/drivers/media/video/usbvision/usbvision.h b/drivers/media/video/usbvision/usbvision.h
index 0e7e3d653ca..782abf4ffaa 100644
--- a/drivers/media/video/usbvision/usbvision.h
+++ b/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;