Thread (11 messages) 11 messages, 6 authors, 2017-03-15

[PATCH -next v2] pinctrl: samsung: Fix return value check in samsung_pinctrl_get_soc_data()

From: Tomasz Figa <hidden>
Date: 2017-02-21 14:14:39
Also in: linux-gpio, linux-samsung-soc

2017-02-21 22:49 GMT+09:00 Marek Szyprowski [off-list ref]:
Hi All,

On 2017-02-13 15:49, Linus Walleij wrote:
quoted
On Sun, Feb 5, 2017 at 4:58 PM, Wei Yongjun [off-list ref] wrote:
quoted
From: Wei Yongjun <redacted>

In case of error, the function devm_ioremap() returns NULL pointer not
ERR_PTR(). Fix by using devm_ioremap_resource instead of devm_ioremap.

Fixes: 8b1bd11c1f8f ("pinctrl: samsung: Add the support the multiple
IORESOURCE_MEM for one pin-bank")
Signed-off-by: Wei Yongjun <redacted>
---
v1 -> v2: use devm_ioremap_resource instead of devm_ioremap
Patch applied with Krzysztof's ACK.

Sadly this patch breaks support for IMEM pinctrl block on Exynos5433/TM2
and it took us some time to find the source of the problem.

devm_ioremap_resource() is not functionally a full equivalent of
devm_ioremap(). The problem here is that registers for IMEM and ALIVE
pin controllers are shared and both devices have <0x11090000 0x1000>
range in their reg property. devm_ioremap_resource() maps given
resource exclusively for the device, while devm_ioremap() allows
non-exclusive mappings.

This patch has to be reverted asap.
Are IMEM and ALIVE pincontrollers really separate then? Typically one
models the hardware as different blocks when the registers are
separate and that's also why devm_ioremap_resource() behaves like it
does. Maybe in this case there should be only one pin controller
defined instead?

In any case, I agree that the patch should be reverted for now.

Best regards,
Tomasz
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help