linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] gpio: select IRQ_DOMAIN_HIERARCHY fixing curcular Kconfig dependency
@ 2017-07-11 23:11 Masahiro Yamada
  2017-07-11 23:11 ` [PATCH 1/2] pinctrl: stm32: select IRQ_DOMAIN_HIERARCHY instead of depends on Masahiro Yamada
  2017-07-11 23:11 ` [PATCH 2/2] gpio: xgene-sb: select IRQ_DOMAIN_HIERARCHY Masahiro Yamada
  0 siblings, 2 replies; 6+ messages in thread
From: Masahiro Yamada @ 2017-07-11 23:11 UTC (permalink / raw)
  To: linux-gpio
  Cc: Masahiro Yamada, Arnd Bergmann, Alexandre Torgue, Linus Walleij,
	linux-kernel, Maxime Coquelin, linux-arm-kernel

1/2 touches pinctrl driver, but
I want both patches in GPIO tree
because 1/2 is a prerequisite for 2/2.

Otherwise, Kconfig reports recursive dependency.

I noticed this problem when I added "select IRQ_DOMAIN_HIERARCHY"
to my GPIO driver, which I will submit later.

Please apply 1/2 to GPIO tree, not pinctrl tree.



Masahiro Yamada (2):
  pinctrl: stm32: select IRQ_DOMAIN_HIERARCHY instead of depends on
  gpio: xgene-sb: select IRQ_DOMAIN_HIERARCHY

 drivers/gpio/Kconfig          | 1 +
 drivers/pinctrl/stm32/Kconfig | 9 +++++----
 2 files changed, 6 insertions(+), 4 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/2] pinctrl: stm32: select IRQ_DOMAIN_HIERARCHY instead of depends on
  2017-07-11 23:11 [PATCH 0/2] gpio: select IRQ_DOMAIN_HIERARCHY fixing curcular Kconfig dependency Masahiro Yamada
@ 2017-07-11 23:11 ` Masahiro Yamada
  2017-07-12  8:09   ` Alexandre Torgue
  2017-08-01  8:05   ` Linus Walleij
  2017-07-11 23:11 ` [PATCH 2/2] gpio: xgene-sb: select IRQ_DOMAIN_HIERARCHY Masahiro Yamada
  1 sibling, 2 replies; 6+ messages in thread
From: Masahiro Yamada @ 2017-07-11 23:11 UTC (permalink / raw)
  To: linux-gpio
  Cc: Masahiro Yamada, Arnd Bergmann, Alexandre Torgue, Linus Walleij,
	linux-kernel, Maxime Coquelin, linux-arm-kernel

Drivers that need IRQ_DOMAIN_HIERARCHY should "select" it, but
drivers/pinctrl/stm32/Kconfig is the only exception that uses
"depends on" syntax.  This prevents GPIO drivers from select'ing
IRQ_DOMAIN_HIERARCHY.

For example, if I add "select IRQ_DOMAIN_HIERARCHY" to GPIO_XGENE_SB,
I get the following recursive dependency error.

drivers/gpio/Kconfig:13:error: recursive dependency detected!
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
drivers/gpio/Kconfig:13:	symbol GPIOLIB is selected by PINCTRL_STM32
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
drivers/pinctrl/stm32/Kconfig:3:	symbol PINCTRL_STM32 is selected by PINCTRL_STM32F429
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
drivers/pinctrl/stm32/Kconfig:11:	symbol PINCTRL_STM32F429 depends on IRQ_DOMAIN_HIERARCHY
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
kernel/irq/Kconfig:67:	symbol IRQ_DOMAIN_HIERARCHY is selected by GPIO_XGENE_SB
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
drivers/gpio/Kconfig:502:	symbol GPIO_XGENE_SB depends on GPIOLIB

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

 drivers/pinctrl/stm32/Kconfig | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/pinctrl/stm32/Kconfig b/drivers/pinctrl/stm32/Kconfig
index 3b8026fca057..7e1fe39a56a5 100644
--- a/drivers/pinctrl/stm32/Kconfig
+++ b/drivers/pinctrl/stm32/Kconfig
@@ -6,29 +6,30 @@ config PINCTRL_STM32
 	select PINMUX
 	select GENERIC_PINCONF
 	select GPIOLIB
+	select IRQ_DOMAIN_HIERARCHY
 	select MFD_SYSCON
 
 config PINCTRL_STM32F429
 	bool "STMicroelectronics STM32F429 pin control" if COMPILE_TEST && !MACH_STM32F429
-	depends on OF && IRQ_DOMAIN_HIERARCHY
+	depends on OF
 	default MACH_STM32F429
 	select PINCTRL_STM32
 
 config PINCTRL_STM32F469
 	bool "STMicroelectronics STM32F469 pin control" if COMPILE_TEST && !MACH_STM32F469
-	depends on OF && IRQ_DOMAIN_HIERARCHY
+	depends on OF
 	default MACH_STM32F469
 	select PINCTRL_STM32
 
 config PINCTRL_STM32F746
 	bool "STMicroelectronics STM32F746 pin control" if COMPILE_TEST && !MACH_STM32F746
-	depends on OF && IRQ_DOMAIN_HIERARCHY
+	depends on OF
 	default MACH_STM32F746
 	select PINCTRL_STM32
 
 config PINCTRL_STM32H743
 	bool "STMicroelectronics STM32H743 pin control" if COMPILE_TEST && !MACH_STM32H743
-	depends on OF && IRQ_DOMAIN_HIERARCHY
+	depends on OF
 	default MACH_STM32H743
 	select PINCTRL_STM32
 endif
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] gpio: xgene-sb: select IRQ_DOMAIN_HIERARCHY
  2017-07-11 23:11 [PATCH 0/2] gpio: select IRQ_DOMAIN_HIERARCHY fixing curcular Kconfig dependency Masahiro Yamada
  2017-07-11 23:11 ` [PATCH 1/2] pinctrl: stm32: select IRQ_DOMAIN_HIERARCHY instead of depends on Masahiro Yamada
@ 2017-07-11 23:11 ` Masahiro Yamada
  2017-08-01  8:06   ` Linus Walleij
  1 sibling, 1 reply; 6+ messages in thread
From: Masahiro Yamada @ 2017-07-11 23:11 UTC (permalink / raw)
  To: linux-gpio; +Cc: Masahiro Yamada, Linus Walleij, linux-kernel

This driver calls irq_domain_hierarchy() and irq_chip_*_parent().
They are available only when CONFIG_IRQ_DOMAIN_HIERARCHY is enabled.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

 drivers/gpio/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index f235eae04c16..461d6fc3688b 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -504,6 +504,7 @@ config GPIO_XGENE_SB
 	depends on ARCH_XGENE && OF_GPIO
 	select GPIO_GENERIC
 	select GPIOLIB_IRQCHIP
+	select IRQ_DOMAIN_HIERARCHY
 	help
 	  This driver supports the GPIO block within the APM X-Gene
 	  Standby Domain. Say yes here to enable the GPIO functionality.
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] pinctrl: stm32: select IRQ_DOMAIN_HIERARCHY instead of depends on
  2017-07-11 23:11 ` [PATCH 1/2] pinctrl: stm32: select IRQ_DOMAIN_HIERARCHY instead of depends on Masahiro Yamada
@ 2017-07-12  8:09   ` Alexandre Torgue
  2017-08-01  8:05   ` Linus Walleij
  1 sibling, 0 replies; 6+ messages in thread
From: Alexandre Torgue @ 2017-07-12  8:09 UTC (permalink / raw)
  To: Masahiro Yamada, linux-gpio
  Cc: Arnd Bergmann, Linus Walleij, linux-kernel, Maxime Coquelin,
	linux-arm-kernel

Hi,

On 07/12/2017 01:11 AM, Masahiro Yamada wrote:
> Drivers that need IRQ_DOMAIN_HIERARCHY should "select" it, but
> drivers/pinctrl/stm32/Kconfig is the only exception that uses
> "depends on" syntax.  This prevents GPIO drivers from select'ing
> IRQ_DOMAIN_HIERARCHY.
> 
> For example, if I add "select IRQ_DOMAIN_HIERARCHY" to GPIO_XGENE_SB,
> I get the following recursive dependency error.
> 
> drivers/gpio/Kconfig:13:error: recursive dependency detected!
> For a resolution refer to Documentation/kbuild/kconfig-language.txt
> subsection "Kconfig recursive dependency limitations"
> drivers/gpio/Kconfig:13:	symbol GPIOLIB is selected by PINCTRL_STM32
> For a resolution refer to Documentation/kbuild/kconfig-language.txt
> subsection "Kconfig recursive dependency limitations"
> drivers/pinctrl/stm32/Kconfig:3:	symbol PINCTRL_STM32 is selected by PINCTRL_STM32F429
> For a resolution refer to Documentation/kbuild/kconfig-language.txt
> subsection "Kconfig recursive dependency limitations"
> drivers/pinctrl/stm32/Kconfig:11:	symbol PINCTRL_STM32F429 depends on IRQ_DOMAIN_HIERARCHY
> For a resolution refer to Documentation/kbuild/kconfig-language.txt
> subsection "Kconfig recursive dependency limitations"
> kernel/irq/Kconfig:67:	symbol IRQ_DOMAIN_HIERARCHY is selected by GPIO_XGENE_SB
> For a resolution refer to Documentation/kbuild/kconfig-language.txt
> subsection "Kconfig recursive dependency limitations"
> drivers/gpio/Kconfig:502:	symbol GPIO_XGENE_SB depends on GPIOLIB
> 
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com
> ---

Thanks for the patch.

Tested-by: Alexandre TORGUE <alexandre.torgue@st.com>

regards
Alex


> 
>   drivers/pinctrl/stm32/Kconfig | 9 +++++----
>   1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/pinctrl/stm32/Kconfig b/drivers/pinctrl/stm32/Kconfig
> index 3b8026fca057..7e1fe39a56a5 100644
> --- a/drivers/pinctrl/stm32/Kconfig
> +++ b/drivers/pinctrl/stm32/Kconfig
> @@ -6,29 +6,30 @@ config PINCTRL_STM32
>   	select PINMUX
>   	select GENERIC_PINCONF
>   	select GPIOLIB
> +	select IRQ_DOMAIN_HIERARCHY
>   	select MFD_SYSCON
>   
>   config PINCTRL_STM32F429
>   	bool "STMicroelectronics STM32F429 pin control" if COMPILE_TEST && !MACH_STM32F429
> -	depends on OF && IRQ_DOMAIN_HIERARCHY
> +	depends on OF
>   	default MACH_STM32F429
>   	select PINCTRL_STM32
>   
>   config PINCTRL_STM32F469
>   	bool "STMicroelectronics STM32F469 pin control" if COMPILE_TEST && !MACH_STM32F469
> -	depends on OF && IRQ_DOMAIN_HIERARCHY
> +	depends on OF
>   	default MACH_STM32F469
>   	select PINCTRL_STM32
>   
>   config PINCTRL_STM32F746
>   	bool "STMicroelectronics STM32F746 pin control" if COMPILE_TEST && !MACH_STM32F746
> -	depends on OF && IRQ_DOMAIN_HIERARCHY
> +	depends on OF
>   	default MACH_STM32F746
>   	select PINCTRL_STM32
>   
>   config PINCTRL_STM32H743
>   	bool "STMicroelectronics STM32H743 pin control" if COMPILE_TEST && !MACH_STM32H743
> -	depends on OF && IRQ_DOMAIN_HIERARCHY
> +	depends on OF
>   	default MACH_STM32H743
>   	select PINCTRL_STM32
>   endif
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] pinctrl: stm32: select IRQ_DOMAIN_HIERARCHY instead of depends on
  2017-07-11 23:11 ` [PATCH 1/2] pinctrl: stm32: select IRQ_DOMAIN_HIERARCHY instead of depends on Masahiro Yamada
  2017-07-12  8:09   ` Alexandre Torgue
@ 2017-08-01  8:05   ` Linus Walleij
  1 sibling, 0 replies; 6+ messages in thread
From: Linus Walleij @ 2017-08-01  8:05 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: linux-gpio, Arnd Bergmann, Alexandre Torgue, linux-kernel,
	Maxime Coquelin, linux-arm-kernel

On Wed, Jul 12, 2017 at 1:11 AM, Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:

> Drivers that need IRQ_DOMAIN_HIERARCHY should "select" it, but
> drivers/pinctrl/stm32/Kconfig is the only exception that uses
> "depends on" syntax.  This prevents GPIO drivers from select'ing
> IRQ_DOMAIN_HIERARCHY.
>
> For example, if I add "select IRQ_DOMAIN_HIERARCHY" to GPIO_XGENE_SB,
> I get the following recursive dependency error.
>
> drivers/gpio/Kconfig:13:error: recursive dependency detected!
> For a resolution refer to Documentation/kbuild/kconfig-language.txt
> subsection "Kconfig recursive dependency limitations"
> drivers/gpio/Kconfig:13:        symbol GPIOLIB is selected by PINCTRL_STM32
> For a resolution refer to Documentation/kbuild/kconfig-language.txt
> subsection "Kconfig recursive dependency limitations"
> drivers/pinctrl/stm32/Kconfig:3:        symbol PINCTRL_STM32 is selected by PINCTRL_STM32F429
> For a resolution refer to Documentation/kbuild/kconfig-language.txt
> subsection "Kconfig recursive dependency limitations"
> drivers/pinctrl/stm32/Kconfig:11:       symbol PINCTRL_STM32F429 depends on IRQ_DOMAIN_HIERARCHY
> For a resolution refer to Documentation/kbuild/kconfig-language.txt
> subsection "Kconfig recursive dependency limitations"
> kernel/irq/Kconfig:67:  symbol IRQ_DOMAIN_HIERARCHY is selected by GPIO_XGENE_SB
> For a resolution refer to Documentation/kbuild/kconfig-language.txt
> subsection "Kconfig recursive dependency limitations"
> drivers/gpio/Kconfig:502:       symbol GPIO_XGENE_SB depends on GPIOLIB
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

Patch applied for GPIO fixes with Alexandre's test tag.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] gpio: xgene-sb: select IRQ_DOMAIN_HIERARCHY
  2017-07-11 23:11 ` [PATCH 2/2] gpio: xgene-sb: select IRQ_DOMAIN_HIERARCHY Masahiro Yamada
@ 2017-08-01  8:06   ` Linus Walleij
  0 siblings, 0 replies; 6+ messages in thread
From: Linus Walleij @ 2017-08-01  8:06 UTC (permalink / raw)
  To: Masahiro Yamada; +Cc: linux-gpio, linux-kernel

On Wed, Jul 12, 2017 at 1:11 AM, Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:

> This driver calls irq_domain_hierarchy() and irq_chip_*_parent().
> They are available only when CONFIG_IRQ_DOMAIN_HIERARCHY is enabled.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

Patch applied for GPIO fixes on top of 1/2.

Thanks for the thorough fix, very impressed with this good
work.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-08-01  8:06 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-11 23:11 [PATCH 0/2] gpio: select IRQ_DOMAIN_HIERARCHY fixing curcular Kconfig dependency Masahiro Yamada
2017-07-11 23:11 ` [PATCH 1/2] pinctrl: stm32: select IRQ_DOMAIN_HIERARCHY instead of depends on Masahiro Yamada
2017-07-12  8:09   ` Alexandre Torgue
2017-08-01  8:05   ` Linus Walleij
2017-07-11 23:11 ` [PATCH 2/2] gpio: xgene-sb: select IRQ_DOMAIN_HIERARCHY Masahiro Yamada
2017-08-01  8:06   ` Linus Walleij

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).