Skip to contentSkip to conversation

powerpc: make Freescale QE support a selectable Kconfig option

PATCH Superseded Timur Tabi 3 participants 15 messages Oct 2, 2008 – Oct 3, 2008

Subsystems (2)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Timur Tabi

author
#0 lore raw

PATCH 1/1 powerpc: make Freescale QE support a selectable Kconfig option

Modify the Kconfig so that Freescale QUICC Engine (QE) support is a selectable option, thereby allowing users to compile kernels without any QE support.

The drawback is that QE support is now disabled by default on platforms that have a QE, and so a defconfig is needed to enable QE and QE devices (like UCC GETH). Fortunately, all the current relevant defconfigs do that already.

---

This patch should be applied to Kumar's branch for 2.6.28 patches.

 arch/powerpc/platforms/83xx/Kconfig |    4 ----
 arch/powerpc/platforms/Kconfig      |    3 ++-
 2 files changed, 2 insertions(+), 5 deletions(-)
arch/powerpc/platforms/83xx/Kconfig +0 -4
index 6159c5d..4a6cc78 100644
@@ -19,7 +19,6 @@ config MPC831x_RDB
 config MPC832x_MDS
 	bool "Freescale MPC832x MDS"
 	select DEFAULT_UIMAGE
-	select QUICC_ENGINE
 	select PPC_MPC832x
 	help
 	  This option enables support for the MPC832x MDS evaluation board.
@@ -27,7 +26,6 @@ config MPC832x_MDS
 config MPC832x_RDB
 	bool "Freescale MPC832x RDB"
 	select DEFAULT_UIMAGE
-	select QUICC_ENGINE
 	select PPC_MPC832x
 	help
 	  This option enables support for the MPC8323 RDB board.
@@ -57,14 +55,12 @@ config MPC834x_ITX
 config MPC836x_MDS
 	bool "Freescale MPC836x MDS"
 	select DEFAULT_UIMAGE
-	select QUICC_ENGINE
 	help
 	  This option enables support for the MPC836x MDS Processor Board.
 
 config MPC836x_RDK
 	bool "Freescale/Logic MPC836x RDK"
 	select DEFAULT_UIMAGE
-	select QUICC_ENGINE
 	select QE_GPIO
 	select FSL_GTM
 	select FSL_LBC
arch/powerpc/platforms/Kconfig +2 -1
index 9578c45..6cf517f 100644
@@ -239,7 +239,8 @@ config TAU_AVERAGE
 	  If in doubt, say N here.
 
 config QUICC_ENGINE
-	bool
+	bool "Freescale QUICC Engine (QE) Support"
+	depends on FSL_SOC
 	select PPC_LIB_RHEAP
 	select CRC32
 	help
Signature · 1 line
1.5.5
#1 lore raw
Quoted 7 lines · Timur Tabi

Modify the Kconfig so that Freescale QUICC Engine (QE) support is a selectable option, thereby allowing users to compile kernels without any QE support.

The drawback is that QE support is now disabled by default on platforms that have a QE, and so a defconfig is needed to enable QE and QE devices (like UCC GETH). Fortunately, all the current relevant defconfigs do that already.

Quoted 8 lines

---

This patch should be applied to Kumar's branch for 2.6.28 patches.

arch/powerpc/platforms/83xx/Kconfig |    4 ----
arch/powerpc/platforms/Kconfig      |    3 ++-
2 files changed, 2 insertions(+), 5 deletions(-)

What about the 85xx/Kconfig users?

- k

#2 lore raw
In reply to Timur Tabi
Quoted 9 lines · Timur Tabi

Modify the Kconfig so that Freescale QUICC Engine (QE) support is a selectable option, thereby allowing users to compile kernels without any QE support.

The drawback is that QE support is now disabled by default on platforms that have a QE, and so a defconfig is needed to enable QE and QE devices (like UCC GETH). Fortunately, all the current relevant defconfigs do that already.

---

[...]

arch/powerpc/platforms/83xx/Kconfig config MPC834x_ITX · line 64

Quoted 5 lines

config MPC836x_RDK

arch/powerpc/platforms/83xx/Kconfig +0 -1
 	bool "Freescale/Logic MPC836x RDK"
 	select DEFAULT_UIMAGE
-	select QUICC_ENGINE
 	select QE_GPIO

IIRC selects do not honor any dependencies, i.e. you should delete the QE_GPIO too.

Quoted 18 lines
arch/powerpc/platforms/83xx/Kconfig +0 -0
 	select FSL_GTM
 	select FSL_LBC
arch/powerpc/platforms/Kconfig +2 -1
index 9578c45..6cf517f 100644
@@ -239,7 +239,8 @@ config TAU_AVERAGE
 	  If in doubt, say N here.
 
 config QUICC_ENGINE
-	bool
+	bool "Freescale QUICC Engine (QE) Support"
+	depends on FSL_SOC
 	select PPC_LIB_RHEAP
 	select CRC32
 	help
Signature · 1 line
1.5.5
Signature · 3 lines
Anton Vorontsov
email: [email protected]
irc://irc.freenode.net/bd2
#3 lore raw
Quoted 12 lines · Anton Vorontsov
Quoted 9 lines · Timur Tabi

Modify the Kconfig so that Freescale QUICC Engine (QE) support is a selectable option, thereby allowing users to compile kernels without any QE support.

The drawback is that QE support is now disabled by default on platforms that have a QE, and so a defconfig is needed to enable QE and QE devices (like UCC GETH). Fortunately, all the current relevant defconfigs do that already.

---

[...]

Quoted 8 lines
Quoted 5 lines

config MPC836x_RDK
bool "Freescale/Logic MPC836x RDK"
select DEFAULT_UIMAGE

(quoted diff) +0 -1
-	select QUICC_ENGINE

select QE_GPIO

IIRC selects do not honor any dependencies, i.e. you should delete the QE_GPIO too.

Is QE_GPIO need by the board? or you just enabled it to have it?

- k

#4 lore raw
Quoted 29 lines · Kumar Gala
Quoted 17 lines · Anton Vorontsov
Quoted 14 lines · Timur Tabi

Modify the Kconfig so that Freescale QUICC Engine (QE) support is a selectable
option, thereby allowing users to compile kernels without any QE support.

The drawback is that QE support is now disabled by default on platforms that
have a QE, and so a defconfig is needed to enable QE and QE devices (like
UCC GETH). Fortunately, all the current relevant defconfigs do that already.

---

[...]

Quoted 8 lines
Quoted 5 lines

config MPC836x_RDK
bool "Freescale/Logic MPC836x RDK"
select DEFAULT_UIMAGE

(quoted diff) +0 -1
-	select QUICC_ENGINE

select QE_GPIO

IIRC selects do not honor any dependencies, i.e. you should delete the QE_GPIO too.

Quoted 1 line

Is QE_GPIO need by the board? or you just enabled it to have it?

Well... This select is a relic from the time when we were discussing how to register QE GPIOs: using board files or using a dedicated arch_initcall. We seemed to agree on arch_initcall, but in the end you applied 'board file' approach. ;-)

http://www.mail-archive.com/[email protected]/msg19147.html

Later I sent you an update that eliminated the need of the QE_GPIO select:

http://www.mail-archive.com/[email protected]/msg19147.html

But nobody recalled to remove the 'select QE_GPIO' after that...

Signature · 3 lines
Anton Vorontsov
email: [email protected]
irc://irc.freenode.net/bd2
#5 lore raw
Quoted 30 lines · Anton Vorontsov
Quoted 29 lines · Kumar Gala
Quoted 25 lines · Anton Vorontsov
Quoted 14 lines · Timur Tabi

Modify the Kconfig so that Freescale QUICC Engine (QE) support is a selectable
option, thereby allowing users to compile kernels without any QE support.

The drawback is that QE support is now disabled by default on platforms that
have a QE, and so a defconfig is needed to enable QE and QE devices (like
UCC GETH). Fortunately, all the current relevant defconfigs do that already.

---

[...]

Quoted 5 lines

config MPC836x_RDK
bool "Freescale/Logic MPC836x RDK"
select DEFAULT_UIMAGE

(quoted diff) +0 -1
-	select QUICC_ENGINE

select QE_GPIO

IIRC selects do not honor any dependencies, i.e. you should delete the QE_GPIO too.

Quoted 1 line
Quoted 1 line

Is QE_GPIO need by the board? or you just enabled it to have it?

Btw, as for the need.. yes, it was needed to support the FHCI. But now the FHCI would just depend on it, which is better approach anyway.

Signature · 3 lines
Anton Vorontsov
email: [email protected]
irc://irc.freenode.net/bd2
author
#6 lore raw
Quoted 2 lines · Anton Vorontsov

Btw, as for the need.. yes, it was needed to support the FHCI. But now the FHCI would just depend on it, which is better approach anyway.

I also noticed that "QE GPIO support" is a top-level Kconfig option, instead of under Device Drivers -> GPIO. Is that intentional?

Signature · 2 lines
Timur Tabi
Linux kernel developer at Freescale
#7 lore raw
Quoted 7 lines · Timur Tabi
Quoted 2 lines · Anton Vorontsov

Btw, as for the need.. yes, it was needed to support the FHCI. But now the FHCI would just depend on it, which is better approach anyway.

I also noticed that "QE GPIO support" is a top-level Kconfig option, instead of under Device Drivers -> GPIO. Is that intentional?

Yup. David said that platform GPIO controllers should not go into the drivers/gpio/, their place is in the arch/.

Thanks,

Signature · 3 lines
Anton Vorontsov
email: [email protected]
irc://irc.freenode.net/bd2
author
#8 lore raw
Quoted 2 lines · Anton Vorontsov

Yup. David said that platform GPIO controllers should not go into the drivers/gpio/, their place is in the arch/.

Then when I do "make menuconfig", why doesn't that option appear under "Platform support"? This is what I see now:

[*] Networking support --->

    Device Drivers  --->
    File systems  --->
[*] QE GPIO support
    Library routines  --->
    Kernel hacking  --->
Signature · 2 lines
Timur Tabi
Linux kernel developer at Freescale
#9 lore raw
Quoted 8 lines · Timur Tabi
Quoted 2 lines · Anton Vorontsov

Yup. David said that platform GPIO controllers should not go into the drivers/gpio/, their place is in the arch/.

Then when I do "make menuconfig", why doesn't that option appear under "Platform support"? This is what I see now:

Quoted 6 lines

[*] Networking support --->
Device Drivers --->
File systems --->
[*] QE GPIO support
Library routines --->
Kernel hacking --->

I'm moving it under platform like the 8xxx GPIO config

- k

#10 lore raw
In reply to Timur Tabi

Otherwise user-selectable options appears at the top level.

---

Quoted 7 lines · Timur Tabi
Quoted 2 lines · Anton Vorontsov

Yup. David said that platform GPIO controllers should not go into the drivers/gpio/, their place is in the arch/.

Then when I do "make menuconfig", why doesn't that option appear under "Platform support"?

Because the whole arch/powerpc/sysdev/qe_lib/Kconfig includes into the top level Kconfig.

Quoted 8 lines

This is what I see now:

[*] Networking support --->

    Device Drivers  --->
    File systems  --->
[*] QE GPIO support
    Library routines  --->
    Kernel hacking  --->

Damn, this is bad indeed (I don't use the menuconfig, never saw this).

I think arch/powerpc/sysdev/qe_lib/Kconfig inclusion should be fixed.

How about this patch? Or we can move QUICC_ENGINE into the qe_lib/Kconfig and include it in the platform/Kconfig... either way would work.

Thanks for noticing.

 arch/powerpc/Kconfig               |    2 --
 arch/powerpc/platforms/Kconfig     |   36 ++++++++++++++++++++++++++++++++++++
 arch/powerpc/sysdev/qe_lib/Kconfig |   35 -----------------------------------
 3 files changed, 36 insertions(+), 37 deletions(-)
 delete mode 100644 arch/powerpc/sysdev/qe_lib/Kconfig
arch/powerpc/Kconfig +0 -2
index 587da5e..dd976b6 100644
@@ -829,8 +829,6 @@ source "fs/Kconfig"
 
 # XXX source "arch/ppc/8260_io/Kconfig"
 
-source "arch/powerpc/sysdev/qe_lib/Kconfig"
-
 source "lib/Kconfig"
 
 source "arch/powerpc/Kconfig.debug"
arch/powerpc/platforms/Kconfig +36 -0
index 4c900ef..da6da51 100644
@@ -248,6 +248,42 @@ config QUICC_ENGINE
 	  Selecting this option means that you wish to build a kernel
 	  for a machine with a QE coprocessor.
 
+if QUICC_ENGINE
+
+config UCC_SLOW
+	bool
+	default y if SERIAL_QE
+	help
+	  This option provides qe_lib support to UCC slow
+	  protocols: UART, BISYNC, QMC
+
+config UCC_FAST
+	bool
+	default y if UCC_GETH
+	help
+	  This option provides qe_lib support to UCC fast
+	  protocols: HDLC, Ethernet, ATM, transparent
+
+config UCC
+	bool
+	default y if UCC_FAST || UCC_SLOW
+
+config QE_USB
+	bool
+	help
+	  QE USB Host Controller support
+
+config QE_GPIO
+	bool "QE GPIO support"
+	depends on QUICC_ENGINE
+	select GENERIC_GPIO
+	select ARCH_REQUIRE_GPIOLIB
+	help
+	  Say Y here if you're going to use hardware that connects to the
+	  QE GPIOs.
+
+endif
+
 config CPM2
 	bool "Enable support for the CPM2 (Communications Processor Module)"
 	depends on MPC85xx || 8260
arch/powerpc/sysdev/qe_lib/Kconfig deleted +0 -35
deleted file mode 100644
index 1ce5464..0000000
@@ -1,35 +0,0 @@
-#
-# QE Communication options
-#
-
-config UCC_SLOW
-	bool
-	default y if SERIAL_QE
-	help
-	  This option provides qe_lib support to UCC slow
-	  protocols: UART, BISYNC, QMC
-
-config UCC_FAST
-	bool
-	default y if UCC_GETH
-	help
-	  This option provides qe_lib support to UCC fast
-	  protocols: HDLC, Ethernet, ATM, transparent
-
-config UCC
-	bool
-	default y if UCC_FAST || UCC_SLOW
-
-config QE_USB
-	bool
-	help
-	  QE USB Host Controller support
-
-config QE_GPIO
-	bool "QE GPIO support"
-	depends on QUICC_ENGINE
-	select GENERIC_GPIO
-	select ARCH_REQUIRE_GPIOLIB
-	help
-	  Say Y here if you're going to use hardware that connects to the
-	  QE GPIOs.
Signature · 1 line
1.5.6.3
author Acked-by
#11 lore raw
Quoted 11 lines · Anton Vorontsov

How about this patch? Or we can move QUICC_ENGINE into the qe_lib/Kconfig and include it in the platform/Kconfig... either way would work.

Thanks for noticing.

 arch/powerpc/Kconfig               |    2 --
 arch/powerpc/platforms/Kconfig     |   36 ++++++++++++++++++++++++++++++++++++
 arch/powerpc/sysdev/qe_lib/Kconfig |   35 -----------------------------------
 3 files changed, 36 insertions(+), 37 deletions(-)
 delete mode 100644 arch/powerpc/sysdev/qe_lib/Kconfig
Signature · 2 lines
Timur Tabi
Linux kernel developer at Freescale
#12 lore raw
In reply to Anton Vorontsov
Quoted 7 lines

I think arch/powerpc/sysdev/qe_lib/Kconfig inclusion should be fixed.

How about this patch? Or we can move QUICC_ENGINE into the qe_lib/Kconfig and include it in the platform/Kconfig... either way would work.

Thanks for noticing.

I want to leave the "hidden" options in qe_lib/Kconfig.. just move the user selectable one (QE_GPIO) in to platforms/Kconfig

- k

#13 lore raw

PATCH 1/1 powerpc/QE: move QE_GPIO Kconfig symbol into the platforms/Kconfig

Specifying user-selectable option in the qe_lib/Kconfig was a bad idea because the qe_lib/Kconfig is included into the top level Kconfig, and thus the QE_GPIO option appears at the top level menu.

This patch effectively moves the QE_GPIO option under the platform menu instead.

---

On Fri, Oct 03, 2008 at 12:48:31PM -0500, Kumar Gala wrote:
[...]

Quoted 2 lines

I want to leave the "hidden" options in qe_lib/Kconfig.. just move the user selectable one (QE_GPIO) in to platforms/Kconfig

Here it is.

 arch/powerpc/platforms/Kconfig     |    9 +++++++++
 arch/powerpc/sysdev/qe_lib/Kconfig |    9 ---------
 2 files changed, 9 insertions(+), 9 deletions(-)
arch/powerpc/platforms/Kconfig +9 -0
index 8871185..71845d7 100644
@@ -249,6 +249,15 @@ config QUICC_ENGINE
 	  Selecting this option means that you wish to build a kernel
 	  for a machine with a QE coprocessor.
 
+config QE_GPIO
+	bool "QE GPIO support"
+	depends on QUICC_ENGINE
+	select GENERIC_GPIO
+	select ARCH_REQUIRE_GPIOLIB
+	help
+	  Say Y here if you're going to use hardware that connects to the
+	  QE GPIOs.
+
 config CPM2
 	bool "Enable support for the CPM2 (Communications Processor Module)"
 	depends on MPC85xx || 8260
arch/powerpc/sysdev/qe_lib/Kconfig +0 -9
index 1ce5464..76ffbc4 100644
@@ -24,12 +24,3 @@ config QE_USB
 	bool
 	help
 	  QE USB Host Controller support
-
-config QE_GPIO
-	bool "QE GPIO support"
-	depends on QUICC_ENGINE
-	select GENERIC_GPIO
-	select ARCH_REQUIRE_GPIOLIB
-	help
-	  Say Y here if you're going to use hardware that connects to the
-	  QE GPIOs.
Signature · 1 line
1.5.6.3
Applied
#14 lore raw

Re: [PATCH] powerpc/QE: move QE_GPIO Kconfig symbol into the platforms/Kconfig

Quoted 12 lines · Anton Vorontsov

Specifying user-selectable option in the qe_lib/Kconfig was a bad idea because the qe_lib/Kconfig is included into the top level Kconfig, and thus the QE_GPIO option appears at the top level menu.

This patch effectively moves the QE_GPIO option under the platform menu instead.

---

On Fri, Oct 03, 2008 at 12:48:31PM -0500, Kumar Gala wrote:
[...]

Quoted 8 lines
Quoted 2 lines

I want to leave the "hidden" options in qe_lib/Kconfig.. just move the user selectable one (QE_GPIO) in to platforms/Kconfig

Here it is.

arch/powerpc/platforms/Kconfig     |    9 +++++++++
arch/powerpc/sysdev/qe_lib/Kconfig |    9 ---------
2 files changed, 9 insertions(+), 9 deletions(-)

applied

- k