Re: [PATCH 1/2] ARM: omap1: add nand_chip declaration

From: Miquel Raynal
Date: Wed Sep 26 2018 - 09:23:46 EST


Hi Arnd,

Thanks for the fix, sorry for breaking the build.

Arnd Bergmann <arnd@xxxxxxxx> wrote on Wed, 26 Sep 2018 15:04:38 +0200:

> Recent MTD changes caused a minor build regression on OMAP1:
>
> In file included from arch/arm/mach-omap1/devices.c:31:
> arch/arm/mach-omap1/common.h:85:39: error: 'struct nand_chip' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
>
> Fixes: 1002aed789bc ("mtd: rawnand: plat_nand: Pass a nand_chip object to all platform_nand_ctrl hooks")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> arch/arm/mach-omap1/common.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm/mach-omap1/common.h b/arch/arm/mach-omap1/common.h
> index 11b87a4c84d4..82f2c065040a 100644
> --- a/arch/arm/mach-omap1/common.h
> +++ b/arch/arm/mach-omap1/common.h
> @@ -82,6 +82,7 @@ void omap1_restart(enum reboot_mode, const char *);
>
> extern void __init omap_check_revision(void);
>
> +struct nand_chip;
> extern void omap1_nand_cmd_ctl(struct nand_chip *this, int cmd,
> unsigned int ctrl);
>

Currently I see "#include <linux/mtd/mtd.h>" at the top of this file.
That's where the "struct mtd_info" that has been replaced by a "struct
nand_chip" was declared. The nand_chip object is declared in
<linux/mtd/rawnand.h>.

I think you can remove this include (unneeded anymore for what I see).
Then, either you keep the nand_chip forward declaration, or replace the
mtd.h include into the rawnand.h one?


Thanks,
MiquÃl