Re: [PATCH v3 2/2] mtd: rawnand: ingenic: Limit MTD_NAND_JZ4780 to architecture only

From: Paul Cercueil
Date: Mon Jul 27 2020 - 13:12:46 EST




Le lun. 27 juil. 2020 à 19:03, Krzysztof Kozlowski <krzk@xxxxxxxxxx> a écrit :
On Mon, Jul 27, 2020 at 09:55:54AM +0200, Arnd Bergmann wrote:
On Sun, Jul 26, 2020 at 6:20 PM Paul Cercueil <paul@xxxxxxxxxxxxxxx> wrote:
> Le dim. 26 juil. 2020 à 18:15, Krzysztof Kozlowski <krzk@xxxxxxxxxx> a écrit :
> > On Sun, Jul 26, 2020 at 06:12:27PM +0200, Paul Cercueil wrote:
> >> Le dim. 26 juil. 2020 à 18:06, Krzysztof Kozlowski <krzk@xxxxxxxxxx> a écrit
>
> > OK, that's true. Anyway, I don't have strong opinion on any of this. I
> > just followed Arnd's hint.
> >
> > For the memory driver (and MTD NAND as well) which one you prefer:
> > 1. https://lore.kernel.org/lkml/20200724074038.5597-6-krzk@xxxxxxxxxx/
> > 2. depends on MACH_INGENIC || MIPS_GENERIC || COMPILE_TEST
> >
> > ?
>
> I'd say a slightly modified #1. The driver shouldn't be "default y" in
> the first place, so the patch could be to disable it by default.

If it defaults to 'n' even for MACH_INGENIC, you may have to enable
it in the four defconfig files for these machines to avoid surprises.

Exactly. Nothing else selects JZ4780_NEMC, so either we keep default y
("if MACH_INGENIC || MIPS_GENERIC"), or you select it directly from
MACH_INGENIC/MIPS_GENERIC.

A related question is how essential are these drivers? At least for ARM
platforms, all essential SoC blocks/IPs are selected by default, if
support for chosen SoC is enabled. Only non-essential stuff is left,
e.g. DRM, cpufreq, devfreq, ADC, crypto, video, USB, eMMC (although one
could argue that it is essential), IOMMU.

They are only used for NAND access, which is not really essential (some
boards only use MMC storage), that's why I said they shouldn't have been
enabled by default in the first place.

-Paul


> And when the Ingenic code is merged into the MIPS generic framework, I'll
> send a set of patches to change all driver dependencies on MIPS to
> MIPS_GENERIC.

The way we do it on Arm, the machine Kconfig identifiers stay around
even for multiplatform targets (which now make up basically actively
maintained machines).

I don't think it makes any sense for a driver to depend on MIPS_GENERIC:
either it is a generic driver that should always be visible or it is specific
to a set of SoCs and should depend on some corresponding vendor
specific identifiers.

If support for Ingenic is provided also by MIPS_GENERIC (without
selecting MACH_INGENIC), then it makes sense. This would be just a
different way than ARM of building multi-platform kernel.

Best regards,
Krzysztof