[lkml]   [2017]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 3/8] gpio: zynq: Shift zynq_gpio_init() to subsys_initcall level
On 14.8.2017 15:55, Linus Walleij wrote:
> On Mon, Aug 7, 2017 at 1:01 PM, Michal Simek <> wrote:
>> From: Nava kishore Manne <>
>> In general situation on-SoC GPIO controller drivers should be probed
>> after pinctrl/pinmux controller driver, because on-SoC GPIOs utilize a
>> pin/pad as a resource provided and controlled by pinctrl subsystem.
>> GPIO must come after pinctrl as gpios may need to mux pins....etc
>> Looking at Xilinx SoC series pinctrl drivers, zynq*_pinctrl_init()
>> functions are called at arch_initcall init levels,
>> so the change of initcall level for gpio-zynq driver from
>> postcore_initcall to subsys_initcall level is sufficient. Also note
>> that the most of GPIO controller drivers settled at subsys_initcall
>> level.
>> If pinctrl subsystem manages pads with GPIO functions, the change is
>> needed to avoid unwanted driver probe deferrals during kernel boot.
>> Signed-off-by: Nava kishore Manne <>
>> Signed-off-by: Michal Simek <>
> Can't you just move it all the way to device_initcall and
> simply use the standard module init macros?
> builtin_platform_driver(), module_platform_driver()?

When I grep the kernel I see this

[linux](master)$ git grep "^core_initcall" drivers/gpio/ | wc -l
[linux](master)$ git grep "^postcore_initcall" drivers/gpio/ | wc -l
[linux](master)$ git grep "^arch_initcall" drivers/gpio/ | wc -l
[linux](master)$ git grep "^subsys_initcall" drivers/gpio/ | wc -l
[linux](master)$ git grep "^device_initcall" drivers/gpio/ | wc -l

[linux](master)$ git grep "^core_initcall" drivers/pinctrl/ | wc -l
[linux](master)$ git grep "^postcore_initcall" drivers/pinctrl/ | wc -l
[linux](master)$ git grep "^arch_initcall" drivers/pinctrl/ | wc -l
[linux](master)$ git grep "^subsys_initcall" drivers/pinctrl/ | wc -l
[linux](master)$ git grep "^device_initcall" drivers/pinctrl/ | wc -l

Majority of gpio drivers are in subsys_initcall and pinctrl in
arch_initcall. It doesn't mean that I have strong opinion about doing
this change. I have also read internal tracking system and it is not
fully clear if this is fixing any issue rather than removing on
deferring probe message.

Nava: Do you have any comment?


 \ /
  Last update: 2017-08-14 16:16    [W:0.098 / U:1.072 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site