Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751938AbbKONcl (ORCPT ); Sun, 15 Nov 2015 08:32:41 -0500 Received: from proxima.lp0.eu ([81.2.80.65]:49467 "EHLO proxima.lp0.eu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751335AbbKONch (ORCPT ); Sun, 15 Nov 2015 08:32:37 -0500 Subject: [PATCH 1/2] leds-bcm6328: Reuse bcm6328_led_set() instead of copying its functionality To: Jacek Anaszewski , =?UTF-8?Q?=c3=81lvaro_Fern=c3=a1ndez_Rojas?= References: <562BB799.7000708@simon.arlott.org.uk> <562DE832.6070903@samsung.com> <5630A9C1.5060907@samsung.com> <56327821.8020508@simon.arlott.org.uk> <563A2731.40204@samsung.com> <563A2850.5000506@gmail.com> <563B3240.9010804@samsung.com> Cc: Jonas Gorski , Richard Purdie , linux-leds@vger.kernel.org, Linux Kernel Mailing List From: Simon Arlott Message-ID: <56488968.3070103@simon.arlott.org.uk> Date: Sun, 15 Nov 2015 13:32:24 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <563B3240.9010804@samsung.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1581 Lines: 45 When ensuring a consistent initial LED state in bcm6328_led (as they may be blinking instead of on/off), the LED register is set using an inverted copy of bcm6328_led_set(). To avoid further errors relating to active low handling, call this function directly instead. Signed-off-by: Simon Arlott --- I've decided not to move the locking as it should really cover the setting of led->cdev.brightness too (not that it matters as the device is not yet registered). drivers/leds/leds-bcm6328.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/leds/leds-bcm6328.c b/drivers/leds/leds-bcm6328.c index c7ea5c6..95d0cf9 100644 --- a/drivers/leds/leds-bcm6328.c +++ b/drivers/leds/leds-bcm6328.c @@ -314,14 +314,10 @@ static int bcm6328_led(struct device *dev, struct device_node *nc, u32 reg, } else { led->cdev.brightness = LED_OFF; } - - if ((led->active_low && led->cdev.brightness == LED_FULL) || - (!led->active_low && led->cdev.brightness == LED_OFF)) - bcm6328_led_mode(led, BCM6328_LED_MODE_ON); - else - bcm6328_led_mode(led, BCM6328_LED_MODE_OFF); spin_unlock_irqrestore(lock, flags); + bcm6328_led_set(&led->cdev, led->cdev.brightness); + led->cdev.brightness_set = bcm6328_led_set; led->cdev.blink_set = bcm6328_blink_set; -- 2.1.4 -- Simon Arlott -- 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/