Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754605AbbKWKUW (ORCPT ); Mon, 23 Nov 2015 05:20:22 -0500 Received: from mailout4.w1.samsung.com ([210.118.77.14]:62441 "EHLO mailout4.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754143AbbKWKUR (ORCPT ); Mon, 23 Nov 2015 05:20:17 -0500 MIME-version: 1.0 Content-type: text/plain; charset=UTF-8; format=flowed X-AuditID: cbfec7f5-f79b16d000005389-42-5652e85fc45a Content-transfer-encoding: 8BIT Message-id: <5652E85E.3040507@samsung.com> Date: Mon, 23 Nov 2015 11:20:14 +0100 From: Jacek Anaszewski User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130804 Thunderbird/17.0.8 To: Simon Arlott Cc: =?UTF-8?B?w4FsdmFybyBGZXJuw6FuZGV6IFJvamFz?= , Jonas Gorski , Richard Purdie , linux-leds@vger.kernel.org, Linux Kernel Mailing List Subject: Re: [PATCH 2/2] leds-bcm6328: Swap LED ON and OFF definitions 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> <56488968.3070103@simon.arlott.org.uk> <564889ED.4070204@simon.arlott.org.uk> In-reply-to: <564889ED.4070204@simon.arlott.org.uk> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrKLMWRmVeSWpSXmKPExsVy+t/xK7rxL4LCDCae4bK4ve4Um8XlXXPY LLa+WcdosebOIVaL3bueslpcOP+Z2YHNY3H/EkaPnbPusntsWZzhsWf+D1aPz5vkAlijuGxS UnMyy1KL9O0SuDKmzlvIVLBDrGLT+QfsDYx/BbsYOTgkBEwkJi0J7WLkBDLFJC7cW8/WxcjF ISSwlFFi3akp7CAJXgFBiR+T77GA1DMLyEscuZQNEmYWMJN41LKOGaL+GaNEy7YVUPVaEtNe fGcBsVkEVCU+LbjCBmKzCRhK/HzxmgnEFhWIkPhzeh8riC0ioCJx4VY7K8ggZoGnjBJb978A GyQs4CZx8MdWdogNy5glbt47CTaJU8BYYtn/W6wTGAVmITlwFsKBs5AcuICReRWjaGppckFx UnqukV5xYm5xaV66XnJ+7iZGSGB/3cG49JjVIUYBDkYlHl4N/aAwIdbEsuLK3EOMEhzMSiK8 R7YChXhTEiurUovy44tKc1KLDzFKc7AoifPO3PU+REggPbEkNTs1tSC1CCbLxMEp1cBY/FLn b0Hqpi8tU07ueXCj855ielaUvKx5wsqlb1yfdq9bXOg0OaypN7jD4Vf5yavasxJPJn+TYCkX Vyiz2fdIyOeywkaZgMYUtjrBV1lZvw3eFnrHR4RMuTRlwiMeNQllRsekzvN7o+dYKVk8XS5j XJC8K2r7xw7Nm357lL8ZBxY7PWWy2aHEUpyRaKjFXFScCAC4S8zqaAIAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3044 Lines: 78 On 11/15/2015 02:34 PM, Simon Arlott wrote: > The values of BCM6328_LED_MODE_ON and BCM6328_LED_MODE_OFF were named > for active low LEDs. These should be swapped so that they are named for > the default case of active high LEDs. > > Signed-off-by: Simon Arlott > --- > On 05/11/15 10:41, Jacek Anaszewski wrote: >> On 11/04/2015 04:46 PM, Álvaro Fernández Rojas wrote: >>> BCM6328_LED_MODE_ON and BCM6328_LED_MODE_OFF values were extracted from >>> Broadcom's GPL code, in which they assume leds are active low by default. >>> I can confirm the code is correct as it is right now, since those values >>> match the active high / low values of the LEDs managed by GPIO instead >>> of by using this driver. >> >> BCM6328_LED_MODE_ON and BCM6328_LED_MODE_OFF should represent the values >> that actually set the LED state according to the current logic. >> Otherwise it will confuse people who will be analyzing this code. >> We are interested in the logic as it is seen from this driver's >> perspective and not GPIO perspective. >> >> IMO the values should be swapped. > > drivers/leds/leds-bcm6328.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/leds/leds-bcm6328.c b/drivers/leds/leds-bcm6328.c > index 95d0cf9..0329dee 100644 > --- a/drivers/leds/leds-bcm6328.c > +++ b/drivers/leds/leds-bcm6328.c > @@ -48,10 +48,10 @@ > BCM6328_SERIAL_LED_SHIFT_DIR) > > #define BCM6328_LED_MODE_MASK 3 > -#define BCM6328_LED_MODE_OFF 0 > +#define BCM6328_LED_MODE_ON 0 > #define BCM6328_LED_MODE_FAST 1 > #define BCM6328_LED_MODE_BLINK 2 > -#define BCM6328_LED_MODE_ON 3 > +#define BCM6328_LED_MODE_OFF 3 > #define BCM6328_LED_SHIFT(X) ((X) << 1) > > /** > @@ -126,9 +126,9 @@ static void bcm6328_led_set(struct led_classdev *led_cdev, > *(led->blink_leds) &= ~BIT(led->pin); > if ((led->active_low && value == LED_OFF) || > (!led->active_low && value != LED_OFF)) > - bcm6328_led_mode(led, BCM6328_LED_MODE_OFF); > - else > bcm6328_led_mode(led, BCM6328_LED_MODE_ON); > + else > + bcm6328_led_mode(led, BCM6328_LED_MODE_OFF); > spin_unlock_irqrestore(led->lock, flags); > } > > @@ -303,8 +303,8 @@ static int bcm6328_led(struct device *dev, struct device_node *nc, u32 reg, > val = bcm6328_led_read(mode) >> > BCM6328_LED_SHIFT(shift % 16); > val &= BCM6328_LED_MODE_MASK; > - if ((led->active_low && val == BCM6328_LED_MODE_ON) || > - (!led->active_low && val == BCM6328_LED_MODE_OFF)) > + if ((led->active_low && val == BCM6328_LED_MODE_OFF) || > + (!led->active_low && val == BCM6328_LED_MODE_ON)) > led->cdev.brightness = LED_FULL; > else > led->cdev.brightness = LED_OFF; > Applied, thanks. -- Best Regards, Jacek Anaszewski -- 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/