Patch "pinctrl: imx25: ensure that a pin with id i is at position i in the info array" has been added to the 4.2-stable tree
This is a note to let you know that I've just added the patch titled
pinctrl: imx25: ensure that a pin with id i is at position i in the info array
to the 4.2-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
pinctrl-imx25-ensure-that-a-pin-with-id-i-is-at-position-i-in-the-info-array.patch
and it can be found in the queue-4.2 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
9911a2d5e9d14e39692b751929a92cb5a1d9d0e0Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <[email protected]>
Date: Wed, 23 Sep 2015 16:35:09 +0200
Subject: pinctrl: imx25: ensure that a pin with id i is at position i in the info array
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <[email protected]>
commit 9911a2d5e9d14e39692b751929a92cb5a1d9d0e0 upstream.
The code in pinctrl-imx.c only works correctly if in the imx_pinctrl_soc_info passed to imx_pinctrl_probe we have:
info->pins[i].number = i conf_reg(info->pins[i]) = 4 * i
(which conf_reg(pin) being the offset of the pin's configuration register).
When the imx25 specific part was introduced in b4a87c9b966f ("pinctrl:
pinctrl-imx: add imx25 pinctrl driver") we had:
info->pins[i].number = i + 1 conf_reg(info->pins[i]) = 4 * i
. Commit 34027ca2bbc6 ("pinctrl: imx25: fix numbering for pins") tried to fix that but made the situation:
info->pins[i-1].number = i conf_reg(info->pins[i-1]) = 4 * i
which is hardly better but fixed the error seen back then.
So insert another reserved entry in the array to finally yield:
info->pins[i].number = i conf_reg(info->pins[i]) = 4 * i
--- drivers/pinctrl/freescale/pinctrl-imx25.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/pinctrl/freescale/pinctrl-imx25.c +3 -1
@@ -26,7 +26,8 @@#include "pinctrl-imx.h" enum imx25_pads { -MX25_PAD_RESERVE0 =1 , +MX25_PAD_RESERVE0 =0 , +MX25_PAD_RESERVE1 =1 ,MX25_PAD_A10 =2 ,MX25_PAD_A13 =3 ,MX25_PAD_A14 =4 ,
@@ -169,6 +170,7 @@ enum imx25_pads {/* Pad names for the pinmux subsystem */ static const struct pinctrl_pin_desc imx25_pinctrl_pads[] = {IMX_PINCTRL_PIN (MX25_PAD_RESERVE0 ), +IMX_PINCTRL_PIN (MX25_PAD_RESERVE1 ),IMX_PINCTRL_PIN (MX25_PAD_A10 ),IMX_PINCTRL_PIN (MX25_PAD_A13 ),IMX_PINCTRL_PIN (MX25_PAD_A14 ),
Patches currently in stable-queue which might be from [email protected] are
queue-4.2/pinctrl-imx25-ensure-that-a-pin-with-id-i-is-at-position-i-in-the-info-array.patch