|
@@ -45,7 +45,6 @@ struct sd {
|
|
|
const struct v4l2_pix_format *cap_mode;
|
|
|
/* Driver stuff */
|
|
|
struct work_struct work_struct;
|
|
|
- struct workqueue_struct *work_thread;
|
|
|
u8 frame_brightness;
|
|
|
int block_size; /* block size of camera */
|
|
|
int vga; /* 1 if vga cam, 0 if cif cam */
|
|
@@ -477,9 +476,7 @@ static int sd_start(struct gspca_dev *gspca_dev)
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
- /* Start the workqueue function to do the streaming */
|
|
|
- sd->work_thread = create_singlethread_workqueue(MODULE_NAME);
|
|
|
- queue_work(sd->work_thread, &sd->work_struct);
|
|
|
+ schedule_work(&sd->work_struct);
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
@@ -493,8 +490,7 @@ static void sd_stop0(struct gspca_dev *gspca_dev)
|
|
|
/* wait for the work queue to terminate */
|
|
|
mutex_unlock(&gspca_dev->usb_lock);
|
|
|
/* This waits for sq905c_dostream to finish */
|
|
|
- destroy_workqueue(dev->work_thread);
|
|
|
- dev->work_thread = NULL;
|
|
|
+ flush_work(&dev->work_struct);
|
|
|
mutex_lock(&gspca_dev->usb_lock);
|
|
|
}
|
|
|
|