From: Tony Lindgren <tony@atomide.com>
To: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Simon Horman <horms@verge.net.au>,
Magnus Damm <magnus.damm@gmail.com>,
Rob Herring <robh+dt@kernel.org>,
Grant Likely <grant.likely@linaro.org>,
Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
Thierry Reding <thierry.reding@gmail.com>,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-sh@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] ARM: shmobile: r8a73a4: Move pfc node to work around probe ordering bug
Date: Mon, 9 Feb 2015 08:24:29 -0800 [thread overview]
Message-ID: <20150209162428.GG25235@atomide.com> (raw)
In-Reply-To: <1423254173-31852-1-git-send-email-geert+renesas@glider.be>
* Geert Uytterhoeven <geert+renesas@glider.be> [150206 12:26]:
> Currently the pin function controller (which is also a GPIO controller)
> is instantiated before the interrupt controllers due to the order in the
> DTS. At that time, the irq domains for the interrupt controllers
> referenced by its interrupts-extended property cannot be found yet:
>
> irq: no irq domain found for /interrupt-controller@e61c0000 !
>
> Nevertheless, the core OF probing code ignores this failure, besides a
> debug message that's not normally printed:
>
> not all legacy IRQ resources mapped for pfc
>
> and continues initialization of the device. Then, the sh-pfc driver
> cannot find any IRQ resources, and thinks no interrupts are available,
> causing gpio-keys to fail later:
>
> gpio-keys keyboard: Unable to claim irq 0; error -22
> gpio-keys: probe of keyboard failed with error -22
>
> Move the pin function controller node after the interrupt controller
> nodes it references to work around the bug in the core OF probing code.
>
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
> Notes:
> - It seems several people tried to solve this in the core OF probing
> code before, but the final solution never went in?
> - This can be reproduced on other SoCs (e.g. sh73a0 and r8a7740) by
> moving their pfc nodes before their interrupt controller nodes.
> - This patch is against my working tree, so it doesn't apply to
> Simon's repository, but you get the idea....
No issues with the patch, but here are few comments on the core
reasons (without looking at the code in this case) that might help
fix similar issues.
In all the cases I've seen these errors are caused by non-standard
custom initcall levels for drivers like i2c bus. The real solution
is to initialize drivers later with standard module_init, and stop
the race to the bottom with custom initcall levels.
If there is legacy board specific platofrm init code that needs
i2c gpios early, that code can probably be moved to initialize
later on.
Also, there should not be any need for custom driver initcall
levels from Linux generic framework point of view as for example
irqchip implementing drivers work just fine as a loadable module.
Regards,
Tony
next prev parent reply other threads:[~2015-02-09 16:24 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-06 20:22 [PATCH] ARM: shmobile: r8a73a4: Move pfc node to work around probe ordering bug Geert Uytterhoeven
2015-02-09 16:24 ` Tony Lindgren [this message]
2015-02-09 17:14 ` Geert Uytterhoeven
2015-02-09 18:29 ` Tony Lindgren
2015-02-10 10:19 ` Geert Uytterhoeven
2015-02-10 18:53 ` Laurent Pinchart
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=20150209162428.GG25235@atomide.com \
--to=tony@atomide.com \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=devicetree@vger.kernel.org \
--cc=geert+renesas@glider.be \
--cc=grant.likely@linaro.org \
--cc=horms@verge.net.au \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=magnus.damm@gmail.com \
--cc=robh+dt@kernel.org \
--cc=thierry.reding@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).