Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757423AbbGQJNa (ORCPT ); Fri, 17 Jul 2015 05:13:30 -0400 Received: from mailout2.samsung.com ([203.254.224.25]:37613 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757302AbbGQIsL (ORCPT ); Fri, 17 Jul 2015 04:48:11 -0400 X-AuditID: cbfee61a-f79516d000006302-a0-55a8c14a5e68 From: Jacek Anaszewski To: linux-leds@vger.kernel.org Cc: linux-kernel@vger.kernel.org, cooloney@gmail.com, rpurdie@rpsys.net, stsp@users.sourceforge.net, Andrew Lunn Subject: [PATCH/RFC 07/51] leds: tlc591xx: Remove work queue Date: Fri, 17 Jul 2015 10:46:53 +0200 Message-id: <1437122857-6765-8-git-send-email-j.anaszewski@samsung.com> X-Mailer: git-send-email 1.7.9.5 In-reply-to: <1437122857-6765-1-git-send-email-j.anaszewski@samsung.com> References: <1437122857-6765-1-git-send-email-j.anaszewski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjluLIzCtJLcpLzFFi42I5/e+xgK7XwRWhBnObJCzO3z3EbHF050Qm i8u75rBZbH2zjtFi966nrBadfdNYHNg8ds66y+6xc8dnJo8983+wejSdamf1+LxJLoA1issm JTUnsyy1SN8ugSuj69s8toLZwhUdDeeZGxif83cxcnJICJhIXDn5kA3CFpO4cG89kM3FISSw iFHi6v9GZgjnJ6PEoku3WUCq2AQMJX6+eM3UxcjBISIgJ7HzTCVIDbNAM6NE278mVpAaYQEb iW3X3zGD2CwCqhJvD75iBLF5Bdwl9p5dxArSKyGgIDFnkg1ImFPAQ+L9g5Vg44WAStr+XGSb wMi7gJFhFaNoakFyQXFSeq6hXnFibnFpXrpecn7uJkZwKD2T2sG4ssHiEKMAB6MSD2+D64pQ IdbEsuLK3EOMEhzMSiK8lTuBQrwpiZVVqUX58UWlOanFhxilOViUxHlP5vuECgmkJ5akZqem FqQWwWSZODilGhiDDS/fCz//pr7dJbBwaunu1Ol29qd2Sq48/ODQzsApvh9dJuos4+ieVbbq z7XMrUqbnPuPsy1/pmEUJ1liaTR9s3LfjcXlgULzvm9WMprWYSGlFvIrQr7N57ATYw/T9uSt 81i/3VfS+PSoRHHZJkmj7Y/MZ84Rka6dqHnFw7jz8neGM7Xmr+crsRRnJBpqMRcVJwIAaRLU UiECAAA= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2616 Lines: 93 From: Andrew Lunn Now the core implements the work queue, remove it from the driver. Signed-off-by: Andrew Lunn --- drivers/leds/leds-tlc591xx.c | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/drivers/leds/leds-tlc591xx.c b/drivers/leds/leds-tlc591xx.c index de16c29..b10c425 100644 --- a/drivers/leds/leds-tlc591xx.c +++ b/drivers/leds/leds-tlc591xx.c @@ -14,7 +14,6 @@ #include #include #include -#include #define TLC591XX_MAX_LEDS 16 @@ -42,13 +41,11 @@ #define LEDOUT_MASK 0x3 #define ldev_to_led(c) container_of(c, struct tlc591xx_led, ldev) -#define work_to_led(work) container_of(work, struct tlc591xx_led, work) struct tlc591xx_led { bool active; unsigned int led_no; struct led_classdev ldev; - struct work_struct work; struct tlc591xx_priv *priv; }; @@ -111,11 +108,11 @@ tlc591xx_set_pwm(struct tlc591xx_priv *priv, struct tlc591xx_led *led, } static void -tlc591xx_led_work(struct work_struct *work) +tlc591xx_brightness_set(struct led_classdev *led_cdev, + enum led_brightness brightness) { - struct tlc591xx_led *led = work_to_led(work); + struct tlc591xx_led *led = ldev_to_led(led_cdev); struct tlc591xx_priv *priv = led->priv; - enum led_brightness brightness = led->ldev.brightness; int err; switch (brightness) { @@ -136,25 +133,13 @@ tlc591xx_led_work(struct work_struct *work) } static void -tlc591xx_brightness_set(struct led_classdev *led_cdev, - enum led_brightness brightness) -{ - struct tlc591xx_led *led = ldev_to_led(led_cdev); - - led->ldev.brightness = brightness; - schedule_work(&led->work); -} - -static void tlc591xx_destroy_devices(struct tlc591xx_priv *priv, unsigned int j) { int i = j; while (--i >= 0) { - if (priv->leds[i].active) { + if (priv->leds[i].active) led_classdev_unregister(&priv->leds[i].ldev); - cancel_work_sync(&priv->leds[i].work); - } } } @@ -177,7 +162,6 @@ tlc591xx_configure(struct device *dev, led->led_no = i; led->ldev.brightness_set = tlc591xx_brightness_set; led->ldev.max_brightness = LED_FULL; - INIT_WORK(&led->work, tlc591xx_led_work); err = led_classdev_register(dev, &led->ldev); if (err < 0) { dev_err(dev, "couldn't register LED %s\n", -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/