• Andrew Jeffery's avatar
    pinctrl: aspeed: Fix spurious mux failures on the AST2500 · c1432423
    Andrew Jeffery authored
    Commit 674fa8da ("pinctrl: aspeed-g5: Delay acquisition of regmaps")
    was determined to be a partial fix to the problem of acquiring the LPC
    Host Controller and GFX regmaps: The AST2500 pin controller may need to
    fetch syscon regmaps during expression evaluation as well as when
    setting mux state. For example, this case is hit by attempting to export
    pins exposing the LPC Host Controller as GPIOs.
    
    An optional eval() hook is added to the Aspeed pinmux operation struct
    and called from aspeed_sig_expr_eval() if the pointer is set by the
    SoC-specific driver. This enables the AST2500 to perform the custom
    action of acquiring its regmap dependencies as required.
    
    John Wang tested the fix on an Inspur FP5280G2 machine (AST2500-based)
    where the issue was found, and I've booted the fix on Witherspoon
    (AST2500) and Palmetto (AST2400) machines, and poked at relevant pins
    under QEMU by forcing mux configurations via devmem before exporting
    GPIOs to exercise the driver.
    
    Fixes: 7d29ed88 ("pinctrl: aspeed: Read and write bits in LPC and GFX controllers")
    Fixes: 674fa8da ("pinctrl: aspeed-g5: Delay acquisition of regmaps")
    Reported-by: default avatarJohn Wang <wangzqbj@inspur.com>
    Tested-by: default avatarJohn Wang <wangzqbj@inspur.com>
    Signed-off-by: default avatarAndrew Jeffery <andrew@aj.id.au>
    
    Link: https://lore.kernel.org/r/20190829071738.2523-1-andrew@aj.id.auSigned-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    c1432423
Name
Last commit
Last update
..
actions Loading commit data...
aspeed Loading commit data...
bcm Loading commit data...
berlin Loading commit data...
cirrus Loading commit data...
freescale Loading commit data...
intel Loading commit data...
mediatek Loading commit data...
meson Loading commit data...
mvebu Loading commit data...
nomadik Loading commit data...
nuvoton Loading commit data...
pxa Loading commit data...
qcom Loading commit data...
samsung Loading commit data...
sh-pfc Loading commit data...
sirf Loading commit data...
spear Loading commit data...
sprd Loading commit data...
stm32 Loading commit data...
sunxi Loading commit data...
tegra Loading commit data...
ti Loading commit data...
uniphier Loading commit data...
vt8500 Loading commit data...
zte Loading commit data...
Kconfig Loading commit data...
Makefile Loading commit data...
core.c Loading commit data...
core.h Loading commit data...
devicetree.c Loading commit data...
devicetree.h Loading commit data...
pinconf-generic.c Loading commit data...
pinconf.c Loading commit data...
pinconf.h Loading commit data...
pinctrl-amd.c Loading commit data...
pinctrl-amd.h Loading commit data...
pinctrl-artpec6.c Loading commit data...
pinctrl-as3722.c Loading commit data...
pinctrl-at91-pio4.c Loading commit data...
pinctrl-at91.c Loading commit data...
pinctrl-at91.h Loading commit data...
pinctrl-axp209.c Loading commit data...
pinctrl-bm1880.c Loading commit data...
pinctrl-coh901.c Loading commit data...
pinctrl-coh901.h Loading commit data...
pinctrl-da850-pupd.c Loading commit data...
pinctrl-digicolor.c Loading commit data...
pinctrl-falcon.c Loading commit data...
pinctrl-gemini.c Loading commit data...
pinctrl-ingenic.c Loading commit data...
pinctrl-lantiq.c Loading commit data...
pinctrl-lantiq.h Loading commit data...
pinctrl-lpc18xx.c Loading commit data...
pinctrl-max77620.c Loading commit data...
pinctrl-mcp23s08.c Loading commit data...
pinctrl-ocelot.c Loading commit data...
pinctrl-oxnas.c Loading commit data...
pinctrl-palmas.c Loading commit data...
pinctrl-pic32.c Loading commit data...
pinctrl-pic32.h Loading commit data...
pinctrl-pistachio.c Loading commit data...
pinctrl-rk805.c Loading commit data...
pinctrl-rockchip.c Loading commit data...
pinctrl-rza1.c Loading commit data...
pinctrl-rza2.c Loading commit data...
pinctrl-rzn1.c Loading commit data...
pinctrl-single.c Loading commit data...
pinctrl-st.c Loading commit data...
pinctrl-stmfx.c Loading commit data...
pinctrl-sx150x.c Loading commit data...
pinctrl-tb10x.c Loading commit data...
pinctrl-u300.c Loading commit data...
pinctrl-utils.c Loading commit data...
pinctrl-utils.h Loading commit data...
pinctrl-xway.c Loading commit data...
pinctrl-zynq.c Loading commit data...
pinmux.c Loading commit data...
pinmux.h Loading commit data...