Re: [PATCH fixes v3] pinctrl: Really force states during suspend/resume

From: Marc Zyngier
Date: Mon Feb 19 2018 - 14:11:36 EST


On Mon, 19 Feb 2018 18:03:27 +0000,
Florian Fainelli wrote:
>
> On February 19, 2018 9:25:26 AM PST, Marc Zyngier <maz@xxxxxxxxxxxxxxx> wrote:
> >Hi all,
> >
> >On 2017-03-01 18:32, Florian Fainelli wrote:
> >> In case a platform only defaults a "default" set of pins, but not a
> >> "sleep" set of pins, and this particular platform suspends and
> >> resumes
> >> in a way that the pin states are not preserved by the hardware, when
> >> we
> >> resume, we would call pinctrl_single_resume() ->
> >> pinctrl_force_default()
> >> -> pinctrl_select_state() and the first thing we do is check that the
> >> pins state is the same as before, and do nothing.
> >>
> >> In order to fix this, decouple the actual state change from
> >> pinctrl_select_state() and move it pinctrl_commit_state(), while
> >> keeping
> >> the p->state == state check in pinctrl_select_state() not to change
> >> the
> >> caller assumptions. pinctrl_force_sleep() and pinctrl_force_default()
> >> are updated to bypass the state check by calling
> >> pinctrl_commit_state().
> >>
> >> Fixes: 6e5e959dde0d ("pinctrl: API changes to support multiple states
> >> per device")
> >> Signed-off-by: Florian Fainelli <f.fainelli@xxxxxxxxx>

[back to using my ARM address]

Hey Florian,

> Hey Marc,
>
> >
> >I don't often go back over a year worth of LKML, but since this patch
> >recently landed in mainline as 981ed1bfbc6c, I though I'd use it as an
> >anchor to report the following:
> >
> >It turns out that this patch completely breaks resume on my
> >rk3399-based Chromebook. Most things are timing out, the box is
> >unusable. And since this is my everyday tool, I'm mildly
> >grumpy. Please don't break my toys! ;-) Reverting this patch on top
> >of 4.16-rc2 makes me productive again...
> >
> >More seriously, I have no idea what's wrong here. It could be a
> >SoC-related issue, hence Heiko on Cc. I'm happy to test any idea you
> >could have.
>
> Can you indicate which DTS file is used for your Chromebook model?

Sure. That's arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts, with a
couple of fixes on top (some clocks and big-little idiosyncrasies).

> Sorry about the breakage.

No worries.

M.

--
Jazz is not dead, it just smell funny.