* [PATCH 0/2] ARM: BCM: Do not select MTD_NAND_BRCMNAND
@ 2015-06-27 16:25 Florian Fainelli
2015-06-27 16:25 ` [PATCH 1/2] ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND Florian Fainelli
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Florian Fainelli @ 2015-06-27 16:25 UTC (permalink / raw)
To: linux-arm-kernel
Hi Arnd, Kevin, Olof,
This two patches fix a linking failure when ARCH_BCM_IPROC is selected
for the BRCMNAND driver since we end-up selecting this driver without
its proper depdendencies. Instead do not do this select driver which is
user-selectable, but add it to the multi_v7_defconfig.
Let me know if you would prefer a pull request for this rather than
individual patches. Thanks!
Florian Fainelli (2):
ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND
ARM: multi_v7_defconfig: Enable BRCMNAND driver
arch/arm/configs/multi_v7_defconfig | 1 +
arch/arm/mach-bcm/Kconfig | 1 -
2 files changed, 1 insertion(+), 1 deletion(-)
--
2.1.0
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH 1/2] ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND 2015-06-27 16:25 [PATCH 0/2] ARM: BCM: Do not select MTD_NAND_BRCMNAND Florian Fainelli @ 2015-06-27 16:25 ` Florian Fainelli 2015-06-27 21:39 ` Rafał Miłecki 2015-07-06 21:01 ` Brian Norris 2015-06-27 16:25 ` [PATCH 2/2] ARM: multi_v7_defconfig: Enable BRCMNAND driver Florian Fainelli 2015-07-01 20:40 ` [PATCH 0/2] ARM: BCM: Do not select MTD_NAND_BRCMNAND Kevin Hilman 2 siblings, 2 replies; 10+ messages in thread From: Florian Fainelli @ 2015-06-27 16:25 UTC (permalink / raw) To: linux-arm-kernel This reverts 7dc95b40f599293aedf30432749ad25b51549041 ("ARM: BCM: Enable NAND support for iProc SoCs") since it creates an unmet dependency for MTD_NAND_BRCMNAND which depends on MTD and MTD_NAND, this results in the following build failure for brcmnand: LD init/built-in.o drivers/built-in.o: In function `brcmnand_remove': /home/fainelli/dev/linux/drivers/mtd/nand/brcmnand/brcmnand.c:2234: undefined reference to `nand_release' drivers/built-in.o: In function `brcmnand_init_cs': /home/fainelli/dev/linux/drivers/mtd/nand/brcmnand/brcmnand.c:1933: undefined reference to `nand_scan_ident' /home/fainelli/dev/linux/drivers/mtd/nand/brcmnand/brcmnand.c:1958: undefined reference to `nand_scan_tail' Makefile:931: recipe for target 'vmlinux' failed make: *** [vmlinux] Error 1 Instead, select this driver an all dependencies on the multi_v7_defconfig. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> --- arch/arm/mach-bcm/Kconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig index e9184feffc4e..0ac9e4b3b265 100644 --- a/arch/arm/mach-bcm/Kconfig +++ b/arch/arm/mach-bcm/Kconfig @@ -19,7 +19,6 @@ config ARCH_BCM_IPROC select ARCH_REQUIRE_GPIOLIB select ARM_AMBA select PINCTRL - select MTD_NAND_BRCMNAND help This enables support for systems based on Broadcom IPROC architected SoCs. The IPROC complex contains one or more ARM CPUs along with common -- 2.1.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 1/2] ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND 2015-06-27 16:25 ` [PATCH 1/2] ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND Florian Fainelli @ 2015-06-27 21:39 ` Rafał Miłecki 2015-06-27 23:01 ` Gregory Fong 2015-07-06 21:01 ` Brian Norris 1 sibling, 1 reply; 10+ messages in thread From: Rafał Miłecki @ 2015-06-27 21:39 UTC (permalink / raw) To: linux-arm-kernel On 27 June 2015 at 18:25, Florian Fainelli <f.fainelli@gmail.com> wrote: > This reverts 7dc95b40f599293aedf30432749ad25b51549041 ("ARM: BCM: Enable > NAND support for iProc SoCs") since it creates an unmet dependency for > MTD_NAND_BRCMNAND which depends on MTD and MTD_NAND, this results in the > following build failure for brcmnand: This commit message doesn't make too much sense to me. If MTD_NAND_BRCMNAND really depends on MTD and MTD_NAND then there couldn't be this problem you described. Maybe MTD_NAND_BRCMNAND is *missing* that dependency? ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/2] ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND 2015-06-27 21:39 ` Rafał Miłecki @ 2015-06-27 23:01 ` Gregory Fong 2015-06-28 1:40 ` Florian Fainelli 2015-06-28 7:19 ` Rafał Miłecki 0 siblings, 2 replies; 10+ messages in thread From: Gregory Fong @ 2015-06-27 23:01 UTC (permalink / raw) To: linux-arm-kernel On Sat, Jun 27, 2015 at 2:39 PM, Rafa? Mi?ecki <zajec5@gmail.com> wrote: > On 27 June 2015 at 18:25, Florian Fainelli <f.fainelli@gmail.com> wrote: >> This reverts 7dc95b40f599293aedf30432749ad25b51549041 ("ARM: BCM: Enable >> NAND support for iProc SoCs") since it creates an unmet dependency for >> MTD_NAND_BRCMNAND which depends on MTD and MTD_NAND, this results in the >> following build failure for brcmnand: > > This commit message doesn't make too much sense to me. If > MTD_NAND_BRCMNAND really depends on MTD and MTD_NAND then there > couldn't be this problem you described. > > Maybe MTD_NAND_BRCMNAND is *missing* that dependency? Per Documentation/kbuild/kconfig-language.txt: "select will force a symbol to a value without visiting the dependencies. By abusing select you are able to select a symbol FOO even if FOO depends on BAR that is not set." I believe this is what is happening here. ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/2] ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND 2015-06-27 23:01 ` Gregory Fong @ 2015-06-28 1:40 ` Florian Fainelli 2015-06-28 7:19 ` Rafał Miłecki 1 sibling, 0 replies; 10+ messages in thread From: Florian Fainelli @ 2015-06-28 1:40 UTC (permalink / raw) To: linux-arm-kernel Le 06/27/15 16:01, Gregory Fong a ?crit : > On Sat, Jun 27, 2015 at 2:39 PM, Rafa? Mi?ecki <zajec5@gmail.com> wrote: >> On 27 June 2015 at 18:25, Florian Fainelli <f.fainelli@gmail.com> wrote: >>> This reverts 7dc95b40f599293aedf30432749ad25b51549041 ("ARM: BCM: Enable >>> NAND support for iProc SoCs") since it creates an unmet dependency for >>> MTD_NAND_BRCMNAND which depends on MTD and MTD_NAND, this results in the >>> following build failure for brcmnand: >> >> This commit message doesn't make too much sense to me. If >> MTD_NAND_BRCMNAND really depends on MTD and MTD_NAND then there >> couldn't be this problem you described. >> >> Maybe MTD_NAND_BRCMNAND is *missing* that dependency? > > Per Documentation/kbuild/kconfig-language.txt: "select will force a > symbol to a value without visiting the dependencies. By abusing select > you are able to select a symbol FOO even if FOO depends on BAR that is > not set." > > I believe this is what is happening here. Right, what is happening is actually that CONFIG_MTD gates CONFIG_MTD_NAND, using a if MTD statement, which only affects the user-selectability aspect of it, it does therefore only *implicitly* enforce a depdency CONFIG_MTD for CONFIG_MTD_NAND because all of this is user-selectable, so you need CONFIG_MTD to have CONFIG_MTD_NAND *apppear* as a selectable option first. The same is true for all NAND drivers, which are gated with an if MTD_NAND statement. I could put that in the commit message and resubmit if this is deemed appropriate to understand what is being fixed here; I thought mentioning the unmet dependency would be enough though. Thanks! -- Florian ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/2] ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND 2015-06-27 23:01 ` Gregory Fong 2015-06-28 1:40 ` Florian Fainelli @ 2015-06-28 7:19 ` Rafał Miłecki 1 sibling, 0 replies; 10+ messages in thread From: Rafał Miłecki @ 2015-06-28 7:19 UTC (permalink / raw) To: linux-arm-kernel On 28 June 2015 at 01:01, Gregory Fong <gregory.0xf0@gmail.com> wrote: > On Sat, Jun 27, 2015 at 2:39 PM, Rafa? Mi?ecki <zajec5@gmail.com> wrote: >> On 27 June 2015 at 18:25, Florian Fainelli <f.fainelli@gmail.com> wrote: >>> This reverts 7dc95b40f599293aedf30432749ad25b51549041 ("ARM: BCM: Enable >>> NAND support for iProc SoCs") since it creates an unmet dependency for >>> MTD_NAND_BRCMNAND which depends on MTD and MTD_NAND, this results in the >>> following build failure for brcmnand: >> >> This commit message doesn't make too much sense to me. If >> MTD_NAND_BRCMNAND really depends on MTD and MTD_NAND then there >> couldn't be this problem you described. >> >> Maybe MTD_NAND_BRCMNAND is *missing* that dependency? > > Per Documentation/kbuild/kconfig-language.txt: "select will force a > symbol to a value without visiting the dependencies. By abusing select > you are able to select a symbol FOO even if FOO depends on BAR that is > not set." > > I believe this is what is happening here. Oops, it seems I still don't know Kconfig well enough. Thanks for explaining, sorry for the noise, it looks fine! -- Rafa? ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND 2015-06-27 16:25 ` [PATCH 1/2] ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND Florian Fainelli @ 2015-07-06 21:01 ` Brian Norris 2015-07-06 21:01 ` Brian Norris 1 sibling, 0 replies; 10+ messages in thread From: Brian Norris @ 2015-07-06 21:01 UTC (permalink / raw) To: Florian Fainelli Cc: arm, zajec5, hauke, nbd, linux-arm-kernel, arnd, olof, khilman, bcm-kernel-feedback-list, jdzheng, sbranden, jonathar, rjui, gregory.0xf0, linux-mtd On Sat, Jun 27, 2015 at 09:25:43AM -0700, Florian Fainelli wrote: > This reverts 7dc95b40f599293aedf30432749ad25b51549041 ("ARM: BCM: Enable > NAND support for iProc SoCs") since it creates an unmet dependency for > MTD_NAND_BRCMNAND which depends on MTD and MTD_NAND, this results in the > following build failure for brcmnand: > > LD init/built-in.o > drivers/built-in.o: In function `brcmnand_remove': > /home/fainelli/dev/linux/drivers/mtd/nand/brcmnand/brcmnand.c:2234: > undefined reference to `nand_release' > drivers/built-in.o: In function `brcmnand_init_cs': > /home/fainelli/dev/linux/drivers/mtd/nand/brcmnand/brcmnand.c:1933: > undefined reference to `nand_scan_ident' > /home/fainelli/dev/linux/drivers/mtd/nand/brcmnand/brcmnand.c:1958: > undefined reference to `nand_scan_tail' > Makefile:931: recipe for target 'vmlinux' failed > make: *** [vmlinux] Error 1 > > Instead, select this driver an all dependencies on the > multi_v7_defconfig. > > Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> FWIW (I've been a bit disconnected this last week): Acked-by: Brian Norris <computersforpeace@gmail.com> Drivers should not be select-ed like this. Thanks for the patch. > --- > arch/arm/mach-bcm/Kconfig | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig > index e9184feffc4e..0ac9e4b3b265 100644 > --- a/arch/arm/mach-bcm/Kconfig > +++ b/arch/arm/mach-bcm/Kconfig > @@ -19,7 +19,6 @@ config ARCH_BCM_IPROC > select ARCH_REQUIRE_GPIOLIB > select ARM_AMBA > select PINCTRL > - select MTD_NAND_BRCMNAND > help > This enables support for systems based on Broadcom IPROC architected SoCs. > The IPROC complex contains one or more ARM CPUs along with common ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/2] ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND @ 2015-07-06 21:01 ` Brian Norris 0 siblings, 0 replies; 10+ messages in thread From: Brian Norris @ 2015-07-06 21:01 UTC (permalink / raw) To: linux-arm-kernel On Sat, Jun 27, 2015 at 09:25:43AM -0700, Florian Fainelli wrote: > This reverts 7dc95b40f599293aedf30432749ad25b51549041 ("ARM: BCM: Enable > NAND support for iProc SoCs") since it creates an unmet dependency for > MTD_NAND_BRCMNAND which depends on MTD and MTD_NAND, this results in the > following build failure for brcmnand: > > LD init/built-in.o > drivers/built-in.o: In function `brcmnand_remove': > /home/fainelli/dev/linux/drivers/mtd/nand/brcmnand/brcmnand.c:2234: > undefined reference to `nand_release' > drivers/built-in.o: In function `brcmnand_init_cs': > /home/fainelli/dev/linux/drivers/mtd/nand/brcmnand/brcmnand.c:1933: > undefined reference to `nand_scan_ident' > /home/fainelli/dev/linux/drivers/mtd/nand/brcmnand/brcmnand.c:1958: > undefined reference to `nand_scan_tail' > Makefile:931: recipe for target 'vmlinux' failed > make: *** [vmlinux] Error 1 > > Instead, select this driver an all dependencies on the > multi_v7_defconfig. > > Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> FWIW (I've been a bit disconnected this last week): Acked-by: Brian Norris <computersforpeace@gmail.com> Drivers should not be select-ed like this. Thanks for the patch. > --- > arch/arm/mach-bcm/Kconfig | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig > index e9184feffc4e..0ac9e4b3b265 100644 > --- a/arch/arm/mach-bcm/Kconfig > +++ b/arch/arm/mach-bcm/Kconfig > @@ -19,7 +19,6 @@ config ARCH_BCM_IPROC > select ARCH_REQUIRE_GPIOLIB > select ARM_AMBA > select PINCTRL > - select MTD_NAND_BRCMNAND > help > This enables support for systems based on Broadcom IPROC architected SoCs. > The IPROC complex contains one or more ARM CPUs along with common ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/2] ARM: multi_v7_defconfig: Enable BRCMNAND driver 2015-06-27 16:25 [PATCH 0/2] ARM: BCM: Do not select MTD_NAND_BRCMNAND Florian Fainelli 2015-06-27 16:25 ` [PATCH 1/2] ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND Florian Fainelli @ 2015-06-27 16:25 ` Florian Fainelli 2015-07-01 20:40 ` [PATCH 0/2] ARM: BCM: Do not select MTD_NAND_BRCMNAND Kevin Hilman 2 siblings, 0 replies; 10+ messages in thread From: Florian Fainelli @ 2015-06-27 16:25 UTC (permalink / raw) To: linux-arm-kernel The Broadcom NAND driver is used by brcmstb, bcm63xx, bcm5301x and Cygnus/iProc under mach-bcm, this is enough critical mass to enable it. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> --- arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index fd6a6d23bc20..6d83a1bf0c74 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig @@ -169,6 +169,7 @@ CONFIG_MTD_BLOCK=y CONFIG_MTD_M25P80=y CONFIG_MTD_NAND=y CONFIG_MTD_NAND_ATMEL=y +CONFIG_MTD_NAND_BRCMNAND=y CONFIG_MTD_NAND_DAVINCI=y CONFIG_MTD_SPI_NOR=y CONFIG_MTD_UBI=y -- 2.1.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 0/2] ARM: BCM: Do not select MTD_NAND_BRCMNAND 2015-06-27 16:25 [PATCH 0/2] ARM: BCM: Do not select MTD_NAND_BRCMNAND Florian Fainelli 2015-06-27 16:25 ` [PATCH 1/2] ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND Florian Fainelli 2015-06-27 16:25 ` [PATCH 2/2] ARM: multi_v7_defconfig: Enable BRCMNAND driver Florian Fainelli @ 2015-07-01 20:40 ` Kevin Hilman 2 siblings, 0 replies; 10+ messages in thread From: Kevin Hilman @ 2015-07-01 20:40 UTC (permalink / raw) To: linux-arm-kernel Florian Fainelli <f.fainelli@gmail.com> writes: > Hi Arnd, Kevin, Olof, > > This two patches fix a linking failure when ARCH_BCM_IPROC is selected > for the BRCMNAND driver since we end-up selecting this driver without > its proper depdendencies. Instead do not do this select driver which is > user-selectable, but add it to the multi_v7_defconfig. > > Let me know if you would prefer a pull request for this rather than > individual patches. Thanks! Individual patches are fine. I've picked these up for the arm-soc/late branch which I'll try to get in before -rc1, but if not it will make it for -rc2. Thanks, Kevin ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2015-07-06 21:01 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-06-27 16:25 [PATCH 0/2] ARM: BCM: Do not select MTD_NAND_BRCMNAND Florian Fainelli 2015-06-27 16:25 ` [PATCH 1/2] ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND Florian Fainelli 2015-06-27 21:39 ` Rafał Miłecki 2015-06-27 23:01 ` Gregory Fong 2015-06-28 1:40 ` Florian Fainelli 2015-06-28 7:19 ` Rafał Miłecki 2015-07-06 21:01 ` Brian Norris 2015-07-06 21:01 ` Brian Norris 2015-06-27 16:25 ` [PATCH 2/2] ARM: multi_v7_defconfig: Enable BRCMNAND driver Florian Fainelli 2015-07-01 20:40 ` [PATCH 0/2] ARM: BCM: Do not select MTD_NAND_BRCMNAND Kevin Hilman
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.