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

Paul Cercueil
2020-07-27T17:12:46Z

Le lun. 27 juil. 2020 à 19:03, Krzysztof Kozlowski <krzk@kernel.org> 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@crapouillou.net> wrote:
>> > Le dim. 26 juil. 2020 à 18:15, Krzysztof Kozlowski
>> <krzk@kernel.org> 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@kernel.org> 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@kernel.org/
>> > > 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