usb: misc: appledisplay: don't print on ENOMEM
[cascardo/linux.git] / drivers / usb / misc / appledisplay.c
index a0a3827..da5ff40 100644 (file)
@@ -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:
@@ -239,7 +238,6 @@ static int appledisplay_probe(struct usb_interface *iface,
        pdata = kzalloc(sizeof(struct appledisplay), GFP_KERNEL);
        if (!pdata) {
                retval = -ENOMEM;
-               dev_err(&iface->dev, "Out of memory\n");
                goto error;
        }
 
@@ -253,8 +251,6 @@ static int appledisplay_probe(struct usb_interface *iface,
        pdata->msgdata = kmalloc(ACD_MSG_BUFFER_LEN, GFP_KERNEL);
        if (!pdata->msgdata) {
                retval = -ENOMEM;
-               dev_err(&iface->dev,
-                       "Allocating buffer for control messages failed\n");
                goto error;
        }
 
@@ -262,7 +258,6 @@ static int appledisplay_probe(struct usb_interface *iface,
        pdata->urb = usb_alloc_urb(0, GFP_KERNEL);
        if (!pdata->urb) {
                retval = -ENOMEM;
-               dev_err(&iface->dev, "Allocating URB failed\n");
                goto error;
        }
 
@@ -344,7 +339,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 +360,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);
 }