All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>,
	Wolfram Sang <wsa@the-dreams.de>
Cc: linux-renesas-soc@vger.kernel.org,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Kuninori Morimoto <kuninori.morimoto.gx@gmail.com>,
	Magnus Damm <magnus.damm@gmail.com>,
	Geert Uytterhoeven <geert+renesas@glider.be>,
	"linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>
Subject: Re: [RFC] pinctrl: sh-pfc: only use dummy states for non-DT platforms
Date: Mon, 7 Mar 2016 23:02:54 +0300	[thread overview]
Message-ID: <56DDDE6E.6090908@cogentembedded.com> (raw)
In-Reply-To: <CAMuHMdXPH0+YE=cRk7pjvoVEYtEGNcb_83-z5taXSLHRhtgMQA@mail.gmail.com>

Hello.

On 03/07/2016 10:56 PM, Geert Uytterhoeven wrote:

>> From: Wolfram Sang <wsa+renesas@sang-engineering.com>
>>
>> If pinctrl_provide_dummies() is used unconditionally, then the dummy
>> state will be used even on DT platforms when the "init" state was
>> intentionally left out. Instead of "default", the dummy "init" state
>> will then be used during probe. Thus, when probing an I2C controller on
>> cold boot, communication triggered by bus notifiers broke because the
>> pins were not initialized.
>>
>> Do it like OMAP2: use the dummy state only for non-DT platforms.
>
> Thanks!
>
> Interestingly, Sergei submitted a similar patch a few days ago
> "pinctrl: sh-pfc: core: only call pinctrl_provide_dummies"
> (https://patchwork.ozlabs.org/patch/592245/)

    I shot first! :-)

>> Reported-by: Geert Uytterhoeven <geert+renesas@glider.be>
>> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
>> ---
>>
>> Geert recently pointed out the problem, that the IRQ2 fixup for the
>> DA9xxx PMICs failed on Lager on cold boot. I could verify this iff IIC3
>> was used and not I2C3. IIC3 is the default, however I mostly used I2C3
>> recently, because it has the slave capabilities.
>>
>> The original pinctrl_provide_dummies() is there since the beginning of the
>> file, so in order to avoid regressions, the below solution looks plausible to
>> me. I do not have much experience with hardware older than Gen2, though, so
>> comments are much appreciated!
>>
>>
>>   drivers/pinctrl/sh-pfc/core.c | 4 +++-
>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/pinctrl/sh-pfc/core.c b/drivers/pinctrl/sh-pfc/core.c
>> index 0c2d14c504aa1d..db53d7bbc16e18 100644
>> --- a/drivers/pinctrl/sh-pfc/core.c
>> +++ b/drivers/pinctrl/sh-pfc/core.c
>> @@ -545,7 +545,9 @@ static int sh_pfc_probe(struct platform_device *pdev)
>>                          return ret;
>>          }
>>
>> -       pinctrl_provide_dummies();
>> +       /* Enable dummy states for those platforms without pinctrl support */
>> +       if (!of_have_populated_dt())

    I'd considered this condition -- it won't fly on SH where CONFIG_OF=n, the 
kernel just won't build IIUC...

>> +               pinctrl_provide_dummies();
>>
>>          ret = sh_pfc_init_ranges(pfc);
>>          if (ret < 0)
>> --
>> 2.7.0
>
> Gr{oetje,eeting}s,
>
>                          Geert

MBR, Sergei


  reply	other threads:[~2016-03-07 20:02 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-07 18:40 [RFC] pinctrl: sh-pfc: only use dummy states for non-DT platforms Wolfram Sang
2016-03-07 19:56 ` Geert Uytterhoeven
2016-03-07 20:02   ` Sergei Shtylyov [this message]
2016-03-07 20:29     ` Geert Uytterhoeven
2016-03-07 20:34       ` Sergei Shtylyov
2016-03-07 21:00         ` Geert Uytterhoeven
2016-03-07 21:19           ` Sergei Shtylyov
2016-03-08  8:15             ` Geert Uytterhoeven
2016-03-07 22:21           ` Wolfram Sang
2016-03-09 10:30             ` Linus Walleij
2016-03-09  9:58           ` Wolfram Sang
2016-03-09 10:32             ` Linus Walleij
2016-03-09 12:51               ` Sergei Shtylyov
2016-03-09 15:37                 ` Wolfram Sang
2016-03-09 13:17               ` Geert Uytterhoeven
2016-03-29  5:48           ` Shawn Guo
2016-03-15  8:29 ` Linus Walleij
2016-03-15  9:08   ` Geert Uytterhoeven
2016-03-15 12:31   ` Sergei Shtylyov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56DDDE6E.6090908@cogentembedded.com \
    --to=sergei.shtylyov@cogentembedded.com \
    --cc=geert+renesas@glider.be \
    --cc=geert@linux-m68k.org \
    --cc=kuninori.morimoto.gx@gmail.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=wsa@the-dreams.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.