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 */
                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;
 }
        /* 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);
 }