Re: [PATCH] mtd: rawnand: omap2: Actually prevent invalid configuration and build error

From: Guenter Roeck
Date: Fri Mar 04 2022 - 15:10:24 EST


On 3/4/22 07:54, Miquel Raynal wrote:
Hi Guenter, Roger,

rdunlap@xxxxxxxxxxxxx wrote on Sat, 26 Feb 2022 22:55:28 -0800:

On 2/19/22 16:44, Guenter Roeck wrote:
On Sat, Feb 19, 2022 at 09:36:00PM +0200, Roger Quadros wrote:
The root of the problem is that we are selecting symbols that have
dependencies. This can cause random configurations that can fail.
The cleanest solution is to avoid using select.

This driver uses interfaces from the OMAP_GPMC driver so we have to
depend on it instead.

Fixes: 4cd335dae3cf ("mtd: rawnand: omap2: Prevent invalid configuration and build error")
Signed-off-by: Roger Quadros <rogerq@xxxxxxxxxx>

Tested-by: Guenter Roeck <linux@xxxxxxxxxxxx>

Tested-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>

Sorry for noticing that just now, but there is still a problem with
this patch: we now always compile-in the OMAP_GPMC driver whenever we
need the NAND controller, even though it is not needed. This grows the
kernel for no reason.


Sorry, you lost me.

In fact, Roger once said:

"We will figure out how to enable OMAP_GPMC for K3 architecture
some other way."

It turns out this is not what was finally proposed. Could we try yet
another solution?


Thanks.

---
drivers/mtd/nand/raw/Kconfig | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
index 36e697456ec4..9b078e78f3fa 100644
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
@@ -42,8 +42,7 @@ config MTD_NAND_OMAP2
tristate "OMAP2, OMAP3, OMAP4 and Keystone NAND controller"
depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
depends on HAS_IOMEM
- select MEMORY
- select OMAP_GPMC
+ depends on OMAP_GPMC

No matter if select or depend, both result in OMAP_GPMC enabled
if MTD_NAND_OMAP2={m,y}, and both suggest that OMAP_GPMC is
needed for MTD_NAND_OMAP2. That conflicts with

we now always compile-in the OMAP_GPMC driver whenever we
need the NAND controller, even though it is not needed
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

If it isn't needed, why the dependency in the first place ?
Also, commit 4cd335dae3cf2 states "this driver depends on OMAP_GPMC
driver and uses symbols from there". Are you saying that this is not
correct ?

Guenter