Merge remote-tracking branch 'tpmdd/next'
[deliverable/linux.git] / drivers / media / usb / pvrusb2 / pvrusb2-hdw.c
index fe20fe4f2330d8c05c1006bc33edc39b2ac07738..1eb4f7ba2967d0777b71b30c7765b07168a0b27b 100644 (file)
@@ -2624,7 +2624,6 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,
        if (cnt1 >= sizeof(hdw->name)) cnt1 = sizeof(hdw->name)-1;
        hdw->name[cnt1] = 0;
 
-       hdw->workqueue = create_singlethread_workqueue(hdw->name);
        INIT_WORK(&hdw->workpoll,pvr2_hdw_worker_poll);
 
        pvr2_trace(PVR2_TRACE_INIT,"Driver unit number is %d, name is %s",
@@ -2651,11 +2650,7 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,
                del_timer_sync(&hdw->decoder_stabilization_timer);
                del_timer_sync(&hdw->encoder_run_timer);
                del_timer_sync(&hdw->encoder_wait_timer);
-               if (hdw->workqueue) {
-                       flush_workqueue(hdw->workqueue);
-                       destroy_workqueue(hdw->workqueue);
-                       hdw->workqueue = NULL;
-               }
+               flush_work(&hdw->workpoll);
                usb_free_urb(hdw->ctl_read_urb);
                usb_free_urb(hdw->ctl_write_urb);
                kfree(hdw->ctl_read_buffer);
@@ -2712,11 +2707,7 @@ void pvr2_hdw_destroy(struct pvr2_hdw *hdw)
 {
        if (!hdw) return;
        pvr2_trace(PVR2_TRACE_INIT,"pvr2_hdw_destroy: hdw=%p",hdw);
-       if (hdw->workqueue) {
-               flush_workqueue(hdw->workqueue);
-               destroy_workqueue(hdw->workqueue);
-               hdw->workqueue = NULL;
-       }
+       flush_work(&hdw->workpoll);
        del_timer_sync(&hdw->quiescent_timer);
        del_timer_sync(&hdw->decoder_stabilization_timer);
        del_timer_sync(&hdw->encoder_run_timer);
@@ -4443,7 +4434,7 @@ static void pvr2_hdw_quiescent_timeout(unsigned long data)
        hdw->state_decoder_quiescent = !0;
        trace_stbit("state_decoder_quiescent",hdw->state_decoder_quiescent);
        hdw->state_stale = !0;
-       queue_work(hdw->workqueue,&hdw->workpoll);
+       schedule_work(&hdw->workpoll);
 }
 
 
@@ -4454,7 +4445,7 @@ static void pvr2_hdw_decoder_stabilization_timeout(unsigned long data)
        hdw->state_decoder_ready = !0;
        trace_stbit("state_decoder_ready", hdw->state_decoder_ready);
        hdw->state_stale = !0;
-       queue_work(hdw->workqueue, &hdw->workpoll);
+       schedule_work(&hdw->workpoll);
 }
 
 
@@ -4465,7 +4456,7 @@ static void pvr2_hdw_encoder_wait_timeout(unsigned long data)
        hdw->state_encoder_waitok = !0;
        trace_stbit("state_encoder_waitok",hdw->state_encoder_waitok);
        hdw->state_stale = !0;
-       queue_work(hdw->workqueue,&hdw->workpoll);
+       schedule_work(&hdw->workpoll);
 }
 
 
@@ -4477,7 +4468,7 @@ static void pvr2_hdw_encoder_run_timeout(unsigned long data)
                hdw->state_encoder_runok = !0;
                trace_stbit("state_encoder_runok",hdw->state_encoder_runok);
                hdw->state_stale = !0;
-               queue_work(hdw->workqueue,&hdw->workpoll);
+               schedule_work(&hdw->workpoll);
        }
 }
 
@@ -4991,7 +4982,7 @@ static void pvr2_hdw_state_sched(struct pvr2_hdw *hdw)
        if (hdw->state_stale) return;
        hdw->state_stale = !0;
        trace_stbit("state_stale",hdw->state_stale);
-       queue_work(hdw->workqueue,&hdw->workpoll);
+       schedule_work(&hdw->workpoll);
 }
 
 
This page took 0.026763 seconds and 5 git commands to generate.