Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1945927AbbGQItE (ORCPT ); Fri, 17 Jul 2015 04:49:04 -0400 Received: from mailout2.samsung.com ([203.254.224.25]:51287 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1945910AbbGQItA (ORCPT ); Fri, 17 Jul 2015 04:49:00 -0400 X-AuditID: cbfee61b-f79416d0000014c0-f7-55a8c17b58d6 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 , Guennadi Liakhovetski Subject: [PATCH/RFC 24/51] leds: dac124d085: Remove work queue Date: Fri, 17 Jul 2015 10:47:10 +0200 Message-id: <1437122857-6765-25-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+NgFprGLMWRmVeSWpSXmKPExsVy+t9jAd3qgytCDRY/4rU4f/cQs8XRnROZ LN5vnMdkcXnXHDaLrW/WMVrs3vWU1aKzbxqLA7vHzll32T0+fIzz2LnjM5PHnvk/WD2aTrWz enzeJBfAFsVlk5Kak1mWWqRvl8CVcffDH8aCieIVKzseMjcw3hfqYuTkkBAwkbh18z4rhC0m ceHeerYuRi4OIYFFjBLbzrdBOT8ZJbr+X2MHqWITMJT4+eI1UxcjB4eIgJzEzjOVIDXMAlsY JX4d/s8GUiMsYCdx/sFfRpAaFgFViZ/b1EDCvAIeEhPfdLODhCUEFCTmTLIBCXMChd8/WMkC YgsJuEu0/bnINoGRdwEjwypG0dSC5ILipPRcI73ixNzi0rx0veT83E2M4NB6Jr2DcVWDxSFG AQ5GJR7eBtcVoUKsiWXFlbmHGCU4mJVEeCt3AoV4UxIrq1KL8uOLSnNSiw8xSnOwKInznsz3 CRUSSE8sSc1OTS1ILYLJMnFwSjUwMgk82bX7nthc52snBU4453lcv3Jh5ZPbMwVq2XWin3BY qLw8OdfSvX5/0lyGZju+rjr/5tmLV2W2VtTle0tbP5uq+PkB90kfrxs1BUmeImYi+4qm3K3d vVz+8p5fz7sj9Yp7TnAzMV33u7V39aHJa7k3WzY8uBqr+undv6hMkd1dr08wB7ttU2Ipzkg0 1GIuKk4EACji0j4pAgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3107 Lines: 104 From: Andrew Lunn Now the core implements the work queue, remove it from the drivers. Signed-off-by: Andrew Lunn Cc: Guennadi Liakhovetski --- drivers/leds/leds-dac124s085.c | 33 ++++++--------------------------- 1 file changed, 6 insertions(+), 27 deletions(-) diff --git a/drivers/leds/leds-dac124s085.c b/drivers/leds/leds-dac124s085.c index db3ba8b..2316620 100644 --- a/drivers/leds/leds-dac124s085.c +++ b/drivers/leds/leds-dac124s085.c @@ -13,20 +13,15 @@ #include #include #include -#include -#include #include struct dac124s085_led { struct led_classdev ldev; struct spi_device *spi; int id; - int brightness; char name[sizeof("dac124s085-3")]; struct mutex mutex; - struct work_struct work; - spinlock_t lock; }; struct dac124s085 { @@ -38,31 +33,20 @@ struct dac124s085 { #define ALL_WRITE_UPDATE (2 << 12) #define POWER_DOWN_OUTPUT (3 << 12) -static void dac124s085_led_work(struct work_struct *work) +static void dac124s085_set_brightness(struct led_classdev *ldev, + enum led_brightness brightness) { - struct dac124s085_led *led = container_of(work, struct dac124s085_led, - work); + struct dac124s085_led *led = container_of(ldev, struct dac124s085_led, + ldev); u16 word; mutex_lock(&led->mutex); word = cpu_to_le16(((led->id) << 14) | REG_WRITE_UPDATE | - (led->brightness & 0xfff)); + (brightness & 0xfff)); spi_write(led->spi, (const u8 *)&word, sizeof(word)); mutex_unlock(&led->mutex); } -static void dac124s085_set_brightness(struct led_classdev *ldev, - enum led_brightness brightness) -{ - struct dac124s085_led *led = container_of(ldev, struct dac124s085_led, - ldev); - - spin_lock(&led->lock); - led->brightness = brightness; - schedule_work(&led->work); - spin_unlock(&led->lock); -} - static int dac124s085_probe(struct spi_device *spi) { struct dac124s085 *dac; @@ -78,11 +62,8 @@ static int dac124s085_probe(struct spi_device *spi) for (i = 0; i < ARRAY_SIZE(dac->leds); i++) { led = dac->leds + i; led->id = i; - led->brightness = LED_OFF; led->spi = spi; snprintf(led->name, sizeof(led->name), "dac124s085-%d", i); - spin_lock_init(&led->lock); - INIT_WORK(&led->work, dac124s085_led_work); mutex_init(&led->mutex); led->ldev.name = led->name; led->ldev.brightness = LED_OFF; @@ -109,10 +90,8 @@ static int dac124s085_remove(struct spi_device *spi) struct dac124s085 *dac = spi_get_drvdata(spi); int i; - for (i = 0; i < ARRAY_SIZE(dac->leds); i++) { + for (i = 0; i < ARRAY_SIZE(dac->leds); i++) led_classdev_unregister(&dac->leds[i].ldev); - cancel_work_sync(&dac->leds[i].work); - } return 0; } -- 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/