diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2015-09-23 16:35:09 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-10-27 09:51:59 +0900 |
commit | e44ddb67769172af7ef7d2b37e6a65df56317698 (patch) | |
tree | 5bddb71ef33d049b6b36303c62a1e8ef2155dd5f /drivers/oprofile | |
parent | 98197d3de58a62785be3e421864d6145955f197d (diff) | |
download | linux-stable-e44ddb67769172af7ef7d2b37e6a65df56317698.tar.gz linux-stable-e44ddb67769172af7ef7d2b37e6a65df56317698.tar.bz2 linux-stable-e44ddb67769172af7ef7d2b37e6a65df56317698.zip |
pinctrl: imx25: ensure that a pin with id i is at position i in the info array
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
Fixes: 34027ca2bbc6 ("pinctrl: imx25: fix numbering for pins")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/oprofile')
0 files changed, 0 insertions, 0 deletions