Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965082AbbHKJjx (ORCPT ); Tue, 11 Aug 2015 05:39:53 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:36980 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965059AbbHKJjt (ORCPT ); Tue, 11 Aug 2015 05:39:49 -0400 X-AuditID: cbfee61b-f79706d000001b96-7b-55c9c2e43043 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 , Daniel Mack , Jacek Anaszewski Subject: [PATCH/RFC v5 30/57] leds: lt3593: Remove work queue Date: Tue, 11 Aug 2015 11:37:43 +0200 Message-id: <1439285890-27329-31-git-send-email-j.anaszewski@samsung.com> X-Mailer: git-send-email 1.7.9.5 In-reply-to: <1439285890-27329-1-git-send-email-j.anaszewski@samsung.com> References: <1439285890-27329-1-git-send-email-j.anaszewski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrCLMWRmVeSWpSXmKPExsVy+t9jQd0nh06GGjydIm9x/u4hZoujOycy Wbw93cBm0Xv1OaPF5V1z2Cy2vlnHaLF711NWi86+aSwOHB4bv6xk8tg56y67x84dn5k89sz/ werRt2UVo0fTqXZWj8+b5ALYo7hsUlJzMstSi/TtErgyNl4UKzgkXtHz4DdLA+Ns4S5GTg4J AROJ/zP/s0HYYhIX7q0Hsrk4hARmMUrM3XKaHcL5ySix7s4BFpAqNgFDiZ8vXjN1MXJwiAjI Sew8UwlSwyxwkVHi/4p2RpAaYQFbiaPrHzOB2CwCqhI/Fq9iB7F5BTwlmt/9ZAfplRBQkJgz yQYkzAkUvv58EVirkICHxPHZTWwTGHkXMDKsYpRILUguKE5KzzXKSy3XK07MLS7NS9dLzs/d xAgOu2fSOxgP73I/xCjAwajEA7TgZKgQa2JZcWXuIUYJDmYlEd7CqUAh3pTEyqrUovz4otKc 1OJDjNIcLErivPomm0KFBNITS1KzU1MLUotgskwcnFINjPMTVws26z1VF/h/Oi27a+Kvlh/r 2hfG7t2zR1WWa7NAS9us17U/M4OLbgitLPz2JdyuNmwHa2OgOaNM3NNc7iuza1RKV2/cd1ei NvTk8qm3rP7v2BvJbSzcrikgfkpngynHvJMx6249jqq7f0Py8CadxU9iGBd5f43UkGZLimDr Wi9zUTi6T4mlOCPRUIu5qDgRAPAcaDk3AgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3152 Lines: 108 From: Andrew Lunn Now the core implements the work queue, remove it from the drivers. Signed-off-by: Andrew Lunn Cc: Daniel Mack Signed-off-by: Jacek Anaszewski --- drivers/leds/leds-lt3593.c | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/drivers/leds/leds-lt3593.c b/drivers/leds/leds-lt3593.c index 9f41124..ccd6589 100644 --- a/drivers/leds/leds-lt3593.c +++ b/drivers/leds/leds-lt3593.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include #include @@ -28,15 +27,14 @@ struct lt3593_led_data { struct led_classdev cdev; unsigned gpio; - struct work_struct work; - u8 new_level; }; -static void lt3593_led_work(struct work_struct *work) +static void lt3593_led_set(struct led_classdev *led_cdev, + enum led_brightness value) { - int pulses; struct lt3593_led_data *led_dat = - container_of(work, struct lt3593_led_data, work); + container_of(led_cdev, struct lt3593_led_data, cdev); + int pulses; /* * The LT3593 resets its internal current level register to the maximum @@ -47,12 +45,12 @@ static void lt3593_led_work(struct work_struct *work) * applied is to the output driver. */ - if (led_dat->new_level == 0) { + if (value == 0) { gpio_set_value_cansleep(led_dat->gpio, 0); return; } - pulses = 32 - (led_dat->new_level * 32) / 255; + pulses = 32 - (value * 32) / 255; if (pulses == 0) { gpio_set_value_cansleep(led_dat->gpio, 0); @@ -71,16 +69,6 @@ static void lt3593_led_work(struct work_struct *work) } } -static void lt3593_led_set(struct led_classdev *led_cdev, - enum led_brightness value) -{ - struct lt3593_led_data *led_dat = - container_of(led_cdev, struct lt3593_led_data, cdev); - - led_dat->new_level = value; - schedule_work(&led_dat->work); -} - static int create_lt3593_led(const struct gpio_led *template, struct lt3593_led_data *led_dat, struct device *parent) { @@ -105,14 +93,14 @@ static int create_lt3593_led(const struct gpio_led *template, if (!template->retain_state_suspended) led_dat->cdev.flags |= LED_CORE_SUSPENDRESUME; + led_dat->cdev.flags |= LED_BRIGHTNESS_BLOCKING; + ret = devm_gpio_request_one(parent, template->gpio, state ? GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW, template->name); if (ret < 0) return ret; - INIT_WORK(&led_dat->work, lt3593_led_work); - ret = led_classdev_register(parent, &led_dat->cdev); if (ret < 0) return ret; @@ -129,7 +117,6 @@ static void delete_lt3593_led(struct lt3593_led_data *led) return; led_classdev_unregister(&led->cdev); - cancel_work_sync(&led->work); } static int lt3593_led_probe(struct platform_device *pdev) -- 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/