All of lore.kernel.org
 help / color / mirror / Atom feed
* [Resend][PATCH] Pinctrl: imx1: fix wrong pin-name resolving
@ 2015-06-26  0:26 Chris Ruehl
  2015-07-16  8:52 ` Linus Walleij
  0 siblings, 1 reply; 12+ messages in thread
From: Chris Ruehl @ 2015-06-26  0:26 UTC (permalink / raw)
  To: linus.walleij; +Cc: linux-gpio, Chris Ruehl

Bug in function imx1_pinconf_set() cause crash when
princtrl debug is enabled and the pin_id becomes larger
then the info->pins[] contains data.

imx27-pinctrl 10015000.iomuxc: request pin 134 (MX27_PAD_UART2_TXD) for 
1000b000.serial
imx27-pinctrl 10015000.iomuxc: request pin 135 (MX27_PAD_UART2_RXD) for 
1000b000.serial
imx27-pinctrl 10015000.iomuxc: request pin 131 (MX27_PAD_UART2_CTS) for 
1000b000.serial
imx27-pinctrl 10015000.iomuxc: request pin 132 (MX27_PAD_UART2_RTS) for 
1000b000.serial
imx27-pinctrl 10015000.iomuxc: enable function uart group uart2-1
imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0x86, function 0, gpio 0, 
direction 1, oconf 0, iconfa 0, iconfb 0
imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0x87, function 0, gpio 0, 
direction 0, oconf 0, iconfa 0, iconfb 0
imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0x83, function 0, gpio 0, 
direction 1, oconf 0, iconfa 0, iconfb 0
imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0x84, function 0, gpio 0, 
direction 0, oconf 0, iconfa 0, iconfb 0
imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=134
imx27-pinctrl 10015000.iomuxc: pinconf set pullup pin MX27_PAD_UART1_RTS
imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=135
imx27-pinctrl 10015000.iomuxc: pinconf set pullup pin MX27_PAD_RTCK
imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=131
imx27-pinctrl 10015000.iomuxc: pinconf set pullup pin MX27_PAD_UART1_TXD
imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=132
imx27-pinctrl 10015000.iomuxc: pinconf set pullup pin MX27_PAD_UART1_RXD
...
imx27-pinctrl 10015000.iomuxc: write: register 0xf4415508 offset 4 value 0x3
imx27-pinctrl 10015000.iomuxc: write: register 0xf4415510 offset 4 value 0x0
imx27-pinctrl 10015000.iomuxc: write: register 0xf4415518 offset 4 value 0x0
imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0xb5, function 0, gpio 0, 
direction 1, oconf 0, iconfa 0, iconfb 0
imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=171
Unable to handle kernel paging request at virtual address 6c61765f
pgd = c0004000
6c61765f] *pgd=00000000
Internal error: Oops: 5 [#1] ARM
Modules linked in:
CPU: 0 PID: 1 Comm: swapper Not tainted 4.1.0-rc4-next-20150522-dirty #8
Hardware name: GTSYS i.MX27GTSIR (Device Tree Support)
task: ce832000 ti: ce848000 task.ti: ce848000
PC is at strnlen+0x28/0x3c
LR is at string.isra.4+0x34/0xcc
pc : [<c01ae188>]    lr : [<c01af9a4>]    psr: 20000093
sp : ce849a88  ip : ce849a98  fp : ce849a94
r10: c05d7e3a  r9 : c05d81e4  r8 : 00000000
r7 : 6c61765f  r6 : c05d81e4  r5 : ffffffff  r4 : c05d7e3a
r3 : 6c61765f  r2 : 6c61765f  r1 : 6c61765e  r0 : 6c61765f
Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel


Signed-off-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
---
  drivers/pinctrl/freescale/pinctrl-imx1-core.c |    6 ++++--
  1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/pinctrl/freescale/pinctrl-imx1-core.c 
b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
index 5ac59fb..8408bd8 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx1-core.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
@@ -403,14 +403,16 @@ static int imx1_pinconf_set(struct pinctrl_dev *pctldev,
  			     unsigned num_configs)
  {
  	struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
-	const struct imx1_pinctrl_soc_info *info = ipctl->info;
+	struct pin_desc *desc;
  	int i;
  +	desc = pin_desc_get(pctldev, pin_id);
+
  	for (i = 0; i != num_configs; ++i) {
  		imx1_write_bit(ipctl, pin_id, configs[i] & 0x01, MX1_PUEN);
   		dev_dbg(ipctl->dev, "pinconf set pullup pin %s\n",
-			info->pins[pin_id].name);
+			desc->name);
  	}
   	return 0;
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [Resend][PATCH] Pinctrl: imx1: fix wrong pin-name resolving
  2015-06-26  0:26 [Resend][PATCH] Pinctrl: imx1: fix wrong pin-name resolving Chris Ruehl
@ 2015-07-16  8:52 ` Linus Walleij
  2015-07-16 11:34   ` Uwe Kleine-König
  0 siblings, 1 reply; 12+ messages in thread
From: Linus Walleij @ 2015-07-16  8:52 UTC (permalink / raw)
  To: Chris Ruehl, Shawn Guo, Sascha Hauer, Markus Pargmann; +Cc: linux-gpio

On Fri, Jun 26, 2015 at 2:26 AM, Chris Ruehl <chris.ruehl@gtsys.com.hk> wrote:

> Bug in function imx1_pinconf_set() cause crash when
> princtrl debug is enabled and the pin_id becomes larger
> then the info->pins[] contains data.
>
> imx27-pinctrl 10015000.iomuxc: request pin 134 (MX27_PAD_UART2_TXD) for
> 1000b000.serial
> imx27-pinctrl 10015000.iomuxc: request pin 135 (MX27_PAD_UART2_RXD) for
> 1000b000.serial
> imx27-pinctrl 10015000.iomuxc: request pin 131 (MX27_PAD_UART2_CTS) for
> 1000b000.serial
> imx27-pinctrl 10015000.iomuxc: request pin 132 (MX27_PAD_UART2_RTS) for
> 1000b000.serial
> imx27-pinctrl 10015000.iomuxc: enable function uart group uart2-1
> imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0x86, function 0, gpio 0,
> direction 1, oconf 0, iconfa 0, iconfb 0
> imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0x87, function 0, gpio 0,
> direction 0, oconf 0, iconfa 0, iconfb 0
> imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0x83, function 0, gpio 0,
> direction 1, oconf 0, iconfa 0, iconfb 0
> imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0x84, function 0, gpio 0,
> direction 0, oconf 0, iconfa 0, iconfb 0
> imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=134
> imx27-pinctrl 10015000.iomuxc: pinconf set pullup pin MX27_PAD_UART1_RTS
> imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=135
> imx27-pinctrl 10015000.iomuxc: pinconf set pullup pin MX27_PAD_RTCK
> imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=131
> imx27-pinctrl 10015000.iomuxc: pinconf set pullup pin MX27_PAD_UART1_TXD
> imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=132
> imx27-pinctrl 10015000.iomuxc: pinconf set pullup pin MX27_PAD_UART1_RXD
> ...
> imx27-pinctrl 10015000.iomuxc: write: register 0xf4415508 offset 4 value 0x3
> imx27-pinctrl 10015000.iomuxc: write: register 0xf4415510 offset 4 value 0x0
> imx27-pinctrl 10015000.iomuxc: write: register 0xf4415518 offset 4 value 0x0
> imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0xb5, function 0, gpio 0,
> direction 1, oconf 0, iconfa 0, iconfb 0
> imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=171
> Unable to handle kernel paging request at virtual address 6c61765f
> pgd = c0004000
> 6c61765f] *pgd=00000000
> Internal error: Oops: 5 [#1] ARM
> Modules linked in:
> CPU: 0 PID: 1 Comm: swapper Not tainted 4.1.0-rc4-next-20150522-dirty #8
> Hardware name: GTSYS i.MX27GTSIR (Device Tree Support)
> task: ce832000 ti: ce848000 task.ti: ce848000
> PC is at strnlen+0x28/0x3c
> LR is at string.isra.4+0x34/0xcc
> pc : [<c01ae188>]    lr : [<c01af9a4>]    psr: 20000093
> sp : ce849a88  ip : ce849a98  fp : ce849a94
> r10: c05d7e3a  r9 : c05d81e4  r8 : 00000000
> r7 : 6c61765f  r6 : c05d81e4  r5 : ffffffff  r4 : c05d7e3a
> r3 : 6c61765f  r2 : 6c61765f  r1 : 6c61765e  r0 : 6c61765f
> Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
>
>
> Signed-off-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>

Patch applied. Can't seem so see anyone who's safeguarding this
driver recently, putting some people on To:

Yours,
Linus Walleij

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

* Re: [Resend][PATCH] Pinctrl: imx1: fix wrong pin-name resolving
  2015-07-16  8:52 ` Linus Walleij
@ 2015-07-16 11:34   ` Uwe Kleine-König
  2015-07-16 14:00     ` Linus Walleij
  0 siblings, 1 reply; 12+ messages in thread
From: Uwe Kleine-König @ 2015-07-16 11:34 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Chris Ruehl, Shawn Guo, Sascha Hauer, Markus Pargmann, linux-gpio

Hello,

On Thu, Jul 16, 2015 at 10:52:58AM +0200, Linus Walleij wrote:
> On Fri, Jun 26, 2015 at 2:26 AM, Chris Ruehl <chris.ruehl@gtsys.com.hk> wrote:
> 
> > Bug in function imx1_pinconf_set() cause crash when
> > princtrl debug is enabled and the pin_id becomes larger
> > then the info->pins[] contains data.
> >
> > imx27-pinctrl 10015000.iomuxc: request pin 134 (MX27_PAD_UART2_TXD) for
> > 1000b000.serial
> > imx27-pinctrl 10015000.iomuxc: request pin 135 (MX27_PAD_UART2_RXD) for
> > 1000b000.serial
> > imx27-pinctrl 10015000.iomuxc: request pin 131 (MX27_PAD_UART2_CTS) for
> > 1000b000.serial
> > imx27-pinctrl 10015000.iomuxc: request pin 132 (MX27_PAD_UART2_RTS) for
> > 1000b000.serial
> > imx27-pinctrl 10015000.iomuxc: enable function uart group uart2-1
> > imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0x86, function 0, gpio 0,
> > direction 1, oconf 0, iconfa 0, iconfb 0
> > imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0x87, function 0, gpio 0,
> > direction 0, oconf 0, iconfa 0, iconfb 0
> > imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0x83, function 0, gpio 0,
> > direction 1, oconf 0, iconfa 0, iconfb 0
> > imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0x84, function 0, gpio 0,
> > direction 0, oconf 0, iconfa 0, iconfb 0
> > imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=134
> > imx27-pinctrl 10015000.iomuxc: pinconf set pullup pin MX27_PAD_UART1_RTS
> > imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=135
> > imx27-pinctrl 10015000.iomuxc: pinconf set pullup pin MX27_PAD_RTCK
> > imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=131
> > imx27-pinctrl 10015000.iomuxc: pinconf set pullup pin MX27_PAD_UART1_TXD
> > imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=132
> > imx27-pinctrl 10015000.iomuxc: pinconf set pullup pin MX27_PAD_UART1_RXD
> > ...
> > imx27-pinctrl 10015000.iomuxc: write: register 0xf4415508 offset 4 value 0x3
> > imx27-pinctrl 10015000.iomuxc: write: register 0xf4415510 offset 4 value 0x0
> > imx27-pinctrl 10015000.iomuxc: write: register 0xf4415518 offset 4 value 0x0
> > imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0xb5, function 0, gpio 0,
> > direction 1, oconf 0, iconfa 0, iconfb 0
> > imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=171
> > Unable to handle kernel paging request at virtual address 6c61765f
> > pgd = c0004000
> > 6c61765f] *pgd=00000000
> > Internal error: Oops: 5 [#1] ARM
> > Modules linked in:
> > CPU: 0 PID: 1 Comm: swapper Not tainted 4.1.0-rc4-next-20150522-dirty #8
> > Hardware name: GTSYS i.MX27GTSIR (Device Tree Support)
> > task: ce832000 ti: ce848000 task.ti: ce848000
> > PC is at strnlen+0x28/0x3c
> > LR is at string.isra.4+0x34/0xcc
> > pc : [<c01ae188>]    lr : [<c01af9a4>]    psr: 20000093
> > sp : ce849a88  ip : ce849a98  fp : ce849a94
> > r10: c05d7e3a  r9 : c05d81e4  r8 : 00000000
> > r7 : 6c61765f  r6 : c05d81e4  r5 : ffffffff  r4 : c05d7e3a
> > r3 : 6c61765f  r2 : 6c61765f  r1 : 6c61765e  r0 : 6c61765f
> > Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
> >
> >
> > Signed-off-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
> 
> Patch applied. Can't seem so see anyone who's safeguarding this
> driver recently, putting some people on To:
I commented in that thread and the outcome from my POV was that the fix
needs a better changelog and it could be optimised to not lookup the pin
if debug is off. (I don't know the patch content, as it was stripped in
the reply.)

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [Resend][PATCH] Pinctrl: imx1: fix wrong pin-name resolving
  2015-07-16 11:34   ` Uwe Kleine-König
@ 2015-07-16 14:00     ` Linus Walleij
  2015-07-17  1:33       ` Chris Ruehl
  0 siblings, 1 reply; 12+ messages in thread
From: Linus Walleij @ 2015-07-16 14:00 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Chris Ruehl, Shawn Guo, Sascha Hauer, Markus Pargmann, linux-gpio

On Thu, Jul 16, 2015 at 1:34 PM, Uwe Kleine-König
<u.kleine-koenig@pengutronix.de> wrote:
> On Thu, Jul 16, 2015 at 10:52:58AM +0200, Linus Walleij wrote:
>> On Fri, Jun 26, 2015 at 2:26 AM, Chris Ruehl <chris.ruehl@gtsys.com.hk> wrote:
>>
>> > Bug in function imx1_pinconf_set() cause crash when
>> > princtrl debug is enabled and the pin_id becomes larger
>> > then the info->pins[] contains data.
>> >
>> > imx27-pinctrl 10015000.iomuxc: request pin 134 (MX27_PAD_UART2_TXD) for
>> > 1000b000.serial
>> > imx27-pinctrl 10015000.iomuxc: request pin 135 (MX27_PAD_UART2_RXD) for
>> > 1000b000.serial
>> > imx27-pinctrl 10015000.iomuxc: request pin 131 (MX27_PAD_UART2_CTS) for
>> > 1000b000.serial
>> > imx27-pinctrl 10015000.iomuxc: request pin 132 (MX27_PAD_UART2_RTS) for
>> > 1000b000.serial
>> > imx27-pinctrl 10015000.iomuxc: enable function uart group uart2-1
>> > imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0x86, function 0, gpio 0,
>> > direction 1, oconf 0, iconfa 0, iconfb 0
>> > imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0x87, function 0, gpio 0,
>> > direction 0, oconf 0, iconfa 0, iconfb 0
>> > imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0x83, function 0, gpio 0,
>> > direction 1, oconf 0, iconfa 0, iconfb 0
>> > imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0x84, function 0, gpio 0,
>> > direction 0, oconf 0, iconfa 0, iconfb 0
>> > imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=134
>> > imx27-pinctrl 10015000.iomuxc: pinconf set pullup pin MX27_PAD_UART1_RTS
>> > imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=135
>> > imx27-pinctrl 10015000.iomuxc: pinconf set pullup pin MX27_PAD_RTCK
>> > imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=131
>> > imx27-pinctrl 10015000.iomuxc: pinconf set pullup pin MX27_PAD_UART1_TXD
>> > imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=132
>> > imx27-pinctrl 10015000.iomuxc: pinconf set pullup pin MX27_PAD_UART1_RXD
>> > ...
>> > imx27-pinctrl 10015000.iomuxc: write: register 0xf4415508 offset 4 value 0x3
>> > imx27-pinctrl 10015000.iomuxc: write: register 0xf4415510 offset 4 value 0x0
>> > imx27-pinctrl 10015000.iomuxc: write: register 0xf4415518 offset 4 value 0x0
>> > imx27-pinctrl 10015000.iomuxc: imx1_pmx_set, pin 0xb5, function 0, gpio 0,
>> > direction 1, oconf 0, iconfa 0, iconfb 0
>> > imx27-pinctrl 10015000.iomuxc: num_configs=1 PinID=171
>> > Unable to handle kernel paging request at virtual address 6c61765f
>> > pgd = c0004000
>> > 6c61765f] *pgd=00000000
>> > Internal error: Oops: 5 [#1] ARM
>> > Modules linked in:
>> > CPU: 0 PID: 1 Comm: swapper Not tainted 4.1.0-rc4-next-20150522-dirty #8
>> > Hardware name: GTSYS i.MX27GTSIR (Device Tree Support)
>> > task: ce832000 ti: ce848000 task.ti: ce848000
>> > PC is at strnlen+0x28/0x3c
>> > LR is at string.isra.4+0x34/0xcc
>> > pc : [<c01ae188>]    lr : [<c01af9a4>]    psr: 20000093
>> > sp : ce849a88  ip : ce849a98  fp : ce849a94
>> > r10: c05d7e3a  r9 : c05d81e4  r8 : 00000000
>> > r7 : 6c61765f  r6 : c05d81e4  r5 : ffffffff  r4 : c05d7e3a
>> > r3 : 6c61765f  r2 : 6c61765f  r1 : 6c61765e  r0 : 6c61765f
>> > Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
>> >
>> >
>> > Signed-off-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
>>
>> Patch applied. Can't seem so see anyone who's safeguarding this
>> driver recently, putting some people on To:
>
> I commented in that thread and the outcome from my POV was that the fix
> needs a better changelog and it could be optimised to not lookup the pin
> if debug is off. (I don't know the patch content, as it was stripped in
> the reply.)

OK Chris will you send a new version of this patch?

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [Resend][PATCH] Pinctrl: imx1: fix wrong pin-name resolving
  2015-07-16 14:00     ` Linus Walleij
@ 2015-07-17  1:33       ` Chris Ruehl
  2015-07-17  7:38           ` Uwe Kleine-König
  0 siblings, 1 reply; 12+ messages in thread
From: Chris Ruehl @ 2015-07-17  1:33 UTC (permalink / raw)
  To: Linus Walleij, Uwe Kleine-König
  Cc: Shawn Guo, Sascha Hauer, Markus Pargmann, linux-gpio

>>>
>>> Patch applied. Can't seem so see anyone who's safeguarding this
>>> driver recently, putting some people on To:
>>
>> I commented in that thread and the outcome from my POV was that the fix
>> needs a better changelog and it could be optimised to not lookup the pin
>> if debug is off. (I don't know the patch content, as it was stripped in
>> the reply.)
>
> OK Chris will you send a new version of this patch?
>
> Yours,
> Linus Walleij
>

Hi Uwe

If you don't mind take over the ownership of patching this issue?

I'm very busy at the moment and afraid it takes too long to bring the right
comments etc..

Thanks
Chris


-- 
GTSYS Limited RFID Technology
9/F, Unit E, R07, Kwai Shing Industrial Building Phase 2,
42-46 Tai Lin Pai Road, Kwai Chung, N.T., Hong Kong
Tel (852) 9079 9521

Disclaimer: http://www.gtsys.com.hk/email/classified.html

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

* [PATCH] Subject: pinctrl: imx1-core: Fix debug output in .pin_config_set callback
  2015-07-17  1:33       ` Chris Ruehl
@ 2015-07-17  7:38           ` Uwe Kleine-König
  0 siblings, 0 replies; 12+ messages in thread
From: Uwe Kleine-König @ 2015-07-17  7:38 UTC (permalink / raw)
  To: Markus Pargmann, Linus Walleij, Chris Ruehl
  Cc: Shawn Guo, linux-arm-kernel, linux-gpio, kernel, stable

imx1_pinconf_set assumes that the array of pins in struct
imx1_pinctrl_soc_info can be indexed by pin id to get the
pinctrl_pin_desc for a pin. This used to be correct up to commit
607af165c047 which removed some entries from the array and so made it
wrong to access the array by pin id.

The result of this bug is a wrong pin name in the output for small pin
ids and an oops for the bigger ones.

This patch is the result of a discussion that includes patches by Markus
Pargmann and Chris Ruehl.

Fixes: 607af165c047 ("pinctrl: i.MX27: Remove nonexistent pad definitions")
Cc: stable@vger.kernel.org
Reported-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 drivers/pinctrl/freescale/pinctrl-imx1-core.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/pinctrl/freescale/pinctrl-imx1-core.c b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
index 5fd4437cee15..88a7fac11bd4 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx1-core.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
@@ -403,14 +403,13 @@ static int imx1_pinconf_set(struct pinctrl_dev *pctldev,
 			     unsigned num_configs)
 {
 	struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
-	const struct imx1_pinctrl_soc_info *info = ipctl->info;
 	int i;
 
 	for (i = 0; i != num_configs; ++i) {
 		imx1_write_bit(ipctl, pin_id, configs[i] & 0x01, MX1_PUEN);
 
 		dev_dbg(ipctl->dev, "pinconf set pullup pin %s\n",
-			info->pins[pin_id].name);
+			pin_desc_get(pctldev, pin_id)->name);
 	}
 
 	return 0;
-- 
2.1.4

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

* [PATCH] Subject: pinctrl: imx1-core: Fix debug output in .pin_config_set callback
@ 2015-07-17  7:38           ` Uwe Kleine-König
  0 siblings, 0 replies; 12+ messages in thread
From: Uwe Kleine-König @ 2015-07-17  7:38 UTC (permalink / raw)
  To: linux-arm-kernel

imx1_pinconf_set assumes that the array of pins in struct
imx1_pinctrl_soc_info can be indexed by pin id to get the
pinctrl_pin_desc for a pin. This used to be correct up to commit
607af165c047 which removed some entries from the array and so made it
wrong to access the array by pin id.

The result of this bug is a wrong pin name in the output for small pin
ids and an oops for the bigger ones.

This patch is the result of a discussion that includes patches by Markus
Pargmann and Chris Ruehl.

Fixes: 607af165c047 ("pinctrl: i.MX27: Remove nonexistent pad definitions")
Cc: stable at vger.kernel.org
Reported-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 drivers/pinctrl/freescale/pinctrl-imx1-core.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/pinctrl/freescale/pinctrl-imx1-core.c b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
index 5fd4437cee15..88a7fac11bd4 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx1-core.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
@@ -403,14 +403,13 @@ static int imx1_pinconf_set(struct pinctrl_dev *pctldev,
 			     unsigned num_configs)
 {
 	struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
-	const struct imx1_pinctrl_soc_info *info = ipctl->info;
 	int i;
 
 	for (i = 0; i != num_configs; ++i) {
 		imx1_write_bit(ipctl, pin_id, configs[i] & 0x01, MX1_PUEN);
 
 		dev_dbg(ipctl->dev, "pinconf set pullup pin %s\n",
-			info->pins[pin_id].name);
+			pin_desc_get(pctldev, pin_id)->name);
 	}
 
 	return 0;
-- 
2.1.4

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

* Re: [PATCH] Subject: pinctrl: imx1-core: Fix debug output in .pin_config_set callback
  2015-07-17  7:38           ` Uwe Kleine-König
@ 2015-07-17  7:56             ` Markus Pargmann
  -1 siblings, 0 replies; 12+ messages in thread
From: Markus Pargmann @ 2015-07-17  7:56 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Linus Walleij, Chris Ruehl, linux-gpio, stable, Shawn Guo,
	kernel, linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 2339 bytes --]

On Fri, Jul 17, 2015 at 09:38:43AM +0200, Uwe Kleine-König wrote:
> imx1_pinconf_set assumes that the array of pins in struct
> imx1_pinctrl_soc_info can be indexed by pin id to get the
> pinctrl_pin_desc for a pin. This used to be correct up to commit
> 607af165c047 which removed some entries from the array and so made it
> wrong to access the array by pin id.
> 
> The result of this bug is a wrong pin name in the output for small pin
> ids and an oops for the bigger ones.
> 
> This patch is the result of a discussion that includes patches by Markus
> Pargmann and Chris Ruehl.
> 
> Fixes: 607af165c047 ("pinctrl: i.MX27: Remove nonexistent pad definitions")
> Cc: stable@vger.kernel.org
> Reported-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

Reviewed-by: Markus Pargmann <mpa@pengutronix.de>

> ---
>  drivers/pinctrl/freescale/pinctrl-imx1-core.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/pinctrl/freescale/pinctrl-imx1-core.c b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
> index 5fd4437cee15..88a7fac11bd4 100644
> --- a/drivers/pinctrl/freescale/pinctrl-imx1-core.c
> +++ b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
> @@ -403,14 +403,13 @@ static int imx1_pinconf_set(struct pinctrl_dev *pctldev,
>  			     unsigned num_configs)
>  {
>  	struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
> -	const struct imx1_pinctrl_soc_info *info = ipctl->info;
>  	int i;
>  
>  	for (i = 0; i != num_configs; ++i) {
>  		imx1_write_bit(ipctl, pin_id, configs[i] & 0x01, MX1_PUEN);
>  
>  		dev_dbg(ipctl->dev, "pinconf set pullup pin %s\n",
> -			info->pins[pin_id].name);
> +			pin_desc_get(pctldev, pin_id)->name);
>  	}
>  
>  	return 0;
> -- 
> 2.1.4
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

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

* [PATCH] Subject: pinctrl: imx1-core: Fix debug output in .pin_config_set callback
@ 2015-07-17  7:56             ` Markus Pargmann
  0 siblings, 0 replies; 12+ messages in thread
From: Markus Pargmann @ 2015-07-17  7:56 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Jul 17, 2015 at 09:38:43AM +0200, Uwe Kleine-K?nig wrote:
> imx1_pinconf_set assumes that the array of pins in struct
> imx1_pinctrl_soc_info can be indexed by pin id to get the
> pinctrl_pin_desc for a pin. This used to be correct up to commit
> 607af165c047 which removed some entries from the array and so made it
> wrong to access the array by pin id.
> 
> The result of this bug is a wrong pin name in the output for small pin
> ids and an oops for the bigger ones.
> 
> This patch is the result of a discussion that includes patches by Markus
> Pargmann and Chris Ruehl.
> 
> Fixes: 607af165c047 ("pinctrl: i.MX27: Remove nonexistent pad definitions")
> Cc: stable at vger.kernel.org
> Reported-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>

Reviewed-by: Markus Pargmann <mpa@pengutronix.de>

> ---
>  drivers/pinctrl/freescale/pinctrl-imx1-core.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/pinctrl/freescale/pinctrl-imx1-core.c b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
> index 5fd4437cee15..88a7fac11bd4 100644
> --- a/drivers/pinctrl/freescale/pinctrl-imx1-core.c
> +++ b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
> @@ -403,14 +403,13 @@ static int imx1_pinconf_set(struct pinctrl_dev *pctldev,
>  			     unsigned num_configs)
>  {
>  	struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
> -	const struct imx1_pinctrl_soc_info *info = ipctl->info;
>  	int i;
>  
>  	for (i = 0; i != num_configs; ++i) {
>  		imx1_write_bit(ipctl, pin_id, configs[i] & 0x01, MX1_PUEN);
>  
>  		dev_dbg(ipctl->dev, "pinconf set pullup pin %s\n",
> -			info->pins[pin_id].name);
> +			pin_desc_get(pctldev, pin_id)->name);
>  	}
>  
>  	return 0;
> -- 
> 2.1.4
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20150717/ecd666ac/attachment.sig>

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

* Re: [PATCH] Subject: pinctrl: imx1-core: Fix debug output in .pin_config_set callback
  2015-07-17  7:38           ` Uwe Kleine-König
  (?)
@ 2015-07-17  7:58             ` Linus Walleij
  -1 siblings, 0 replies; 12+ messages in thread
From: Linus Walleij @ 2015-07-17  7:58 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Markus Pargmann, Chris Ruehl, Shawn Guo, linux-arm-kernel,
	linux-gpio, Sascha Hauer, stable

On Fri, Jul 17, 2015 at 9:38 AM, Uwe Kleine-König
<u.kleine-koenig@pengutronix.de> wrote:

> imx1_pinconf_set assumes that the array of pins in struct
> imx1_pinctrl_soc_info can be indexed by pin id to get the
> pinctrl_pin_desc for a pin. This used to be correct up to commit
> 607af165c047 which removed some entries from the array and so made it
> wrong to access the array by pin id.
>
> The result of this bug is a wrong pin name in the output for small pin
> ids and an oops for the bigger ones.
>
> This patch is the result of a discussion that includes patches by Markus
> Pargmann and Chris Ruehl.
>
> Fixes: 607af165c047 ("pinctrl: i.MX27: Remove nonexistent pad definitions")
> Cc: stable@vger.kernel.org
> Reported-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

Patch applied for fixes with Markus' review tag.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH] Subject: pinctrl: imx1-core: Fix debug output in .pin_config_set callback
@ 2015-07-17  7:58             ` Linus Walleij
  0 siblings, 0 replies; 12+ messages in thread
From: Linus Walleij @ 2015-07-17  7:58 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Markus Pargmann, Chris Ruehl, Shawn Guo, linux-arm-kernel,
	linux-gpio, Sascha Hauer, stable

On Fri, Jul 17, 2015 at 9:38 AM, Uwe Kleine-König
<u.kleine-koenig@pengutronix.de> wrote:

> imx1_pinconf_set assumes that the array of pins in struct
> imx1_pinctrl_soc_info can be indexed by pin id to get the
> pinctrl_pin_desc for a pin. This used to be correct up to commit
> 607af165c047 which removed some entries from the array and so made it
> wrong to access the array by pin id.
>
> The result of this bug is a wrong pin name in the output for small pin
> ids and an oops for the bigger ones.
>
> This patch is the result of a discussion that includes patches by Markus
> Pargmann and Chris Ruehl.
>
> Fixes: 607af165c047 ("pinctrl: i.MX27: Remove nonexistent pad definitions")
> Cc: stable@vger.kernel.org
> Reported-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

Patch applied for fixes with Markus' review tag.

Yours,
Linus Walleij

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

* [PATCH] Subject: pinctrl: imx1-core: Fix debug output in .pin_config_set callback
@ 2015-07-17  7:58             ` Linus Walleij
  0 siblings, 0 replies; 12+ messages in thread
From: Linus Walleij @ 2015-07-17  7:58 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Jul 17, 2015 at 9:38 AM, Uwe Kleine-K?nig
<u.kleine-koenig@pengutronix.de> wrote:

> imx1_pinconf_set assumes that the array of pins in struct
> imx1_pinctrl_soc_info can be indexed by pin id to get the
> pinctrl_pin_desc for a pin. This used to be correct up to commit
> 607af165c047 which removed some entries from the array and so made it
> wrong to access the array by pin id.
>
> The result of this bug is a wrong pin name in the output for small pin
> ids and an oops for the bigger ones.
>
> This patch is the result of a discussion that includes patches by Markus
> Pargmann and Chris Ruehl.
>
> Fixes: 607af165c047 ("pinctrl: i.MX27: Remove nonexistent pad definitions")
> Cc: stable at vger.kernel.org
> Reported-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>

Patch applied for fixes with Markus' review tag.

Yours,
Linus Walleij

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

end of thread, other threads:[~2015-07-17  7:58 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-26  0:26 [Resend][PATCH] Pinctrl: imx1: fix wrong pin-name resolving Chris Ruehl
2015-07-16  8:52 ` Linus Walleij
2015-07-16 11:34   ` Uwe Kleine-König
2015-07-16 14:00     ` Linus Walleij
2015-07-17  1:33       ` Chris Ruehl
2015-07-17  7:38         ` [PATCH] Subject: pinctrl: imx1-core: Fix debug output in .pin_config_set callback Uwe Kleine-König
2015-07-17  7:38           ` Uwe Kleine-König
2015-07-17  7:56           ` Markus Pargmann
2015-07-17  7:56             ` Markus Pargmann
2015-07-17  7:58           ` Linus Walleij
2015-07-17  7:58             ` Linus Walleij
2015-07-17  7:58             ` Linus Walleij

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.