From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754853Ab2HUJED (ORCPT ); Tue, 21 Aug 2012 05:04:03 -0400 Received: from devils.ext.ti.com ([198.47.26.153]:43676 "EHLO devils.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753472Ab2HUJD7 convert rfc822-to-8bit (ORCPT ); Tue, 21 Aug 2012 05:03:59 -0400 From: "Kim, Milo" To: Bryan Wu CC: Richard Purdie , "linux-kernel@vger.kernel.org" , "linux-leds@vger.kernel.org" Subject: [PATCH 2/4] leds-lp5523: set the brightness to 0 forcely on removing the driver Thread-Topic: [PATCH 2/4] leds-lp5523: set the brightness to 0 forcely on removing the driver Thread-Index: Ac1/e9/2sjm/1CnHR7+HKaHWZOWZZA== Date: Tue, 21 Aug 2012 09:03:50 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.16.34.32] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Turning off the brightness of each channel is required when removing the driver. So use flush_work_sync() rather than cancel_work_sync() to wait for unhandled brightness works. Signed-off-by: Milo(Woogyom) Kim --- drivers/leds/leds-lp5523.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/leds/leds-lp5523.c b/drivers/leds/leds-lp5523.c index 9fd9a92..f090819 100644 --- a/drivers/leds/leds-lp5523.c +++ b/drivers/leds/leds-lp5523.c @@ -974,7 +974,7 @@ static int __devinit lp5523_probe(struct i2c_client *client, fail2: for (i = 0; i < chip->num_leds; i++) { led_classdev_unregister(&chip->leds[i].cdev); - cancel_work_sync(&chip->leds[i].brightness_work); + flush_work_sync(&chip->leds[i].brightness_work); } fail1: if (pdata->enable) @@ -993,7 +993,7 @@ static int lp5523_remove(struct i2c_client *client) for (i = 0; i < chip->num_leds; i++) { led_classdev_unregister(&chip->leds[i].cdev); - cancel_work_sync(&chip->leds[i].brightness_work); + flush_work_sync(&chip->leds[i].brightness_work); } if (chip->pdata->enable) -- 1.7.2.5 Best Regards, Milo