|
@@ -85,7 +85,6 @@ struct appledisplay {
|
|
|
};
|
|
|
|
|
|
static atomic_t count_displays = ATOMIC_INIT(0);
|
|
|
-static struct workqueue_struct *wq;
|
|
|
|
|
|
static void appledisplay_complete(struct urb *urb)
|
|
|
{
|
|
@@ -122,7 +121,7 @@ static void appledisplay_complete(struct urb *urb)
|
|
|
case ACD_BTN_BRIGHT_UP:
|
|
|
case ACD_BTN_BRIGHT_DOWN:
|
|
|
pdata->button_pressed = 1;
|
|
|
- queue_delayed_work(wq, &pdata->work, 0);
|
|
|
+ schedule_delayed_work(&pdata->work, 0);
|
|
|
break;
|
|
|
case ACD_BTN_NONE:
|
|
|
default:
|
|
@@ -344,7 +343,7 @@ static void appledisplay_disconnect(struct usb_interface *iface)
|
|
|
|
|
|
if (pdata) {
|
|
|
usb_kill_urb(pdata->urb);
|
|
|
- cancel_delayed_work(&pdata->work);
|
|
|
+ cancel_delayed_work_sync(&pdata->work);
|
|
|
backlight_device_unregister(pdata->bd);
|
|
|
usb_free_coherent(pdata->udev, ACD_URB_BUFFER_LEN,
|
|
|
pdata->urbdata, pdata->urb->transfer_dma);
|
|
@@ -365,19 +364,11 @@ static struct usb_driver appledisplay_driver = {
|
|
|
|
|
|
static int __init appledisplay_init(void)
|
|
|
{
|
|
|
- wq = create_singlethread_workqueue("appledisplay");
|
|
|
- if (!wq) {
|
|
|
- printk(KERN_ERR "appledisplay: Could not create work queue\n");
|
|
|
- return -ENOMEM;
|
|
|
- }
|
|
|
-
|
|
|
return usb_register(&appledisplay_driver);
|
|
|
}
|
|
|
|
|
|
static void __exit appledisplay_exit(void)
|
|
|
{
|
|
|
- flush_workqueue(wq);
|
|
|
- destroy_workqueue(wq);
|
|
|
usb_deregister(&appledisplay_driver);
|
|
|
}
|
|
|
|