linux-leds.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] leds: bcm6328: fix signal source assignment for leds 4 to 7
@ 2017-06-02 12:17 Jonas Gorski
  2017-06-03  9:27 ` Álvaro Fernández Rojas
  2017-06-04 18:53 ` Jacek Anaszewski
  0 siblings, 2 replies; 3+ messages in thread
From: Jonas Gorski @ 2017-06-02 12:17 UTC (permalink / raw)
  To: linux-leds
  Cc: Richard Purdie, Jacek Anaszewski, Pavel Machek,
	Álvaro Fernández Rojas

Each nibble represents 4 LEDs, and in case of the higher register, bit 0
represents LED 4, so we need to use modulus for the LED number as well.

Fixes: fd7b025a238d0a5440bfa26c585eb78097bf48dc ("leds: add BCM6328 LED driver")
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
---
 drivers/leds/leds-bcm6328.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/leds/leds-bcm6328.c b/drivers/leds/leds-bcm6328.c
index 1548259297c1..2cfd9389ee96 100644
--- a/drivers/leds/leds-bcm6328.c
+++ b/drivers/leds/leds-bcm6328.c
@@ -242,7 +242,7 @@ static int bcm6328_hwled(struct device *dev, struct device_node *nc, u32 reg,
 
 		spin_lock_irqsave(lock, flags);
 		val = bcm6328_led_read(addr);
-		val |= (BIT(reg) << (((sel % 4) * 4) + 16));
+		val |= (BIT(reg % 4) << (((sel % 4) * 4) + 16));
 		bcm6328_led_write(addr, val);
 		spin_unlock_irqrestore(lock, flags);
 	}
@@ -269,7 +269,7 @@ static int bcm6328_hwled(struct device *dev, struct device_node *nc, u32 reg,
 
 		spin_lock_irqsave(lock, flags);
 		val = bcm6328_led_read(addr);
-		val |= (BIT(reg) << ((sel % 4) * 4));
+		val |= (BIT(reg % 4) << ((sel % 4) * 4));
 		bcm6328_led_write(addr, val);
 		spin_unlock_irqrestore(lock, flags);
 	}
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] leds: bcm6328: fix signal source assignment for leds 4 to 7
  2017-06-02 12:17 [PATCH] leds: bcm6328: fix signal source assignment for leds 4 to 7 Jonas Gorski
@ 2017-06-03  9:27 ` Álvaro Fernández Rojas
  2017-06-04 18:53 ` Jacek Anaszewski
  1 sibling, 0 replies; 3+ messages in thread
From: Álvaro Fernández Rojas @ 2017-06-03  9:27 UTC (permalink / raw)
  To: Jonas Gorski, linux-leds; +Cc: Richard Purdie, Jacek Anaszewski, Pavel Machek

Acked-by: Álvaro Fernández Rojas <noltari@gmail.com>

El 02/06/2017 a las 14:17, Jonas Gorski escribió:
> Each nibble represents 4 LEDs, and in case of the higher register, bit 0
> represents LED 4, so we need to use modulus for the LED number as well.
> 
> Fixes: fd7b025a238d0a5440bfa26c585eb78097bf48dc ("leds: add BCM6328 LED driver")
> Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
> ---
>  drivers/leds/leds-bcm6328.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/leds/leds-bcm6328.c b/drivers/leds/leds-bcm6328.c
> index 1548259297c1..2cfd9389ee96 100644
> --- a/drivers/leds/leds-bcm6328.c
> +++ b/drivers/leds/leds-bcm6328.c
> @@ -242,7 +242,7 @@ static int bcm6328_hwled(struct device *dev, struct device_node *nc, u32 reg,
>  
>  		spin_lock_irqsave(lock, flags);
>  		val = bcm6328_led_read(addr);
> -		val |= (BIT(reg) << (((sel % 4) * 4) + 16));
> +		val |= (BIT(reg % 4) << (((sel % 4) * 4) + 16));
>  		bcm6328_led_write(addr, val);
>  		spin_unlock_irqrestore(lock, flags);
>  	}
> @@ -269,7 +269,7 @@ static int bcm6328_hwled(struct device *dev, struct device_node *nc, u32 reg,
>  
>  		spin_lock_irqsave(lock, flags);
>  		val = bcm6328_led_read(addr);
> -		val |= (BIT(reg) << ((sel % 4) * 4));
> +		val |= (BIT(reg % 4) << ((sel % 4) * 4));
>  		bcm6328_led_write(addr, val);
>  		spin_unlock_irqrestore(lock, flags);
>  	}
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] leds: bcm6328: fix signal source assignment for leds 4 to 7
  2017-06-02 12:17 [PATCH] leds: bcm6328: fix signal source assignment for leds 4 to 7 Jonas Gorski
  2017-06-03  9:27 ` Álvaro Fernández Rojas
@ 2017-06-04 18:53 ` Jacek Anaszewski
  1 sibling, 0 replies; 3+ messages in thread
From: Jacek Anaszewski @ 2017-06-04 18:53 UTC (permalink / raw)
  To: Jonas Gorski, linux-leds
  Cc: Richard Purdie, Pavel Machek, Álvaro Fernández Rojas

Hi Jonas,

On 06/02/2017 02:17 PM, Jonas Gorski wrote:
> Each nibble represents 4 LEDs, and in case of the higher register, bit 0
> represents LED 4, so we need to use modulus for the LED number as well.
> 
> Fixes: fd7b025a238d0a5440bfa26c585eb78097bf48dc ("leds: add BCM6328 LED driver")
> Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
> ---
>  drivers/leds/leds-bcm6328.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/leds/leds-bcm6328.c b/drivers/leds/leds-bcm6328.c
> index 1548259297c1..2cfd9389ee96 100644
> --- a/drivers/leds/leds-bcm6328.c
> +++ b/drivers/leds/leds-bcm6328.c
> @@ -242,7 +242,7 @@ static int bcm6328_hwled(struct device *dev, struct device_node *nc, u32 reg,
>  
>  		spin_lock_irqsave(lock, flags);
>  		val = bcm6328_led_read(addr);
> -		val |= (BIT(reg) << (((sel % 4) * 4) + 16));
> +		val |= (BIT(reg % 4) << (((sel % 4) * 4) + 16));
>  		bcm6328_led_write(addr, val);
>  		spin_unlock_irqrestore(lock, flags);
>  	}
> @@ -269,7 +269,7 @@ static int bcm6328_hwled(struct device *dev, struct device_node *nc, u32 reg,
>  
>  		spin_lock_irqsave(lock, flags);
>  		val = bcm6328_led_read(addr);
> -		val |= (BIT(reg) << ((sel % 4) * 4));
> +		val |= (BIT(reg % 4) << ((sel % 4) * 4));
>  		bcm6328_led_write(addr, val);
>  		spin_unlock_irqrestore(lock, flags);
>  	}
> 

Thanks for the patch. Applied.

-- 
Best regards,
Jacek Anaszewski

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-06-04 18:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-02 12:17 [PATCH] leds: bcm6328: fix signal source assignment for leds 4 to 7 Jonas Gorski
2017-06-03  9:27 ` Álvaro Fernández Rojas
2017-06-04 18:53 ` Jacek Anaszewski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).