• Paul Mundt's avatar
    sh: pfc: Fix up init ordering mess. · 1e32dfe3
    Paul Mundt authored
    Commit ca5481c6 ("sh: pfc: Rudimentary
    pinctrl-backed GPIO support.") introduced a regression for platforms that
    were doing early GPIO API calls (from arch_initcall() or earlier),
    leading to a situation where our two-stage registration logic would trip
    itself up and we'd -ENODEV out of the pinctrl registration path,
    resulting in endless -EPROBE_DEFER errors. Further lack of checking any
    sort of errors from gpio_request() resulted in boot time warnings,
    tripping on the FLAG_REQUESTED test-and-set in gpio_ensure_requested().
    
    As it turns out there's no particular need to bother with the two-stage
    registration, as the platform bus is already available at the point that
    we have to start caring. As such, it's easiest to simply fold these
    together in to a single init path, the ordering of which is ensured
    through the platform's mux registration, as usual.
    Reported-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
    Reported-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
    1e32dfe3
pinctrl.c 12.1 KB