* [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage
@ 2018-07-09 20:09 Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 01/24] mtd: rawnand: atmel: Use uintptr_t casts instead of unsigned int Boris Brezillon
` (26 more replies)
0 siblings, 27 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
Hello,
This is an attempt at adding "depends || COMPILE_TEST" to all NAND
drivers that have no compile-time dependencies on arch
features/headers.
This will hopefully help us (NAND/MTD maintainers) in detecting build
issues earlier. Unfortunately we still have a few drivers that can't
easily be modified to be arch independent.
I tried to put all patches that only touch the NAND subsystem first,
so that they can be applied even if other patches are being discussed.
Don't hesitate to point any missing dependencies when compiled with
COMPILE_TEST. I didn't have any problem when compiling, but that might
be because the dependencies were already selected.
In this v2, I tried to fix all warnings/errors reported by kbuild/0day
robots. The only remaining ones are those in omap_elm.c which seems to
do some weird cpu_to_be32() conversions. I guess I could replace those
by iowrite32be() calls (or just add (__force __u32)), but I don't want
to risk a regression on this driver, so I'm just leaving it for someone
else to fix :P.
Regards,
Boris
Changes in v2:
- Fix a few problems reported by kbuild robots and Stephen Rothwell
Boris Brezillon (24):
mtd: rawnand: atmel: Use uintptr_t casts instead of unsigned int
mtd: rawnand: atmel: Add an __iomem cast on gen_pool_dma_alloc() call
mtd: rawnand: atmel: Allow selection of this driver when
COMPILE_TEST=y
mtd: rawnand: s3c2410: Allow selection of this driver when
COMPILE_TEST=y
mtd: rawnand: orion: Avoid direct inclusion of asm headers
mtd: rawnand: orion: Allow selection of this driver when
COMPILE_TEST=y
mtd: rawnand: davinci: Stop doing iomem pointer <-> u32 conversions
mtd: rawnand: davinci: Use uintptr_t casts instead of unsigned ones
mtd: rawnand: davinci: Allow selection of this driver when
COMPILE_TEST=y
mtd: rawnand: sunxi: Add an U suffix to NFC_PAGE_OP definition
mtd: rawnand: sunxi: Make sure ret is initialized in
sunxi_nfc_read_byte()
mtd: rawnand: sunxi: Allow selection of this driver when
COMPILE_TEST=y
mtd: rawnand: fscm: Avoid collision on PC def when compiling for MIPS
mtd: rawnand: fsmc: Use uintptr_t casts instead of unsigned ones
mtd: rawnand: fsmc: Allow selection of this driver when COMPILE_TEST=y
memory: fsl_ifc: Allow selection of this driver when COMPILE_TEST=y
mtd: rawnand: fsl_ifc: Add an __iomem specifier on eccstat_regs
mtd: rawnand: fsl_ifc: Allow selection of this driver when
COMPILE_TEST=y
MIPS: txx9: Move the ndfc.h header to include/linux/platform_data/txx9
mtd: rawnand: txx9ndfmc: Allow selection of this driver when
COMPILE_TEST=y
MIPS: jz4740: Move jz4740_nand.h header to
include/linux/platform_data/jz4740
mtd: rawnand: jz4740: Allow selection of this driver when
COMPILE_TEST=y
mtd: rawnand: jz4780: Drop the dependency on MACH_JZ4780
memory: jz4780-nemc: Allow selection of this driver when
COMPILE_TEST=y
arch/mips/jz4740/board-qi_lb60.c | 3 +-
arch/mips/txx9/generic/setup.c | 2 +-
arch/mips/txx9/generic/setup_tx4938.c | 2 +-
arch/mips/txx9/generic/setup_tx4939.c | 2 +-
drivers/memory/Kconfig | 6 ++--
drivers/mtd/nand/raw/Kconfig | 33 ++++++++++++++--------
drivers/mtd/nand/raw/atmel/nand-controller.c | 8 +++---
drivers/mtd/nand/raw/davinci_nand.c | 33 ++++++++++------------
drivers/mtd/nand/raw/fsl_ifc_nand.c | 2 +-
drivers/mtd/nand/raw/fsmc_nand.c | 33 +++++++++++-----------
drivers/mtd/nand/raw/jz4740_nand.c | 2 +-
drivers/mtd/nand/raw/orion_nand.c | 2 +-
drivers/mtd/nand/raw/sunxi_nand.c | 4 +--
drivers/mtd/nand/raw/txx9ndfmc.c | 2 +-
.../linux/platform_data/jz4740}/jz4740_nand.h | 4 +--
.../linux/platform_data}/txx9/ndfmc.h | 6 ++--
16 files changed, 77 insertions(+), 67 deletions(-)
rename {arch/mips/include/asm/mach-jz4740 => include/linux/platform_data/jz4740}/jz4740_nand.h (91%)
rename {arch/mips/include/asm => include/linux/platform_data}/txx9/ndfmc.h (91%)
--
2.14.1
^ permalink raw reply [flat|nested] 38+ messages in thread
* [PATCH v2 01/24] mtd: rawnand: atmel: Use uintptr_t casts instead of unsigned int
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 02/24] mtd: rawnand: atmel: Add an __iomem cast on gen_pool_dma_alloc() call Boris Brezillon
` (25 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
When casting a pointer to an unsigned in, uintptr_t should be used to
cope with the pointer size differences between 32-bit and 64-bit
architectures.
This is needed if we want to allow compilation of this driver when
COMPILE_TEST=y.
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/atmel/nand-controller.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/atmel/nand-controller.c b/drivers/mtd/nand/raw/atmel/nand-controller.c
index e686fe73159e..e8f7549d0354 100644
--- a/drivers/mtd/nand/raw/atmel/nand-controller.c
+++ b/drivers/mtd/nand/raw/atmel/nand-controller.c
@@ -2050,7 +2050,7 @@ atmel_smc_nand_controller_init(struct atmel_smc_nand_controller *nc)
return ret;
}
- nc->ebi_csa_offs = (unsigned int)match->data;
+ nc->ebi_csa_offs = (uintptr_t)match->data;
/*
* The at91sam9263 has 2 EBIs, if the NAND controller is under EBI1
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 02/24] mtd: rawnand: atmel: Add an __iomem cast on gen_pool_dma_alloc() call
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 01/24] mtd: rawnand: atmel: Use uintptr_t casts instead of unsigned int Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 03/24] mtd: rawnand: atmel: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
` (24 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
gen_pool_dma_alloc() return type is void *, while internally, the
memory region exposed by the sram driver has been mapped with
ioremap().
Add a void * to void __iomem * cast to make sparse happy.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/atmel/nand-controller.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/mtd/nand/raw/atmel/nand-controller.c b/drivers/mtd/nand/raw/atmel/nand-controller.c
index e8f7549d0354..30dae4c9d439 100644
--- a/drivers/mtd/nand/raw/atmel/nand-controller.c
+++ b/drivers/mtd/nand/raw/atmel/nand-controller.c
@@ -2219,9 +2219,9 @@ atmel_hsmc_nand_controller_init(struct atmel_hsmc_nand_controller *nc)
return -ENOMEM;
}
- nc->sram.virt = gen_pool_dma_alloc(nc->sram.pool,
- ATMEL_NFC_SRAM_SIZE,
- &nc->sram.dma);
+ nc->sram.virt = (void __iomem *)gen_pool_dma_alloc(nc->sram.pool,
+ ATMEL_NFC_SRAM_SIZE,
+ &nc->sram.dma);
if (!nc->sram.virt) {
dev_err(nc->base.dev,
"Could not allocate memory from the NFC SRAM pool\n");
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 03/24] mtd: rawnand: atmel: Allow selection of this driver when COMPILE_TEST=y
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 01/24] mtd: rawnand: atmel: Use uintptr_t casts instead of unsigned int Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 02/24] mtd: rawnand: atmel: Add an __iomem cast on gen_pool_dma_alloc() call Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 04/24] mtd: rawnand: s3c2410: " Boris Brezillon
` (23 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
It just makes NAND maintainers' life easier by allowing them to
compile-test this driver without having ARCH_AT91 enabled.
We also need to add a dependency on HAS_IOMEM to make sure the driver
compiles correctly.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
index 230311fa2cc0..1488ad0a0199 100644
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
@@ -277,7 +277,8 @@ config MTD_NAND_CS553X
config MTD_NAND_ATMEL
tristate "Support for NAND Flash / SmartMedia on AT91"
- depends on ARCH_AT91
+ depends on ARCH_AT91 || COMPILE_TEST
+ depends on HAS_IOMEM
select MFD_ATMEL_SMC
help
Enables support for NAND Flash / Smart Media Card interface
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 04/24] mtd: rawnand: s3c2410: Allow selection of this driver when COMPILE_TEST=y
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (2 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 03/24] mtd: rawnand: atmel: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-11 11:16 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 05/24] mtd: rawnand: orion: Avoid direct inclusion of asm headers Boris Brezillon
` (22 subsequent siblings)
26 siblings, 1 reply; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
It just makes NAND maintainers' life easier by allowing them to
compile-test this driver without having ARCH_S3C24XX or ARCH_S3C64XX
enabled.
We add a dependency on HAS_IOMEM to make sure the driver compiles
correctly, and a dependency on !IA64 because the {read,write}s{bwl}()
accessors are not defined for this architecture.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
index 1488ad0a0199..e01b3da726c0 100644
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
@@ -119,7 +119,8 @@ config MTD_NAND_AU1550
config MTD_NAND_S3C2410
tristate "NAND Flash support for Samsung S3C SoCs"
- depends on ARCH_S3C24XX || ARCH_S3C64XX
+ depends on ARCH_S3C24XX || ARCH_S3C64XX || COMPILE_TEST
+ depends on HAS_IOMEM && !IA64
help
This enables the NAND flash controller on the S3C24xx and S3C64xx
SoCs
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 05/24] mtd: rawnand: orion: Avoid direct inclusion of asm headers
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (3 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 04/24] mtd: rawnand: s3c2410: " Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 06/24] mtd: rawnand: orion: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
` (21 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
Include linux/sizes.h instead of asm/sizes.h to make code completely
arch independent.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/orion_nand.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/orion_nand.c b/drivers/mtd/nand/raw/orion_nand.c
index 1a4828442675..27cc902545f3 100644
--- a/drivers/mtd/nand/raw/orion_nand.c
+++ b/drivers/mtd/nand/raw/orion_nand.c
@@ -18,7 +18,7 @@
#include <linux/clk.h>
#include <linux/err.h>
#include <linux/io.h>
-#include <asm/sizes.h>
+#include <linux/sizes.h>
#include <linux/platform_data/mtd-orion_nand.h>
struct orion_nand_info {
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 06/24] mtd: rawnand: orion: Allow selection of this driver when COMPILE_TEST=y
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (4 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 05/24] mtd: rawnand: orion: Avoid direct inclusion of asm headers Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 07/24] mtd: rawnand: davinci: Stop doing iomem pointer <-> u32 conversions Boris Brezillon
` (20 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
It just makes NAND maintainers' life easier by allowing them to
compile-test this driver without having PLAT_ORION enabled.
We add a dependency on HAS_IOMEM to make sure the driver compiles
correctly, and a dependency on !IA64 because the {read,write}s{bwl}()
accessors are not defined for this architecture.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/Kconfig | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
index e01b3da726c0..efc5dcd5135c 100644
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
@@ -289,7 +289,7 @@ config MTD_NAND_MARVELL
tristate "NAND controller support on Marvell boards"
depends on PXA3xx || ARCH_MMP || PLAT_ORION || ARCH_MVEBU || \
COMPILE_TEST
- depends on HAS_IOMEM
+ depends on HAS_IOMEM && !IA64
help
This enables the NAND flash controller driver for Marvell boards,
including:
@@ -381,7 +381,8 @@ config MTD_NAND_PLATFORM
config MTD_NAND_ORION
tristate "NAND Flash support for Marvell Orion SoC"
- depends on PLAT_ORION
+ depends on PLAT_ORION || COMPILE_TEST
+ depends on HAS_IOMEM
help
This enables the NAND flash controller on Orion machines.
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 07/24] mtd: rawnand: davinci: Stop doing iomem pointer <-> u32 conversions
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (5 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 06/24] mtd: rawnand: orion: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 08/24] mtd: rawnand: davinci: Use uintptr_t casts instead of unsigned ones Boris Brezillon
` (19 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
There is no point in doing this sort of conversion since pointers can
we can replace |= by += operations which are perfectly valid on
pointers.
This is done in preparation of COMPILE_TEST addition to the NAND_DAVINCI
Kconfig entry, since building for x86 generates a several warnings
because of inappropriate u32 <-> void * conversions (pointers are 64bits
large on x86_64).
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/davinci_nand.c | 23 ++++++++++-------------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/drivers/mtd/nand/raw/davinci_nand.c b/drivers/mtd/nand/raw/davinci_nand.c
index cd12e5abafde..9cd36a750965 100644
--- a/drivers/mtd/nand/raw/davinci_nand.c
+++ b/drivers/mtd/nand/raw/davinci_nand.c
@@ -60,8 +60,7 @@ struct davinci_nand_info {
void __iomem *base;
void __iomem *vaddr;
- uint32_t ioaddr;
- uint32_t current_cs;
+ void __iomem *current_cs;
uint32_t mask_chipsel;
uint32_t mask_ale;
@@ -102,17 +101,17 @@ static void nand_davinci_hwcontrol(struct mtd_info *mtd, int cmd,
unsigned int ctrl)
{
struct davinci_nand_info *info = to_davinci_nand(mtd);
- uint32_t addr = info->current_cs;
+ void __iomem *addr = info->current_cs;
struct nand_chip *nand = mtd_to_nand(mtd);
/* Did the control lines change? */
if (ctrl & NAND_CTRL_CHANGE) {
if ((ctrl & NAND_CTRL_CLE) == NAND_CTRL_CLE)
- addr |= info->mask_cle;
+ addr += info->mask_cle;
else if ((ctrl & NAND_CTRL_ALE) == NAND_CTRL_ALE)
- addr |= info->mask_ale;
+ addr += info->mask_ale;
- nand->IO_ADDR_W = (void __iomem __force *)addr;
+ nand->IO_ADDR_W = addr;
}
if (cmd != NAND_CMD_NONE)
@@ -122,14 +121,14 @@ static void nand_davinci_hwcontrol(struct mtd_info *mtd, int cmd,
static void nand_davinci_select_chip(struct mtd_info *mtd, int chip)
{
struct davinci_nand_info *info = to_davinci_nand(mtd);
- uint32_t addr = info->ioaddr;
+
+ info->current_cs = info->vaddr;
/* maybe kick in a second chipselect */
if (chip > 0)
- addr |= info->mask_chipsel;
- info->current_cs = addr;
+ info->current_cs += info->mask_chipsel;
- info->chip.IO_ADDR_W = (void __iomem __force *)addr;
+ info->chip.IO_ADDR_W = info->current_cs;
info->chip.IO_ADDR_R = info->chip.IO_ADDR_W;
}
@@ -680,9 +679,7 @@ static int nand_davinci_probe(struct platform_device *pdev)
info->chip.bbt_md = pdata->bbt_md;
info->timing = pdata->timing;
- info->ioaddr = (uint32_t __force) vaddr;
-
- info->current_cs = info->ioaddr;
+ info->current_cs = info->vaddr;
info->core_chipsel = pdata->core_chipsel;
info->mask_chipsel = pdata->mask_chipsel;
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 08/24] mtd: rawnand: davinci: Use uintptr_t casts instead of unsigned ones
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (6 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 07/24] mtd: rawnand: davinci: Stop doing iomem pointer <-> u32 conversions Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 09/24] mtd: rawnand: davinci: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
` (18 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
uintptr_t should be used when casting a pointer to an unsigned int so
that the code compiles without warnings even on 64-bit architectures.
This is needed if we want to allow selection of this driver when
COMPILE_TEST=y.
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/davinci_nand.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/mtd/nand/raw/davinci_nand.c b/drivers/mtd/nand/raw/davinci_nand.c
index 9cd36a750965..e79ed0f60ade 100644
--- a/drivers/mtd/nand/raw/davinci_nand.c
+++ b/drivers/mtd/nand/raw/davinci_nand.c
@@ -318,7 +318,7 @@ static int nand_davinci_correct_4bit(struct mtd_info *mtd,
/* Unpack ten bytes into eight 10 bit values. We know we're
* little-endian, and use type punning for less shifting/masking.
*/
- if (WARN_ON(0x01 & (unsigned) ecc_code))
+ if (WARN_ON(0x01 & (uintptr_t)ecc_code))
return -EINVAL;
ecc16 = (unsigned short *)ecc_code;
@@ -440,9 +440,9 @@ static void nand_davinci_read_buf(struct mtd_info *mtd, uint8_t *buf, int len)
{
struct nand_chip *chip = mtd_to_nand(mtd);
- if ((0x03 & ((unsigned)buf)) == 0 && (0x03 & len) == 0)
+ if ((0x03 & ((uintptr_t)buf)) == 0 && (0x03 & len) == 0)
ioread32_rep(chip->IO_ADDR_R, buf, len >> 2);
- else if ((0x01 & ((unsigned)buf)) == 0 && (0x01 & len) == 0)
+ else if ((0x01 & ((uintptr_t)buf)) == 0 && (0x01 & len) == 0)
ioread16_rep(chip->IO_ADDR_R, buf, len >> 1);
else
ioread8_rep(chip->IO_ADDR_R, buf, len);
@@ -453,9 +453,9 @@ static void nand_davinci_write_buf(struct mtd_info *mtd,
{
struct nand_chip *chip = mtd_to_nand(mtd);
- if ((0x03 & ((unsigned)buf)) == 0 && (0x03 & len) == 0)
+ if ((0x03 & ((uintptr_t)buf)) == 0 && (0x03 & len) == 0)
iowrite32_rep(chip->IO_ADDR_R, buf, len >> 2);
- else if ((0x01 & ((unsigned)buf)) == 0 && (0x01 & len) == 0)
+ else if ((0x01 & ((uintptr_t)buf)) == 0 && (0x01 & len) == 0)
iowrite16_rep(chip->IO_ADDR_R, buf, len >> 1);
else
iowrite8_rep(chip->IO_ADDR_R, buf, len);
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 09/24] mtd: rawnand: davinci: Allow selection of this driver when COMPILE_TEST=y
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (7 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 08/24] mtd: rawnand: davinci: Use uintptr_t casts instead of unsigned ones Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 10/24] mtd: rawnand: sunxi: Add an U suffix to NFC_PAGE_OP definition Boris Brezillon
` (17 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
It just makes NAND maintainers' life easier by allowing them to
compile-test this driver without having ARCH_DAVINCI or ARCH_KEYSTONE
enabled.
We also need to add a dependency on HAS_IOMEM to make sure the
driver compiles correctly.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
index efc5dcd5135c..539b0619f53a 100644
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
@@ -462,7 +462,8 @@ config MTD_NAND_SH_FLCTL
config MTD_NAND_DAVINCI
tristate "Support NAND on DaVinci/Keystone SoC"
- depends on ARCH_DAVINCI || (ARCH_KEYSTONE && TI_AEMIF)
+ depends on ARCH_DAVINCI || (ARCH_KEYSTONE && TI_AEMIF) || COMPILE_TEST
+ depends on HAS_IOMEM
help
Enable the driver for NAND flash chips on Texas Instruments
DaVinci/Keystone processors.
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 10/24] mtd: rawnand: sunxi: Add an U suffix to NFC_PAGE_OP definition
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (8 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 09/24] mtd: rawnand: davinci: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 11/24] mtd: rawnand: sunxi: Make sure ret is initialized in sunxi_nfc_read_byte() Boris Brezillon
` (16 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
Fixes the "warning: large integer implicitly truncated to unsigned type
[-Woverflow]" warning when compiled for x86.
This is needed in order to allow compiling this driver when
COMPILE_TEST=y.
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/sunxi_nand.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/sunxi_nand.c b/drivers/mtd/nand/raw/sunxi_nand.c
index d831a141a196..99043c3a4fa7 100644
--- a/drivers/mtd/nand/raw/sunxi_nand.c
+++ b/drivers/mtd/nand/raw/sunxi_nand.c
@@ -127,7 +127,7 @@
#define NFC_CMD_TYPE_MSK GENMASK(31, 30)
#define NFC_NORMAL_OP (0 << 30)
#define NFC_ECC_OP (1 << 30)
-#define NFC_PAGE_OP (2 << 30)
+#define NFC_PAGE_OP (2U << 30)
/* define bit use in NFC_RCMD_SET */
#define NFC_READ_CMD_MSK GENMASK(7, 0)
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 11/24] mtd: rawnand: sunxi: Make sure ret is initialized in sunxi_nfc_read_byte()
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (9 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 10/24] mtd: rawnand: sunxi: Add an U suffix to NFC_PAGE_OP definition Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:35 ` Arnd Bergmann
2018-07-09 20:09 ` [PATCH v2 12/24] mtd: rawnand: sunxi: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
` (15 subsequent siblings)
26 siblings, 1 reply; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
Fixes the following smatch warning:
drivers/mtd/nand/raw/sunxi_nand.c:551 sunxi_nfc_read_byte() error: uninitialized symbol 'ret'.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/sunxi_nand.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/sunxi_nand.c b/drivers/mtd/nand/raw/sunxi_nand.c
index 99043c3a4fa7..4b11cd4a79be 100644
--- a/drivers/mtd/nand/raw/sunxi_nand.c
+++ b/drivers/mtd/nand/raw/sunxi_nand.c
@@ -544,7 +544,7 @@ static void sunxi_nfc_write_buf(struct mtd_info *mtd, const uint8_t *buf,
static uint8_t sunxi_nfc_read_byte(struct mtd_info *mtd)
{
- uint8_t ret;
+ uint8_t ret = 0;
sunxi_nfc_read_buf(mtd, &ret, 1);
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 12/24] mtd: rawnand: sunxi: Allow selection of this driver when COMPILE_TEST=y
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (10 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 11/24] mtd: rawnand: sunxi: Make sure ret is initialized in sunxi_nfc_read_byte() Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 13/24] mtd: rawnand: fscm: Avoid collision on PC def when compiling for MIPS Boris Brezillon
` (14 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
It just makes NAND maintainers' life easier by allowing them to
compile-test this driver without having ARCH_SUNXI enabled.
We also need to add a dependency on HAS_IOMEM to make sure the driver
compiles correctly.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
index 539b0619f53a..ee836f7d7b8b 100644
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
@@ -518,7 +518,8 @@ config MTD_NAND_XWAY
config MTD_NAND_SUNXI
tristate "Support for NAND on Allwinner SoCs"
- depends on ARCH_SUNXI
+ depends on ARCH_SUNXI || COMPILE_TEST
+ depends on HAS_IOMEM
help
Enables support for NAND Flash chips on Allwinner SoCs.
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 13/24] mtd: rawnand: fscm: Avoid collision on PC def when compiling for MIPS
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (11 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 12/24] mtd: rawnand: sunxi: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 14/24] mtd: rawnand: fsmc: Use uintptr_t casts instead of unsigned ones Boris Brezillon
` (13 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
We want to allow this driver to be selected when COMPILE_TEST=y, this
means the driver can be compiled for any arch, including MIPS. When
compiling this driver for MIPS, we end up with a collision on the 'PC'
macro definition (also defined in arch/mips/include/asm/ptrace.h).
Prefix the fsmc one with FSMC_ to avoid this problem.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/fsmc_nand.c | 29 +++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)
diff --git a/drivers/mtd/nand/raw/fsmc_nand.c b/drivers/mtd/nand/raw/fsmc_nand.c
index f4a5a317d4ae..d71c49f50e77 100644
--- a/drivers/mtd/nand/raw/fsmc_nand.c
+++ b/drivers/mtd/nand/raw/fsmc_nand.c
@@ -62,7 +62,7 @@
reg)
/* fsmc controller registers for NAND flash */
-#define PC 0x00
+#define FSMC_PC 0x00
/* pc register definitions */
#define FSMC_RESET (1 << 0)
#define FSMC_WAITON (1 << 1)
@@ -273,12 +273,13 @@ static void fsmc_nand_setup(struct fsmc_nand_data *host,
tset = (tims->tset & FSMC_TSET_MASK) << FSMC_TSET_SHIFT;
if (host->nand.options & NAND_BUSWIDTH_16)
- writel_relaxed(value | FSMC_DEVWID_16, host->regs_va + PC);
+ writel_relaxed(value | FSMC_DEVWID_16,
+ host->regs_va + FSMC_PC);
else
- writel_relaxed(value | FSMC_DEVWID_8, host->regs_va + PC);
+ writel_relaxed(value | FSMC_DEVWID_8, host->regs_va + FSMC_PC);
- writel_relaxed(readl(host->regs_va + PC) | tclr | tar,
- host->regs_va + PC);
+ writel_relaxed(readl(host->regs_va + FSMC_PC) | tclr | tar,
+ host->regs_va + FSMC_PC);
writel_relaxed(thiz | thold | twait | tset, host->regs_va + COMM);
writel_relaxed(thiz | thold | twait | tset, host->regs_va + ATTRIB);
}
@@ -371,12 +372,12 @@ static void fsmc_enable_hwecc(struct mtd_info *mtd, int mode)
{
struct fsmc_nand_data *host = mtd_to_fsmc(mtd);
- writel_relaxed(readl(host->regs_va + PC) & ~FSMC_ECCPLEN_256,
- host->regs_va + PC);
- writel_relaxed(readl(host->regs_va + PC) & ~FSMC_ECCEN,
- host->regs_va + PC);
- writel_relaxed(readl(host->regs_va + PC) | FSMC_ECCEN,
- host->regs_va + PC);
+ writel_relaxed(readl(host->regs_va + FSMC_PC) & ~FSMC_ECCPLEN_256,
+ host->regs_va + FSMC_PC);
+ writel_relaxed(readl(host->regs_va + FSMC_PC) & ~FSMC_ECCEN,
+ host->regs_va + FSMC_PC);
+ writel_relaxed(readl(host->regs_va + FSMC_PC) | FSMC_ECCEN,
+ host->regs_va + FSMC_PC);
}
/*
@@ -618,11 +619,11 @@ static void fsmc_select_chip(struct mtd_info *mtd, int chipnr)
if (chipnr > 0)
return;
- pc = readl(host->regs_va + PC);
+ pc = readl(host->regs_va + FSMC_PC);
if (chipnr < 0)
- writel_relaxed(pc & ~FSMC_ENABLE, host->regs_va + PC);
+ writel_relaxed(pc & ~FSMC_ENABLE, host->regs_va + FSMC_PC);
else
- writel_relaxed(pc | FSMC_ENABLE, host->regs_va + PC);
+ writel_relaxed(pc | FSMC_ENABLE, host->regs_va + FSMC_PC);
/* nCE line must be asserted before starting any operation */
mb();
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 14/24] mtd: rawnand: fsmc: Use uintptr_t casts instead of unsigned ones
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (12 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 13/24] mtd: rawnand: fscm: Avoid collision on PC def when compiling for MIPS Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 15/24] mtd: rawnand: fsmc: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
` (12 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
uintptr_t should be used when casting a pointer to an unsigned int so
that the code compiles without warnings even on 64-bit architectures.
This is needed if we want to allow selection of this driver when
COMPILE_TEST=y.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/fsmc_nand.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/mtd/nand/raw/fsmc_nand.c b/drivers/mtd/nand/raw/fsmc_nand.c
index d71c49f50e77..527bebc7e6c9 100644
--- a/drivers/mtd/nand/raw/fsmc_nand.c
+++ b/drivers/mtd/nand/raw/fsmc_nand.c
@@ -547,7 +547,7 @@ static void fsmc_write_buf(struct mtd_info *mtd, const uint8_t *buf, int len)
struct fsmc_nand_data *host = mtd_to_fsmc(mtd);
int i;
- if (IS_ALIGNED((uint32_t)buf, sizeof(uint32_t)) &&
+ if (IS_ALIGNED((uintptr_t)buf, sizeof(uint32_t)) &&
IS_ALIGNED(len, sizeof(uint32_t))) {
uint32_t *p = (uint32_t *)buf;
len = len >> 2;
@@ -570,7 +570,7 @@ static void fsmc_read_buf(struct mtd_info *mtd, uint8_t *buf, int len)
struct fsmc_nand_data *host = mtd_to_fsmc(mtd);
int i;
- if (IS_ALIGNED((uint32_t)buf, sizeof(uint32_t)) &&
+ if (IS_ALIGNED((uintptr_t)buf, sizeof(uint32_t)) &&
IS_ALIGNED(len, sizeof(uint32_t))) {
uint32_t *p = (uint32_t *)buf;
len = len >> 2;
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 15/24] mtd: rawnand: fsmc: Allow selection of this driver when COMPILE_TEST=y
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (13 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 14/24] mtd: rawnand: fsmc: Use uintptr_t casts instead of unsigned ones Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 16/24] memory: fsl_ifc: " Boris Brezillon
` (11 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
It just makes NAND maintainers' life easier by allowing them to
compile-test this driver without having PLAT_SPEAR, ARCH_NOMADIK,
ARCH_U8500 or MACH_U300 enabled.
We also need to add a dependency on HAS_IOMEM to make sure the driver
compiles correctly.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/Kconfig | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
index ee836f7d7b8b..29d360f984c9 100644
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
@@ -503,8 +503,9 @@ config MTD_NAND_JZ4780
config MTD_NAND_FSMC
tristate "Support for NAND on ST Micros FSMC"
- depends on OF
- depends on PLAT_SPEAR || ARCH_NOMADIK || ARCH_U8500 || MACH_U300
+ depends on OF && HAS_IOMEM
+ depends on PLAT_SPEAR || ARCH_NOMADIK || ARCH_U8500 || MACH_U300 || \
+ COMPILE_TEST
help
Enables support for NAND Flash chips on the ST Microelectronics
Flexible Static Memory Controller (FSMC)
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 16/24] memory: fsl_ifc: Allow selection of this driver when COMPILE_TEST=y
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (14 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 15/24] mtd: rawnand: fsmc: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 17/24] mtd: rawnand: fsl_ifc: Add an __iomem specifier on eccstat_regs Boris Brezillon
` (10 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
It just makes maintainers' life easier by allowing them to compile-test
this driver without having FSL_SOC, ARCH_LAYERSCAPE or SOC_LS1021A
enabled.
We also need to add a dependency on HAS_IOMEM to make sure the
driver compiles correctly.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/memory/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/memory/Kconfig b/drivers/memory/Kconfig
index 8d731d6c3e54..78457ab2cbc4 100644
--- a/drivers/memory/Kconfig
+++ b/drivers/memory/Kconfig
@@ -116,7 +116,8 @@ config FSL_CORENET_CF
config FSL_IFC
bool
- depends on FSL_SOC || ARCH_LAYERSCAPE || SOC_LS1021A
+ depends on FSL_SOC || ARCH_LAYERSCAPE || SOC_LS1021A || COMPILE_TEST
+ depends on HAS_IOMEM
config JZ4780_NEMC
bool "Ingenic JZ4780 SoC NEMC driver"
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 17/24] mtd: rawnand: fsl_ifc: Add an __iomem specifier on eccstat_regs
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (15 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 16/24] memory: fsl_ifc: " Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 18/24] mtd: rawnand: fsl_ifc: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
` (9 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
The local eccstat_regs variable in fsl_ifc_run_command() is missing an
__iomem specifier, and sparce complains about that.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/fsl_ifc_nand.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/fsl_ifc_nand.c b/drivers/mtd/nand/raw/fsl_ifc_nand.c
index 382b67e97174..75d3c951f61a 100644
--- a/drivers/mtd/nand/raw/fsl_ifc_nand.c
+++ b/drivers/mtd/nand/raw/fsl_ifc_nand.c
@@ -225,7 +225,7 @@ static void fsl_ifc_run_command(struct mtd_info *mtd)
int bufnum = nctrl->page & priv->bufnum_mask;
int sector_start = bufnum * chip->ecc.steps;
int sector_end = sector_start + chip->ecc.steps - 1;
- __be32 *eccstat_regs;
+ __be32 __iomem *eccstat_regs;
eccstat_regs = ifc->ifc_nand.nand_eccstat;
eccstat = ifc_in32(&eccstat_regs[sector_start / 4]);
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 18/24] mtd: rawnand: fsl_ifc: Allow selection of this driver when COMPILE_TEST=y
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (16 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 17/24] mtd: rawnand: fsl_ifc: Add an __iomem specifier on eccstat_regs Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 19/24] MIPS: txx9: Move the ndfc.h header to include/linux/platform_data/txx9 Boris Brezillon
` (8 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
It just makes maintainers' life easier by allowing them to compile-test
this driver without having FSL_SOC, ARCH_LAYERSCAPE or SOC_LS1021A
enabled.
We also need to add a dependency on HAS_IOMEM to make sure the
driver compiles correctly.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
index 29d360f984c9..dc6c5aff4172 100644
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
@@ -408,7 +408,8 @@ config MTD_NAND_FSL_ELBC
config MTD_NAND_FSL_IFC
tristate "NAND support for Freescale IFC controller"
- depends on FSL_SOC || ARCH_LAYERSCAPE || SOC_LS1021A
+ depends on FSL_SOC || ARCH_LAYERSCAPE || SOC_LS1021A || COMPILE_TEST
+ depends on HAS_IOMEM
select FSL_IFC
select MEMORY
help
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 19/24] MIPS: txx9: Move the ndfc.h header to include/linux/platform_data/txx9
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (17 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 18/24] mtd: rawnand: fsl_ifc: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 20/24] mtd: rawnand: txx9ndfmc: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
` (7 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
This way we will be able to compile the ndfmc driver when
COMPILE_TEST=y.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
arch/mips/txx9/generic/setup.c | 2 +-
arch/mips/txx9/generic/setup_tx4938.c | 2 +-
arch/mips/txx9/generic/setup_tx4939.c | 2 +-
drivers/mtd/nand/raw/txx9ndfmc.c | 2 +-
{arch/mips/include/asm => include/linux/platform_data}/txx9/ndfmc.h | 6 +++---
5 files changed, 7 insertions(+), 7 deletions(-)
rename {arch/mips/include/asm => include/linux/platform_data}/txx9/ndfmc.h (91%)
diff --git a/arch/mips/txx9/generic/setup.c b/arch/mips/txx9/generic/setup.c
index 1791a44ee570..aa47932abd28 100644
--- a/arch/mips/txx9/generic/setup.c
+++ b/arch/mips/txx9/generic/setup.c
@@ -20,6 +20,7 @@
#include <linux/err.h>
#include <linux/gpio/driver.h>
#include <linux/platform_device.h>
+#include <linux/platform_data/txx9/ndfmc.h>
#include <linux/serial_core.h>
#include <linux/mtd/physmap.h>
#include <linux/leds.h>
@@ -35,7 +36,6 @@
#include <asm/txx9/generic.h>
#include <asm/txx9/pci.h>
#include <asm/txx9tmr.h>
-#include <asm/txx9/ndfmc.h>
#include <asm/txx9/dmac.h>
#ifdef CONFIG_CPU_TX49XX
#include <asm/txx9/tx4938.h>
diff --git a/arch/mips/txx9/generic/setup_tx4938.c b/arch/mips/txx9/generic/setup_tx4938.c
index 85d1795652da..17395d5d15ca 100644
--- a/arch/mips/txx9/generic/setup_tx4938.c
+++ b/arch/mips/txx9/generic/setup_tx4938.c
@@ -17,13 +17,13 @@
#include <linux/ptrace.h>
#include <linux/mtd/physmap.h>
#include <linux/platform_device.h>
+#include <linux/platform_data/txx9/ndfmc.h>
#include <asm/reboot.h>
#include <asm/traps.h>
#include <asm/txx9irq.h>
#include <asm/txx9tmr.h>
#include <asm/txx9pio.h>
#include <asm/txx9/generic.h>
-#include <asm/txx9/ndfmc.h>
#include <asm/txx9/dmac.h>
#include <asm/txx9/tx4938.h>
diff --git a/arch/mips/txx9/generic/setup_tx4939.c b/arch/mips/txx9/generic/setup_tx4939.c
index 274928987a21..360c388f4c82 100644
--- a/arch/mips/txx9/generic/setup_tx4939.c
+++ b/arch/mips/txx9/generic/setup_tx4939.c
@@ -21,13 +21,13 @@
#include <linux/ptrace.h>
#include <linux/mtd/physmap.h>
#include <linux/platform_device.h>
+#include <linux/platform_data/txx9/ndfmc.h>
#include <asm/bootinfo.h>
#include <asm/reboot.h>
#include <asm/traps.h>
#include <asm/txx9irq.h>
#include <asm/txx9tmr.h>
#include <asm/txx9/generic.h>
-#include <asm/txx9/ndfmc.h>
#include <asm/txx9/dmac.h>
#include <asm/txx9/tx4939.h>
diff --git a/drivers/mtd/nand/raw/txx9ndfmc.c b/drivers/mtd/nand/raw/txx9ndfmc.c
index b567d212fe7d..04d57474ef97 100644
--- a/drivers/mtd/nand/raw/txx9ndfmc.c
+++ b/drivers/mtd/nand/raw/txx9ndfmc.c
@@ -20,7 +20,7 @@
#include <linux/mtd/nand_ecc.h>
#include <linux/mtd/partitions.h>
#include <linux/io.h>
-#include <asm/txx9/ndfmc.h>
+#include <linux/platform_data/txx9/ndfmc.h>
/* TXX9 NDFMC Registers */
#define TXX9_NDFDTR 0x00
diff --git a/arch/mips/include/asm/txx9/ndfmc.h b/include/linux/platform_data/txx9/ndfmc.h
similarity index 91%
rename from arch/mips/include/asm/txx9/ndfmc.h
rename to include/linux/platform_data/txx9/ndfmc.h
index fa67f3df78fc..fc172627d54e 100644
--- a/arch/mips/include/asm/txx9/ndfmc.h
+++ b/include/linux/platform_data/txx9/ndfmc.h
@@ -5,8 +5,8 @@
*
* (C) Copyright TOSHIBA CORPORATION 2007
*/
-#ifndef __ASM_TXX9_NDFMC_H
-#define __ASM_TXX9_NDFMC_H
+#ifndef __TXX9_NDFMC_H
+#define __TXX9_NDFMC_H
#define NDFMC_PLAT_FLAG_USE_BSPRT 0x01
#define NDFMC_PLAT_FLAG_NO_RSTR 0x02
@@ -27,4 +27,4 @@ struct txx9ndfmc_platform_data {
void txx9_ndfmc_init(unsigned long baseaddr,
const struct txx9ndfmc_platform_data *plat_data);
-#endif /* __ASM_TXX9_NDFMC_H */
+#endif /* __TXX9_NDFMC_H */
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 20/24] mtd: rawnand: txx9ndfmc: Allow selection of this driver when COMPILE_TEST=y
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (18 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 19/24] MIPS: txx9: Move the ndfc.h header to include/linux/platform_data/txx9 Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 21/24] MIPS: jz4740: Move jz4740_nand.h header to include/linux/platform_data/jz4740 Boris Brezillon
` (6 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
It just makes NAND maintainers' life easier by allowing them to
compile-test this driver without having SOC_TX4938 or SOC_TX4939
enabled.
We also need to add a dependency on HAS_IOMEM to make sure the driver
compiles correctly.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
index dc6c5aff4172..f4bbc90ee250 100644
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
@@ -471,7 +471,8 @@ config MTD_NAND_DAVINCI
config MTD_NAND_TXX9NDFMC
tristate "NAND Flash support for TXx9 SoC"
- depends on SOC_TX4938 || SOC_TX4939
+ depends on SOC_TX4938 || SOC_TX4939 || COMPILE_TEST
+ depends on HAS_IOMEM
help
This enables the NAND flash controller on the TXx9 SoCs.
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 21/24] MIPS: jz4740: Move jz4740_nand.h header to include/linux/platform_data/jz4740
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (19 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 20/24] mtd: rawnand: txx9ndfmc: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 22/24] mtd: rawnand: jz4740: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
` (5 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
This way we will be able to compile the jz4740_nand driver when
COMPILE_TEST=y.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
arch/mips/jz4740/board-qi_lb60.c | 3 ++-
drivers/mtd/nand/raw/jz4740_nand.c | 2 +-
.../mach-jz4740 => include/linux/platform_data/jz4740}/jz4740_nand.h | 4 ++--
3 files changed, 5 insertions(+), 4 deletions(-)
rename {arch/mips/include/asm/mach-jz4740 => include/linux/platform_data/jz4740}/jz4740_nand.h (91%)
diff --git a/arch/mips/jz4740/board-qi_lb60.c b/arch/mips/jz4740/board-qi_lb60.c
index 60f0767507c6..af0c8ace0141 100644
--- a/arch/mips/jz4740/board-qi_lb60.c
+++ b/arch/mips/jz4740/board-qi_lb60.c
@@ -29,10 +29,11 @@
#include <linux/power/gpio-charger.h>
#include <linux/pwm.h>
+#include <linux/platform_data/jz4740/jz4740_nand.h>
+
#include <asm/mach-jz4740/gpio.h>
#include <asm/mach-jz4740/jz4740_fb.h>
#include <asm/mach-jz4740/jz4740_mmc.h>
-#include <asm/mach-jz4740/jz4740_nand.h>
#include <linux/regulator/fixed.h>
#include <linux/regulator/machine.h>
diff --git a/drivers/mtd/nand/raw/jz4740_nand.c b/drivers/mtd/nand/raw/jz4740_nand.c
index 613b00a9604b..a0254461812d 100644
--- a/drivers/mtd/nand/raw/jz4740_nand.c
+++ b/drivers/mtd/nand/raw/jz4740_nand.c
@@ -25,7 +25,7 @@
#include <linux/gpio.h>
-#include <asm/mach-jz4740/jz4740_nand.h>
+#include <linux/platform_data/jz4740/jz4740_nand.h>
#define JZ_REG_NAND_CTRL 0x50
#define JZ_REG_NAND_ECC_CTRL 0x100
diff --git a/arch/mips/include/asm/mach-jz4740/jz4740_nand.h b/include/linux/platform_data/jz4740/jz4740_nand.h
similarity index 91%
rename from arch/mips/include/asm/mach-jz4740/jz4740_nand.h
rename to include/linux/platform_data/jz4740/jz4740_nand.h
index f381d465e768..bc571f6d5ced 100644
--- a/arch/mips/include/asm/mach-jz4740/jz4740_nand.h
+++ b/include/linux/platform_data/jz4740/jz4740_nand.h
@@ -13,8 +13,8 @@
*
*/
-#ifndef __ASM_MACH_JZ4740_JZ4740_NAND_H__
-#define __ASM_MACH_JZ4740_JZ4740_NAND_H__
+#ifndef __JZ4740_NAND_H__
+#define __JZ4740_NAND_H__
#include <linux/mtd/rawnand.h>
#include <linux/mtd/partitions.h>
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 22/24] mtd: rawnand: jz4740: Allow selection of this driver when COMPILE_TEST=y
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (20 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 21/24] MIPS: jz4740: Move jz4740_nand.h header to include/linux/platform_data/jz4740 Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 23/24] mtd: rawnand: jz4780: Drop the dependency on MACH_JZ4780 Boris Brezillon
` (4 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
It just makes NAND maintainers' life easier by allowing them to
compile-test this driver without having MACH_JZ4740 enabled.
We also need to add a dependency on HAS_IOMEM to make sure the driver
compiles correctly.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
index f4bbc90ee250..7b5e97719c25 100644
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
@@ -492,7 +492,8 @@ config MTD_NAND_NUC900
config MTD_NAND_JZ4740
tristate "Support for JZ4740 SoC NAND controller"
- depends on MACH_JZ4740
+ depends on MACH_JZ4740 || COMPILE_TEST
+ depends on HAS_IOMEM
help
Enables support for NAND Flash on JZ4740 SoC based boards.
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 23/24] mtd: rawnand: jz4780: Drop the dependency on MACH_JZ4780
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (21 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 22/24] mtd: rawnand: jz4740: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
[not found] ` <CANc+2y5vjUpM_ikegaoKTtqehSmBY3y_r+1E6y93AoivRQqmfg@mail.gmail.com>
2018-07-09 20:09 ` [PATCH v2 24/24] memory: jz4780-nemc: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
` (3 subsequent siblings)
26 siblings, 1 reply; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
This MACH_JZ4780 dependency is taken care of by JZ4780_NEMC, no need
to repeat it here.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/mtd/nand/raw/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
index 7b5e97719c25..d9cd9608bc2d 100644
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
@@ -499,7 +499,7 @@ config MTD_NAND_JZ4740
config MTD_NAND_JZ4780
tristate "Support for NAND on JZ4780 SoC"
- depends on MACH_JZ4780 && JZ4780_NEMC
+ depends on JZ4780_NEMC
help
Enables support for NAND Flash connected to the NEMC on JZ4780 SoC
based boards, using the BCH controller for hardware error correction.
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* [PATCH v2 24/24] memory: jz4780-nemc: Allow selection of this driver when COMPILE_TEST=y
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (22 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 23/24] mtd: rawnand: jz4780: Drop the dependency on MACH_JZ4780 Boris Brezillon
@ 2018-07-09 20:09 ` Boris Brezillon
2018-07-09 20:45 ` [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Arnd Bergmann
` (2 subsequent siblings)
26 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 20:09 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: David Woodhouse, Brian Norris, Marek Vasut, linux-wireless,
Arnd Bergmann
It just makes maintainers' life easier by allowing them to compile-test
this driver without having MACH_JZ4780 enabled.
We also need to add a dependency on HAS_IOMEM to make sure the
driver compiles correctly.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
drivers/memory/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/memory/Kconfig b/drivers/memory/Kconfig
index 78457ab2cbc4..a642552dfdc9 100644
--- a/drivers/memory/Kconfig
+++ b/drivers/memory/Kconfig
@@ -122,7 +122,8 @@ config FSL_IFC
config JZ4780_NEMC
bool "Ingenic JZ4780 SoC NEMC driver"
default y
- depends on MACH_JZ4780
+ depends on MACH_JZ4780 || COMPILE_TEST
+ depends on HAS_IOMEM
help
This driver is for the NAND/External Memory Controller (NEMC) in
the Ingenic JZ4780. This controller is used to handle external
--
2.14.1
^ permalink raw reply related [flat|nested] 38+ messages in thread
* Re: [PATCH v2 11/24] mtd: rawnand: sunxi: Make sure ret is initialized in sunxi_nfc_read_byte()
2018-07-09 20:09 ` [PATCH v2 11/24] mtd: rawnand: sunxi: Make sure ret is initialized in sunxi_nfc_read_byte() Boris Brezillon
@ 2018-07-09 20:35 ` Arnd Bergmann
2018-07-09 21:00 ` Boris Brezillon
0 siblings, 1 reply; 38+ messages in thread
From: Arnd Bergmann @ 2018-07-09 20:35 UTC (permalink / raw)
To: Boris Brezillon
Cc: Ralf Baechle, open list:RALINK MIPS ARCHITECTURE,
Rafał Miłecki, Richard Weinberger, Miquel Raynal,
linux-mtd, David Woodhouse, Brian Norris, Marek Vasut,
linux-wireless
On Mon, Jul 9, 2018 at 10:09 PM, Boris Brezillon
<boris.brezillon@bootlin.com> wrote:
> Fixes the following smatch warning:
>
> drivers/mtd/nand/raw/sunxi_nand.c:551 sunxi_nfc_read_byte() error: uninitialized symbol 'ret'.
>
> Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
> ---
> drivers/mtd/nand/raw/sunxi_nand.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mtd/nand/raw/sunxi_nand.c b/drivers/mtd/nand/raw/sunxi_nand.c
> index 99043c3a4fa7..4b11cd4a79be 100644
> --- a/drivers/mtd/nand/raw/sunxi_nand.c
> +++ b/drivers/mtd/nand/raw/sunxi_nand.c
> @@ -544,7 +544,7 @@ static void sunxi_nfc_write_buf(struct mtd_info *mtd, const uint8_t *buf,
>
> static uint8_t sunxi_nfc_read_byte(struct mtd_info *mtd)
> {
> - uint8_t ret;
> + uint8_t ret = 0;
>
> sunxi_nfc_read_buf(mtd, &ret, 1);
>
Should there perhaps be a warning when no data was returned after a timeout?
Arnd
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (23 preceding siblings ...)
2018-07-09 20:09 ` [PATCH v2 24/24] memory: jz4780-nemc: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
@ 2018-07-09 20:45 ` Arnd Bergmann
2018-07-10 18:51 ` Paul Burton
2018-07-18 7:13 ` Miquel Raynal
26 siblings, 0 replies; 38+ messages in thread
From: Arnd Bergmann @ 2018-07-09 20:45 UTC (permalink / raw)
To: Boris Brezillon
Cc: Ralf Baechle, open list:RALINK MIPS ARCHITECTURE,
Rafał Miłecki, Richard Weinberger, Miquel Raynal,
linux-mtd, David Woodhouse, Brian Norris, Marek Vasut,
linux-wireless
On Mon, Jul 9, 2018 at 10:09 PM, Boris Brezillon
<boris.brezillon@bootlin.com> wrote:
> Hello,
>
> This is an attempt at adding "depends || COMPILE_TEST" to all NAND
> drivers that have no compile-time dependencies on arch
> features/headers.
>
> This will hopefully help us (NAND/MTD maintainers) in detecting build
> issues earlier. Unfortunately we still have a few drivers that can't
> easily be modified to be arch independent.
>
> I tried to put all patches that only touch the NAND subsystem first,
> so that they can be applied even if other patches are being discussed.
>
> Don't hesitate to point any missing dependencies when compiled with
> COMPILE_TEST. I didn't have any problem when compiling, but that might
> be because the dependencies were already selected.
Looks good to me overall.
> In this v2, I tried to fix all warnings/errors reported by kbuild/0day
> robots. The only remaining ones are those in omap_elm.c which seems to
> do some weird cpu_to_be32() conversions. I guess I could replace those
> by iowrite32be() calls (or just add (__force __u32)), but I don't want
> to risk a regression on this driver, so I'm just leaving it for someone
> else to fix :P.
Agreed, this is definedly very odd code. It looks like the intention
is to write all the bits in reverse order, but four bytes at a time. I'm
fairly sure the current implementation cannot work on big-endian,
in particularly this line:
val = cpu_to_be32(*(u32 *) &ecc[0]) >> 12;
Since shifting a number after the byteswap is not well-defined.
It's probably correct on little-endian, but it's not clear what the
best way would be to write this is an endian-neutral way.
Arnd
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v2 11/24] mtd: rawnand: sunxi: Make sure ret is initialized in sunxi_nfc_read_byte()
2018-07-09 20:35 ` Arnd Bergmann
@ 2018-07-09 21:00 ` Boris Brezillon
0 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-09 21:00 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Ralf Baechle, open list:RALINK MIPS ARCHITECTURE,
Rafał Miłecki, Richard Weinberger, Miquel Raynal,
linux-mtd, David Woodhouse, Brian Norris, Marek Vasut,
linux-wireless
On Mon, 9 Jul 2018 22:35:56 +0200
Arnd Bergmann <arnd@arndb.de> wrote:
> On Mon, Jul 9, 2018 at 10:09 PM, Boris Brezillon
> <boris.brezillon@bootlin.com> wrote:
> > Fixes the following smatch warning:
> >
> > drivers/mtd/nand/raw/sunxi_nand.c:551 sunxi_nfc_read_byte() error: uninitialized symbol 'ret'.
> >
> > Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
> > ---
> > drivers/mtd/nand/raw/sunxi_nand.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/mtd/nand/raw/sunxi_nand.c b/drivers/mtd/nand/raw/sunxi_nand.c
> > index 99043c3a4fa7..4b11cd4a79be 100644
> > --- a/drivers/mtd/nand/raw/sunxi_nand.c
> > +++ b/drivers/mtd/nand/raw/sunxi_nand.c
> > @@ -544,7 +544,7 @@ static void sunxi_nfc_write_buf(struct mtd_info *mtd, const uint8_t *buf,
> >
> > static uint8_t sunxi_nfc_read_byte(struct mtd_info *mtd)
> > {
> > - uint8_t ret;
> > + uint8_t ret = 0;
> >
> > sunxi_nfc_read_buf(mtd, &ret, 1);
> >
>
> Should there perhaps be a warning when no data was returned after a timeout?
We're planning to move this driver to ->exec_op() soon, and with
->exec_op() errors are properly propagated to the core. I guess we can
live with this lack of dev_warn() for a bit longer :-).
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v2 23/24] mtd: rawnand: jz4780: Drop the dependency on MACH_JZ4780
[not found] ` <CANc+2y5vjUpM_ikegaoKTtqehSmBY3y_r+1E6y93AoivRQqmfg@mail.gmail.com>
@ 2018-07-10 17:10 ` Boris Brezillon
2018-07-11 17:24 ` PrasannaKumar Muralidharan
0 siblings, 1 reply; 38+ messages in thread
From: Boris Brezillon @ 2018-07-10 17:10 UTC (permalink / raw)
To: PrasannaKumar Muralidharan
Cc: Ralf Baechle, Linux-MIPS, Rafał Miłecki,
Richard Weinberger, Miquel Raynal, linux-mtd, David Woodhouse,
Brian Norris, Marek Vasut, linux-wireless, Arnd Bergmann
Hi PrasannaKumar,
On Tue, 10 Jul 2018 22:16:50 +0530
PrasannaKumar Muralidharan <prasannatsmkumar@gmail.com> wrote:
> Hi Boris,
>
> On 10 July 2018 at 01:39, Boris Brezillon <boris.brezillon@bootlin.com>
> wrote:
>
> > This MACH_JZ4780 dependency is taken care of by JZ4780_NEMC, no need
> > to repeat it here.
> >
> > Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
> > ---
> > drivers/mtd/nand/raw/Kconfig | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
> > index 7b5e97719c25..d9cd9608bc2d 100644
> > --- a/drivers/mtd/nand/raw/Kconfig
> > +++ b/drivers/mtd/nand/raw/Kconfig
> > @@ -499,7 +499,7 @@ config MTD_NAND_JZ4740
> >
> > config MTD_NAND_JZ4780
> > tristate "Support for NAND on JZ4780 SoC"
> > - depends on MACH_JZ4780 && JZ4780_NEMC
> > + depends on JZ4780_NEMC
> > help
> > Enables support for NAND Flash connected to the NEMC on JZ4780
> > SoC
> > based boards, using the BCH controller for hardware error
> > correction.
> > --
> > 2.14.1
> >
> >
> >
> JZ4780 has MLC NAND.
Hm, the NAND controller supports both MLC and SLC NANDs. Maybe there
are only boards with MLC NANDs, but that doesn't mean we should remove
the driver for the controller.
> As MLC NAND is not supported in mainline do you think
> this patch is required? Even wondering if the driver is required at all.
The fact that MLC NANDs are not supported by UBI is not necessarily
definitive. I have a branch with all the work we've done to add MLC
support to UBI [1]. If you have time to invest in it, feel free to take
over this work.
Anyway, the decision to remove this driver is not mine, and this patch
allows me to at least compile-test this driver.
Regards,
Boris
[1]https://github.com/bbrezillon/linux/commits/nand/mlc
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (24 preceding siblings ...)
2018-07-09 20:45 ` [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Arnd Bergmann
@ 2018-07-10 18:51 ` Paul Burton
2018-07-18 7:13 ` Miquel Raynal
26 siblings, 0 replies; 38+ messages in thread
From: Paul Burton @ 2018-07-10 18:51 UTC (permalink / raw)
To: Boris Brezillon
Cc: Ralf Baechle, linux-mips, Rafał Miłecki,
Richard Weinberger, Miquel Raynal, linux-mtd, David Woodhouse,
Brian Norris, Marek Vasut, linux-wireless, Arnd Bergmann
Hi Boris,
On Mon, Jul 09, 2018 at 10:09:21PM +0200, Boris Brezillon wrote:
> MIPS: txx9: Move the ndfc.h header to include/linux/platform_data/txx9
> mtd: rawnand: txx9ndfmc: Allow selection of this driver when
> COMPILE_TEST=y
> MIPS: jz4740: Move jz4740_nand.h header to
> include/linux/platform_data/jz4740
> mtd: rawnand: jz4740: Allow selection of this driver when
> COMPILE_TEST=y
> mtd: rawnand: jz4780: Drop the dependency on MACH_JZ4780
> memory: jz4780-nemc: Allow selection of this driver when
> COMPILE_TEST=y
>
> arch/mips/jz4740/board-qi_lb60.c | 3 +-
> arch/mips/txx9/generic/setup.c | 2 +-
> arch/mips/txx9/generic/setup_tx4938.c | 2 +-
> arch/mips/txx9/generic/setup_tx4939.c | 2 +-
> drivers/memory/Kconfig | 6 ++--
> drivers/mtd/nand/raw/Kconfig | 33 ++++++++++++++--------
> drivers/mtd/nand/raw/jz4740_nand.c | 2 +-
> drivers/mtd/nand/raw/txx9ndfmc.c | 2 +-
> .../linux/platform_data/jz4740}/jz4740_nand.h | 4 +--
> .../linux/platform_data}/txx9/ndfmc.h | 6 ++--
> rename {arch/mips/include/asm/mach-jz4740 => include/linux/platform_data/jz4740}/jz4740_nand.h (91%)
> rename {arch/mips/include/asm => include/linux/platform_data}/txx9/ndfmc.h (91%)
For the MIPS-related patches 19-24:
Acked-by: Paul Burton <paul.burton@mips.com>
Thanks,
Paul
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v2 04/24] mtd: rawnand: s3c2410: Allow selection of this driver when COMPILE_TEST=y
2018-07-09 20:09 ` [PATCH v2 04/24] mtd: rawnand: s3c2410: " Boris Brezillon
@ 2018-07-11 11:16 ` Boris Brezillon
2018-07-11 11:27 ` Arnd Bergmann
0 siblings, 1 reply; 38+ messages in thread
From: Boris Brezillon @ 2018-07-11 11:16 UTC (permalink / raw)
To: Ralf Baechle, linux-mips, Rafał Miłecki,
Boris Brezillon, Richard Weinberger, Miquel Raynal, linux-mtd
Cc: linux-wireless, Marek Vasut, Brian Norris, David Woodhouse,
Arnd Bergmann
On Mon, 9 Jul 2018 22:09:25 +0200
Boris Brezillon <boris.brezillon@bootlin.com> wrote:
> It just makes NAND maintainers' life easier by allowing them to
> compile-test this driver without having ARCH_S3C24XX or ARCH_S3C64XX
> enabled.
>
> We add a dependency on HAS_IOMEM to make sure the driver compiles
> correctly, and a dependency on !IA64 because the {read,write}s{bwl}()
> accessors are not defined for this architecture.
I see that SPARC does not define those accessors either. So I guess we
should add depends on !SPARC.
Arnd, any other way to know when the platform implements
{read,write}s{bwl}() accessors?
>
> Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
> ---
> drivers/mtd/nand/raw/Kconfig | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
> index 1488ad0a0199..e01b3da726c0 100644
> --- a/drivers/mtd/nand/raw/Kconfig
> +++ b/drivers/mtd/nand/raw/Kconfig
> @@ -119,7 +119,8 @@ config MTD_NAND_AU1550
>
> config MTD_NAND_S3C2410
> tristate "NAND Flash support for Samsung S3C SoCs"
> - depends on ARCH_S3C24XX || ARCH_S3C64XX
> + depends on ARCH_S3C24XX || ARCH_S3C64XX || COMPILE_TEST
> + depends on HAS_IOMEM && !IA64
> help
> This enables the NAND flash controller on the S3C24xx and S3C64xx
> SoCs
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v2 04/24] mtd: rawnand: s3c2410: Allow selection of this driver when COMPILE_TEST=y
2018-07-11 11:16 ` Boris Brezillon
@ 2018-07-11 11:27 ` Arnd Bergmann
2018-07-11 11:32 ` Boris Brezillon
0 siblings, 1 reply; 38+ messages in thread
From: Arnd Bergmann @ 2018-07-11 11:27 UTC (permalink / raw)
To: Boris Brezillon
Cc: Ralf Baechle, open list:RALINK MIPS ARCHITECTURE,
Rafał Miłecki, Richard Weinberger, Miquel Raynal,
linux-mtd, linux-wireless, Marek Vasut, Brian Norris,
David Woodhouse
On Wed, Jul 11, 2018 at 1:16 PM, Boris Brezillon
<boris.brezillon@bootlin.com> wrote:
> On Mon, 9 Jul 2018 22:09:25 +0200
> Boris Brezillon <boris.brezillon@bootlin.com> wrote:
>
>> It just makes NAND maintainers' life easier by allowing them to
>> compile-test this driver without having ARCH_S3C24XX or ARCH_S3C64XX
>> enabled.
>>
>> We add a dependency on HAS_IOMEM to make sure the driver compiles
>> correctly, and a dependency on !IA64 because the {read,write}s{bwl}()
>> accessors are not defined for this architecture.
>
> I see that SPARC does not define those accessors either. So I guess we
> should add depends on !SPARC.
>
> Arnd, any other way to know when the platform implements
> {read,write}s{bwl}() accessors?
I'd just consider that a bug, and send a patch to fix sparc64 if it's broken.
sparc32 appears to have these, and when Thierry sent the patch
to implement them everywhere[1], he said that he tested sparc64 as
well, so either something regressed since then, or his testing
was incomplete. Either way, the correct answer IMHO would be to
make it work rather than to add infrastructure around the broken
configurations.
Arnd
[1] https://lwn.net/Articles/604819/
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v2 04/24] mtd: rawnand: s3c2410: Allow selection of this driver when COMPILE_TEST=y
2018-07-11 11:27 ` Arnd Bergmann
@ 2018-07-11 11:32 ` Boris Brezillon
2018-07-11 12:09 ` Arnd Bergmann
0 siblings, 1 reply; 38+ messages in thread
From: Boris Brezillon @ 2018-07-11 11:32 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Ralf Baechle, open list:RALINK MIPS ARCHITECTURE,
Rafał Miłecki, Richard Weinberger, Miquel Raynal,
linux-mtd, linux-wireless, Marek Vasut, Brian Norris,
David Woodhouse
On Wed, 11 Jul 2018 13:27:53 +0200
Arnd Bergmann <arnd@arndb.de> wrote:
> On Wed, Jul 11, 2018 at 1:16 PM, Boris Brezillon
> <boris.brezillon@bootlin.com> wrote:
> > On Mon, 9 Jul 2018 22:09:25 +0200
> > Boris Brezillon <boris.brezillon@bootlin.com> wrote:
> >
> >> It just makes NAND maintainers' life easier by allowing them to
> >> compile-test this driver without having ARCH_S3C24XX or ARCH_S3C64XX
> >> enabled.
> >>
> >> We add a dependency on HAS_IOMEM to make sure the driver compiles
> >> correctly, and a dependency on !IA64 because the {read,write}s{bwl}()
> >> accessors are not defined for this architecture.
> >
> > I see that SPARC does not define those accessors either. So I guess we
> > should add depends on !SPARC.
> >
> > Arnd, any other way to know when the platform implements
> > {read,write}s{bwl}() accessors?
>
> I'd just consider that a bug, and send a patch to fix sparc64 if it's broken.
> sparc32 appears to have these, and when Thierry sent the patch
> to implement them everywhere[1], he said that he tested sparc64 as
> well, so either something regressed since then, or his testing
> was incomplete. Either way, the correct answer IMHO would be to
> make it work rather than to add infrastructure around the broken
> configurations.
I guess the same goes for IA64 then.
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v2 04/24] mtd: rawnand: s3c2410: Allow selection of this driver when COMPILE_TEST=y
2018-07-11 11:32 ` Boris Brezillon
@ 2018-07-11 12:09 ` Arnd Bergmann
2018-07-11 13:01 ` Boris Brezillon
0 siblings, 1 reply; 38+ messages in thread
From: Arnd Bergmann @ 2018-07-11 12:09 UTC (permalink / raw)
To: Boris Brezillon
Cc: Ralf Baechle, open list:RALINK MIPS ARCHITECTURE,
Rafał Miłecki, Richard Weinberger, Miquel Raynal,
linux-mtd, linux-wireless, Marek Vasut, Brian Norris,
David Woodhouse
On Wed, Jul 11, 2018 at 1:32 PM, Boris Brezillon
<boris.brezillon@bootlin.com> wrote:
> On Wed, 11 Jul 2018 13:27:53 +0200
> Arnd Bergmann <arnd@arndb.de> wrote:
>
>> On Wed, Jul 11, 2018 at 1:16 PM, Boris Brezillon
>> <boris.brezillon@bootlin.com> wrote:
>> > On Mon, 9 Jul 2018 22:09:25 +0200
>> > Boris Brezillon <boris.brezillon@bootlin.com> wrote:
>> >
>> >> It just makes NAND maintainers' life easier by allowing them to
>> >> compile-test this driver without having ARCH_S3C24XX or ARCH_S3C64XX
>> >> enabled.
>> >>
>> >> We add a dependency on HAS_IOMEM to make sure the driver compiles
>> >> correctly, and a dependency on !IA64 because the {read,write}s{bwl}()
>> >> accessors are not defined for this architecture.
>> >
>> > I see that SPARC does not define those accessors either. So I guess we
>> > should add depends on !SPARC.
>> >
>> > Arnd, any other way to know when the platform implements
>> > {read,write}s{bwl}() accessors?
>>
>> I'd just consider that a bug, and send a patch to fix sparc64 if it's broken.
>> sparc32 appears to have these, and when Thierry sent the patch
>> to implement them everywhere[1], he said that he tested sparc64 as
>> well, so either something regressed since then, or his testing
>> was incomplete. Either way, the correct answer IMHO would be to
>> make it work rather than to add infrastructure around the broken
>> configurations.
>
> I guess the same goes for IA64 then.
Right. FWIW, I just tried it out and sent the respective arch patches.
Arnd
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v2 04/24] mtd: rawnand: s3c2410: Allow selection of this driver when COMPILE_TEST=y
2018-07-11 12:09 ` Arnd Bergmann
@ 2018-07-11 13:01 ` Boris Brezillon
0 siblings, 0 replies; 38+ messages in thread
From: Boris Brezillon @ 2018-07-11 13:01 UTC (permalink / raw)
To: Arnd Bergmann, open list:RALINK MIPS ARCHITECTURE,
Rafał Miłecki
Cc: Ralf Baechle, Richard Weinberger, Miquel Raynal, linux-mtd,
linux-wireless, Marek Vasut, Brian Norris, David Woodhouse
On Wed, 11 Jul 2018 14:09:19 +0200
Arnd Bergmann <arnd@arndb.de> wrote:
> On Wed, Jul 11, 2018 at 1:32 PM, Boris Brezillon
> <boris.brezillon@bootlin.com> wrote:
> > On Wed, 11 Jul 2018 13:27:53 +0200
> > Arnd Bergmann <arnd@arndb.de> wrote:
> >
> >> On Wed, Jul 11, 2018 at 1:16 PM, Boris Brezillon
> >> <boris.brezillon@bootlin.com> wrote:
> >> > On Mon, 9 Jul 2018 22:09:25 +0200
> >> > Boris Brezillon <boris.brezillon@bootlin.com> wrote:
> >> >
> >> >> It just makes NAND maintainers' life easier by allowing them to
> >> >> compile-test this driver without having ARCH_S3C24XX or ARCH_S3C64XX
> >> >> enabled.
> >> >>
> >> >> We add a dependency on HAS_IOMEM to make sure the driver compiles
> >> >> correctly, and a dependency on !IA64 because the {read,write}s{bwl}()
> >> >> accessors are not defined for this architecture.
> >> >
> >> > I see that SPARC does not define those accessors either. So I guess we
> >> > should add depends on !SPARC.
> >> >
> >> > Arnd, any other way to know when the platform implements
> >> > {read,write}s{bwl}() accessors?
> >>
> >> I'd just consider that a bug, and send a patch to fix sparc64 if it's broken.
> >> sparc32 appears to have these, and when Thierry sent the patch
> >> to implement them everywhere[1], he said that he tested sparc64 as
> >> well, so either something regressed since then, or his testing
> >> was incomplete. Either way, the correct answer IMHO would be to
> >> make it work rather than to add infrastructure around the broken
> >> configurations.
> >
> > I guess the same goes for IA64 then.
>
> Right. FWIW, I just tried it out and sent the respective arch patches.
Cool! Thanks for doing that.
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v2 23/24] mtd: rawnand: jz4780: Drop the dependency on MACH_JZ4780
2018-07-10 17:10 ` Boris Brezillon
@ 2018-07-11 17:24 ` PrasannaKumar Muralidharan
0 siblings, 0 replies; 38+ messages in thread
From: PrasannaKumar Muralidharan @ 2018-07-11 17:24 UTC (permalink / raw)
To: Boris Brezillon
Cc: Ralf Baechle, Linux-MIPS, Rafał Miłecki,
Richard Weinberger, Miquel Raynal, linux-mtd, David Woodhouse,
Brian Norris, Marek Vasut, linux-wireless, Arnd Bergmann
On 10 July 2018 at 22:40, Boris Brezillon <boris.brezillon@bootlin.com> wrote:
> Hi PrasannaKumar,
>
> On Tue, 10 Jul 2018 22:16:50 +0530
> PrasannaKumar Muralidharan <prasannatsmkumar@gmail.com> wrote:
>
>> Hi Boris,
>>
>> On 10 July 2018 at 01:39, Boris Brezillon <boris.brezillon@bootlin.com>
>> wrote:
>>
>> > This MACH_JZ4780 dependency is taken care of by JZ4780_NEMC, no need
>> > to repeat it here.
>> >
>> > Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
>> > ---
>> > drivers/mtd/nand/raw/Kconfig | 2 +-
>> > 1 file changed, 1 insertion(+), 1 deletion(-)
>> >
>> > diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
>> > index 7b5e97719c25..d9cd9608bc2d 100644
>> > --- a/drivers/mtd/nand/raw/Kconfig
>> > +++ b/drivers/mtd/nand/raw/Kconfig
>> > @@ -499,7 +499,7 @@ config MTD_NAND_JZ4740
>> >
>> > config MTD_NAND_JZ4780
>> > tristate "Support for NAND on JZ4780 SoC"
>> > - depends on MACH_JZ4780 && JZ4780_NEMC
>> > + depends on JZ4780_NEMC
>> > help
>> > Enables support for NAND Flash connected to the NEMC on JZ4780
>> > SoC
>> > based boards, using the BCH controller for hardware error
>> > correction.
>> > --
>> > 2.14.1
>> >
>> >
>> >
>> JZ4780 has MLC NAND.
>
> Hm, the NAND controller supports both MLC and SLC NANDs. Maybe there
> are only boards with MLC NANDs, but that doesn't mean we should remove
> the driver for the controller.
Creator CI20 board which uses JZ4780 SoC is supported by upstream as
of now. It has MLC NAND.
But I agree that removing the driver is too extreme.
>> As MLC NAND is not supported in mainline do you think
>> this patch is required? Even wondering if the driver is required at all.
>
> The fact that MLC NANDs are not supported by UBI is not necessarily
> definitive. I have a branch with all the work we've done to add MLC
> support to UBI [1]. If you have time to invest in it, feel free to take
> over this work.
I am afraid I don't have time as well as knowledge to work on it yet.
> Anyway, the decision to remove this driver is not mine, and this patch
> allows me to at least compile-test this driver.
>
> Regards,
>
> Boris
>
> [1]https://github.com/bbrezillon/linux/commits/nand/mlc
Thanks,
PrasannaKumar
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
` (25 preceding siblings ...)
2018-07-10 18:51 ` Paul Burton
@ 2018-07-18 7:13 ` Miquel Raynal
2018-07-18 7:15 ` Miquel Raynal
26 siblings, 1 reply; 38+ messages in thread
From: Miquel Raynal @ 2018-07-18 7:13 UTC (permalink / raw)
To: Boris Brezillon
Cc: Ralf Baechle, linux-mips, Rafał Miłecki,
Richard Weinberger, linux-mtd, David Woodhouse, Brian Norris,
Marek Vasut, linux-wireless, Arnd Bergmann
Hi Boris,
Boris Brezillon <boris.brezillon@bootlin.com> wrote on Mon, 9 Jul 2018
22:09:21 +0200:
> Hello,
>
> This is an attempt at adding "depends || COMPILE_TEST" to all NAND
> drivers that have no compile-time dependencies on arch
> features/headers.
>
> This will hopefully help us (NAND/MTD maintainers) in detecting build
> issues earlier. Unfortunately we still have a few drivers that can't
> easily be modified to be arch independent.
>
> I tried to put all patches that only touch the NAND subsystem first,
> so that they can be applied even if other patches are being discussed.
>
> Don't hesitate to point any missing dependencies when compiled with
> COMPILE_TEST. I didn't have any problem when compiling, but that might
> be because the dependencies were already selected.
>
> In this v2, I tried to fix all warnings/errors reported by kbuild/0day
> robots. The only remaining ones are those in omap_elm.c which seems to
> do some weird cpu_to_be32() conversions. I guess I could replace those
> by iowrite32be() calls (or just add (__force __u32)), but I don't want
> to risk a regression on this driver, so I'm just leaving it for someone
> else to fix :P.
>
> Regards,
>
> Boris
>
> Changes in v2:
> - Fix a few problems reported by kbuild robots and Stephen Rothwell
>
> Boris Brezillon (24):
> mtd: rawnand: atmel: Use uintptr_t casts instead of unsigned int
> mtd: rawnand: atmel: Add an __iomem cast on gen_pool_dma_alloc() call
> mtd: rawnand: atmel: Allow selection of this driver when
> COMPILE_TEST=y
> mtd: rawnand: s3c2410: Allow selection of this driver when
> COMPILE_TEST=y
> mtd: rawnand: orion: Avoid direct inclusion of asm headers
> mtd: rawnand: orion: Allow selection of this driver when
> COMPILE_TEST=y
> mtd: rawnand: davinci: Stop doing iomem pointer <-> u32 conversions
> mtd: rawnand: davinci: Use uintptr_t casts instead of unsigned ones
> mtd: rawnand: davinci: Allow selection of this driver when
> COMPILE_TEST=y
> mtd: rawnand: sunxi: Add an U suffix to NFC_PAGE_OP definition
> mtd: rawnand: sunxi: Make sure ret is initialized in
> sunxi_nfc_read_byte()
> mtd: rawnand: sunxi: Allow selection of this driver when
> COMPILE_TEST=y
> mtd: rawnand: fscm: Avoid collision on PC def when compiling for MIPS
> mtd: rawnand: fsmc: Use uintptr_t casts instead of unsigned ones
> mtd: rawnand: fsmc: Allow selection of this driver when COMPILE_TEST=y
> memory: fsl_ifc: Allow selection of this driver when COMPILE_TEST=y
> mtd: rawnand: fsl_ifc: Add an __iomem specifier on eccstat_regs
> mtd: rawnand: fsl_ifc: Allow selection of this driver when
> COMPILE_TEST=y
> MIPS: txx9: Move the ndfc.h header to include/linux/platform_data/txx9
> mtd: rawnand: txx9ndfmc: Allow selection of this driver when
> COMPILE_TEST=y
> MIPS: jz4740: Move jz4740_nand.h header to
> include/linux/platform_data/jz4740
> mtd: rawnand: jz4740: Allow selection of this driver when
> COMPILE_TEST=y
> mtd: rawnand: jz4780: Drop the dependency on MACH_JZ4780
> memory: jz4780-nemc: Allow selection of this driver when
> COMPILE_TEST=y
>
> arch/mips/jz4740/board-qi_lb60.c | 3 +-
> arch/mips/txx9/generic/setup.c | 2 +-
> arch/mips/txx9/generic/setup_tx4938.c | 2 +-
> arch/mips/txx9/generic/setup_tx4939.c | 2 +-
> drivers/memory/Kconfig | 6 ++--
> drivers/mtd/nand/raw/Kconfig | 33 ++++++++++++++--------
> drivers/mtd/nand/raw/atmel/nand-controller.c | 8 +++---
> drivers/mtd/nand/raw/davinci_nand.c | 33 ++++++++++------------
> drivers/mtd/nand/raw/fsl_ifc_nand.c | 2 +-
> drivers/mtd/nand/raw/fsmc_nand.c | 33 +++++++++++-----------
> drivers/mtd/nand/raw/jz4740_nand.c | 2 +-
> drivers/mtd/nand/raw/orion_nand.c | 2 +-
> drivers/mtd/nand/raw/sunxi_nand.c | 4 +--
> drivers/mtd/nand/raw/txx9ndfmc.c | 2 +-
> .../linux/platform_data/jz4740}/jz4740_nand.h | 4 +--
> .../linux/platform_data}/txx9/ndfmc.h | 6 ++--
> 16 files changed, 77 insertions(+), 67 deletions(-)
> rename {arch/mips/include/asm/mach-jz4740 => include/linux/platform_data/jz4740}/jz4740_nand.h (91%)
> rename {arch/mips/include/asm => include/linux/platform_data}/txx9/ndfmc.h (91%)
>
Series applied with some typo fixes in the commit log as well as a
proper indentation forced in drivers/mtd/nand/raw/Kconfig.
Thanks,
Miquèl
^ permalink raw reply [flat|nested] 38+ messages in thread
* Re: [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage
2018-07-18 7:13 ` Miquel Raynal
@ 2018-07-18 7:15 ` Miquel Raynal
0 siblings, 0 replies; 38+ messages in thread
From: Miquel Raynal @ 2018-07-18 7:15 UTC (permalink / raw)
To: Boris Brezillon
Cc: Ralf Baechle, linux-mips, Rafał Miłecki,
Richard Weinberger, linux-mtd, David Woodhouse, Brian Norris,
Marek Vasut, linux-wireless, Arnd Bergmann
Hi Miquel,
Miquel Raynal <miquel.raynal@bootlin.com> wrote on Wed, 18 Jul 2018
09:13:32 +0200:
> Hi Boris,
>
> Boris Brezillon <boris.brezillon@bootlin.com> wrote on Mon, 9 Jul 2018
> 22:09:21 +0200:
>
> > Hello,
> >
> > This is an attempt at adding "depends || COMPILE_TEST" to all NAND
> > drivers that have no compile-time dependencies on arch
> > features/headers.
> >
> > This will hopefully help us (NAND/MTD maintainers) in detecting build
> > issues earlier. Unfortunately we still have a few drivers that can't
> > easily be modified to be arch independent.
> >
> > I tried to put all patches that only touch the NAND subsystem first,
> > so that they can be applied even if other patches are being discussed.
> >
> > Don't hesitate to point any missing dependencies when compiled with
> > COMPILE_TEST. I didn't have any problem when compiling, but that might
> > be because the dependencies were already selected.
> >
> > In this v2, I tried to fix all warnings/errors reported by kbuild/0day
> > robots. The only remaining ones are those in omap_elm.c which seems to
> > do some weird cpu_to_be32() conversions. I guess I could replace those
> > by iowrite32be() calls (or just add (__force __u32)), but I don't want
> > to risk a regression on this driver, so I'm just leaving it for someone
> > else to fix :P.
> >
> > Regards,
> >
> > Boris
> >
> > Changes in v2:
> > - Fix a few problems reported by kbuild robots and Stephen Rothwell
> >
> > Boris Brezillon (24):
> > mtd: rawnand: atmel: Use uintptr_t casts instead of unsigned int
> > mtd: rawnand: atmel: Add an __iomem cast on gen_pool_dma_alloc() call
> > mtd: rawnand: atmel: Allow selection of this driver when
> > COMPILE_TEST=y
> > mtd: rawnand: s3c2410: Allow selection of this driver when
> > COMPILE_TEST=y
> > mtd: rawnand: orion: Avoid direct inclusion of asm headers
> > mtd: rawnand: orion: Allow selection of this driver when
> > COMPILE_TEST=y
> > mtd: rawnand: davinci: Stop doing iomem pointer <-> u32 conversions
> > mtd: rawnand: davinci: Use uintptr_t casts instead of unsigned ones
> > mtd: rawnand: davinci: Allow selection of this driver when
> > COMPILE_TEST=y
> > mtd: rawnand: sunxi: Add an U suffix to NFC_PAGE_OP definition
> > mtd: rawnand: sunxi: Make sure ret is initialized in
> > sunxi_nfc_read_byte()
> > mtd: rawnand: sunxi: Allow selection of this driver when
> > COMPILE_TEST=y
> > mtd: rawnand: fscm: Avoid collision on PC def when compiling for MIPS
> > mtd: rawnand: fsmc: Use uintptr_t casts instead of unsigned ones
> > mtd: rawnand: fsmc: Allow selection of this driver when COMPILE_TEST=y
> > memory: fsl_ifc: Allow selection of this driver when COMPILE_TEST=y
> > mtd: rawnand: fsl_ifc: Add an __iomem specifier on eccstat_regs
> > mtd: rawnand: fsl_ifc: Allow selection of this driver when
> > COMPILE_TEST=y
> > MIPS: txx9: Move the ndfc.h header to include/linux/platform_data/txx9
> > mtd: rawnand: txx9ndfmc: Allow selection of this driver when
> > COMPILE_TEST=y
> > MIPS: jz4740: Move jz4740_nand.h header to
> > include/linux/platform_data/jz4740
> > mtd: rawnand: jz4740: Allow selection of this driver when
> > COMPILE_TEST=y
> > mtd: rawnand: jz4780: Drop the dependency on MACH_JZ4780
> > memory: jz4780-nemc: Allow selection of this driver when
> > COMPILE_TEST=y
> >
> > arch/mips/jz4740/board-qi_lb60.c | 3 +-
> > arch/mips/txx9/generic/setup.c | 2 +-
> > arch/mips/txx9/generic/setup_tx4938.c | 2 +-
> > arch/mips/txx9/generic/setup_tx4939.c | 2 +-
> > drivers/memory/Kconfig | 6 ++--
> > drivers/mtd/nand/raw/Kconfig | 33 ++++++++++++++--------
> > drivers/mtd/nand/raw/atmel/nand-controller.c | 8 +++---
> > drivers/mtd/nand/raw/davinci_nand.c | 33 ++++++++++------------
> > drivers/mtd/nand/raw/fsl_ifc_nand.c | 2 +-
> > drivers/mtd/nand/raw/fsmc_nand.c | 33 +++++++++++-----------
> > drivers/mtd/nand/raw/jz4740_nand.c | 2 +-
> > drivers/mtd/nand/raw/orion_nand.c | 2 +-
> > drivers/mtd/nand/raw/sunxi_nand.c | 4 +--
> > drivers/mtd/nand/raw/txx9ndfmc.c | 2 +-
> > .../linux/platform_data/jz4740}/jz4740_nand.h | 4 +--
> > .../linux/platform_data}/txx9/ndfmc.h | 6 ++--
> > 16 files changed, 77 insertions(+), 67 deletions(-)
> > rename {arch/mips/include/asm/mach-jz4740 => include/linux/platform_data/jz4740}/jz4740_nand.h (91%)
> > rename {arch/mips/include/asm => include/linux/platform_data}/txx9/ndfmc.h (91%)
> >
>
> Series applied with some typo fixes in the commit log as well as a
> proper indentation forced in drivers/mtd/nand/raw/Kconfig.
Forgot to mention: minus orion and s3c patches that will need a v3.
>
> Thanks,
> Miquèl
^ permalink raw reply [flat|nested] 38+ messages in thread
end of thread, other threads:[~2018-07-18 7:51 UTC | newest]
Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-09 20:09 [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 01/24] mtd: rawnand: atmel: Use uintptr_t casts instead of unsigned int Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 02/24] mtd: rawnand: atmel: Add an __iomem cast on gen_pool_dma_alloc() call Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 03/24] mtd: rawnand: atmel: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 04/24] mtd: rawnand: s3c2410: " Boris Brezillon
2018-07-11 11:16 ` Boris Brezillon
2018-07-11 11:27 ` Arnd Bergmann
2018-07-11 11:32 ` Boris Brezillon
2018-07-11 12:09 ` Arnd Bergmann
2018-07-11 13:01 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 05/24] mtd: rawnand: orion: Avoid direct inclusion of asm headers Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 06/24] mtd: rawnand: orion: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 07/24] mtd: rawnand: davinci: Stop doing iomem pointer <-> u32 conversions Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 08/24] mtd: rawnand: davinci: Use uintptr_t casts instead of unsigned ones Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 09/24] mtd: rawnand: davinci: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 10/24] mtd: rawnand: sunxi: Add an U suffix to NFC_PAGE_OP definition Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 11/24] mtd: rawnand: sunxi: Make sure ret is initialized in sunxi_nfc_read_byte() Boris Brezillon
2018-07-09 20:35 ` Arnd Bergmann
2018-07-09 21:00 ` Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 12/24] mtd: rawnand: sunxi: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 13/24] mtd: rawnand: fscm: Avoid collision on PC def when compiling for MIPS Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 14/24] mtd: rawnand: fsmc: Use uintptr_t casts instead of unsigned ones Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 15/24] mtd: rawnand: fsmc: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 16/24] memory: fsl_ifc: " Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 17/24] mtd: rawnand: fsl_ifc: Add an __iomem specifier on eccstat_regs Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 18/24] mtd: rawnand: fsl_ifc: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 19/24] MIPS: txx9: Move the ndfc.h header to include/linux/platform_data/txx9 Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 20/24] mtd: rawnand: txx9ndfmc: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 21/24] MIPS: jz4740: Move jz4740_nand.h header to include/linux/platform_data/jz4740 Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 22/24] mtd: rawnand: jz4740: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
2018-07-09 20:09 ` [PATCH v2 23/24] mtd: rawnand: jz4780: Drop the dependency on MACH_JZ4780 Boris Brezillon
[not found] ` <CANc+2y5vjUpM_ikegaoKTtqehSmBY3y_r+1E6y93AoivRQqmfg@mail.gmail.com>
2018-07-10 17:10 ` Boris Brezillon
2018-07-11 17:24 ` PrasannaKumar Muralidharan
2018-07-09 20:09 ` [PATCH v2 24/24] memory: jz4780-nemc: Allow selection of this driver when COMPILE_TEST=y Boris Brezillon
2018-07-09 20:45 ` [PATCH v2 00/24] mtd: rawnand: Improve compile-test coverage Arnd Bergmann
2018-07-10 18:51 ` Paul Burton
2018-07-18 7:13 ` Miquel Raynal
2018-07-18 7:15 ` Miquel Raynal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).