Re: [PATCH v8 13/14] mtd: Add HAS_IOMEM || INDIRECT_IOMEM dependency
From: Miquel Raynal
Date: Tue Oct 08 2024 - 04:54:09 EST
Hi Julian,
jvetter@xxxxxxxxxxxxx wrote on Tue, 8 Oct 2024 09:50:21 +0200:
> The UM arch doesn't have HAS_IOMEM=y, so the build fails because the
> functions memcpy_fromio and memcpy_toio are not defined anymore. These
> functions are only build for targets which have HAS_IOMEM=y or
> INDIRECT_IOMEM=y. So, depend on either of the two.
There are many mtd drivers using memcpy_fromio and memcpy_toio, I'm not
sure I get why only this subset of drivers would be impacted?
Also, from a general standpoint, I don't see with a good eye the
proliferation of the use of || INDIRECT_IOMEM just for the um
architecture:
$ git grep HAS_IOMEM | wc -l
611
$ git grep INDIRECT_IOMEM | wc -l
15
I believe the Kconfig symbol should adapt to reflect the fact that IO
operations are fine, regardless of their type ("direct" or "indirect")
rather than move the load on the individual drivers.
> Reviewed-by: Yann Sionneau <ysionneau@xxxxxxxxxxxxx>
> Signed-off-by: Julian Vetter <jvetter@xxxxxxxxxxxxx>
> ---
> Changes for v8:
> - New patch
> ---
> drivers/mtd/chips/Kconfig | 4 ++++
> drivers/mtd/lpddr/Kconfig | 1 +
> 2 files changed, 5 insertions(+)
>
> diff --git a/drivers/mtd/chips/Kconfig b/drivers/mtd/chips/Kconfig
> index 19726ebd973d..78afe7ccf005 100644
> --- a/drivers/mtd/chips/Kconfig
> +++ b/drivers/mtd/chips/Kconfig
> @@ -4,6 +4,7 @@ menu "RAM/ROM/Flash chip drivers"
>
> config MTD_CFI
> tristate "Detect flash chips by Common Flash Interface (CFI) probe"
> + depends on HAS_IOMEM || INDIRECT_IOMEM
> select MTD_GEN_PROBE
> select MTD_CFI_UTIL
> help
> @@ -16,6 +17,7 @@ config MTD_CFI
>
> config MTD_JEDECPROBE
> tristate "Detect non-CFI AMD/JEDEC-compatible flash chips"
> + depends on HAS_IOMEM || INDIRECT_IOMEM
> select MTD_GEN_PROBE
> select MTD_CFI_UTIL
> help
> @@ -211,12 +213,14 @@ config MTD_CFI_UTIL
>
> config MTD_RAM
> tristate "Support for RAM chips in bus mapping"
> + depends on HAS_IOMEM || INDIRECT_IOMEM
> help
> This option enables basic support for RAM chips accessed through
> a bus mapping driver.
>
> config MTD_ROM
> tristate "Support for ROM chips in bus mapping"
> + depends on HAS_IOMEM || INDIRECT_IOMEM
> help
> This option enables basic support for ROM chips accessed through
> a bus mapping driver.
> diff --git a/drivers/mtd/lpddr/Kconfig b/drivers/mtd/lpddr/Kconfig
> index 0395aa6b68f1..f35dd8052abc 100644
> --- a/drivers/mtd/lpddr/Kconfig
> +++ b/drivers/mtd/lpddr/Kconfig
> @@ -4,6 +4,7 @@ menu "LPDDR & LPDDR2 PCM memory drivers"
>
> config MTD_LPDDR
> tristate "Support for LPDDR flash chips"
> + depends on HAS_IOMEM || INDIRECT_IOMEM
> select MTD_QINFO_PROBE
> help
> This option enables support of LPDDR (Low power double data rate)
Thanks,
Miquèl