auxdisplay: ht16k33: remove private workqueue
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 9 Feb 2017 18:15:53 +0000 (10:15 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 10 Feb 2017 14:57:28 +0000 (15:57 +0100)
There is no need for the driver to use private workqueue, standard system
workqueue should suffice as they are going to use the same worker pool
anyway.

Acked-by: Robin van der Gracht <robin@protonic.nl>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/auxdisplay/ht16k33.c

index 586faba..f66b45b 100644 (file)
@@ -80,7 +80,6 @@ struct ht16k33_priv {
        struct i2c_client *client;
        struct ht16k33_keypad keypad;
        struct ht16k33_fbdev fbdev;
-       struct workqueue_struct *workqueue;
 };
 
 static struct fb_fix_screeninfo ht16k33_fb_fix = {
@@ -126,8 +125,8 @@ static void ht16k33_fb_queue(struct ht16k33_priv *priv)
 {
        struct ht16k33_fbdev *fbdev = &priv->fbdev;
 
-       queue_delayed_work(priv->workqueue, &fbdev->work,
-               msecs_to_jiffies(HZ / fbdev->refresh_rate));
+       schedule_delayed_work(&fbdev->work,
+                             msecs_to_jiffies(HZ / fbdev->refresh_rate));
 }
 
 /*
@@ -414,21 +413,15 @@ static int ht16k33_probe(struct i2c_client *client,
        i2c_set_clientdata(client, priv);
        fbdev = &priv->fbdev;
 
-       priv->workqueue = create_singlethread_workqueue(DRIVER_NAME "-wq");
-       if (priv->workqueue == NULL)
-               return -ENOMEM;
-
        err = ht16k33_initialize(priv);
        if (err)
-               goto err_destroy_wq;
+               return err;
 
        /* Framebuffer (2 bytes per column) */
        BUILD_BUG_ON(PAGE_SIZE < HT16K33_FB_SIZE);
        fbdev->buffer = (unsigned char *) get_zeroed_page(GFP_KERNEL);
-       if (!fbdev->buffer) {
-               err = -ENOMEM;
-               goto err_destroy_wq;
-       }
+       if (!fbdev->buffer)
+               return -ENOMEM;
 
        fbdev->cache = devm_kmalloc(&client->dev, HT16K33_FB_SIZE, GFP_KERNEL);
        if (!fbdev->cache) {
@@ -505,8 +498,6 @@ err_fbdev_info:
        framebuffer_release(fbdev->info);
 err_fbdev_buffer:
        free_page((unsigned long) fbdev->buffer);
-err_destroy_wq:
-       destroy_workqueue(priv->workqueue);
 
        return err;
 }
@@ -521,7 +512,6 @@ static int ht16k33_remove(struct i2c_client *client)
        framebuffer_release(fbdev->info);
        free_page((unsigned long) fbdev->buffer);
 
-       destroy_workqueue(priv->workqueue);
        return 0;
 }