On Thu, 29 Aug 2019, at 16:47, Andrew Jeffery wrote: > Commit 674fa8daa8c9 ("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: 7d29ed88acbb ("pinctrl: aspeed: Read and write bits in LPC and > GFX controllers") > Fixes: 674fa8daa8c9 ("pinctrl: aspeed-g5: Delay acquisition of regmaps") > Reported-by: John Wang <wangzqbj@xxxxxxxxxx> > Tested-by: John Wang <wangzqbj@xxxxxxxxxx> > Signed-off-by: Andrew Jeffery <andrew@xxxxxxxx> > > --- > Hi Linus, > > The timing of merging the AST2600 (g6) driver and 674fa8daa8c9 ("pinctrl: > aspeed-g5: Delay acquisition of regmaps") caused a bit of a rough spot a > few weeks back. This fix doesn't cause any such disruption - I've > developed it on top of pinctrl/fixes and back-merged the result into > pinctrl/devel to test for build breakage (via CONFIG_COMPILE_TEST to > enable all of the g4, g5 and g6 drivers). All three ASPEED pinctrl > drivers built successfully, so it should be enough to simply take this > patch through pinctrl/fixes and leave pinctrl/devel as is for the 5.4 > merge window. > --- Ping? Was hoping to get this merged before 5.3 is tagged. Andrew