[PATCH 2/2] imx-bbu-nand-fcb: fix build on MX28 only

Sam Ravnborg sam at ravnborg.org
Sat Sep 16 06:48:09 PDT 2017


Hi Lucas.

On Fri, Sep 15, 2017 at 11:07:08AM +0200, Lucas Stach wrote:
> This code may be compiled without ARCH_IMX6 present, so it must not
> depend on any functions provided by the architecture support.
> 
> Fixes: a2618c215bff (imx-bbu-nand-fcb: add support for imx6ul)
> Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
> ---
>  common/imx-bbu-nand-fcb.c | 15 ++++++++++++---
>  1 file changed, 12 insertions(+), 3 deletions(-)
> 
> diff --git a/common/imx-bbu-nand-fcb.c b/common/imx-bbu-nand-fcb.c
> index 7218c5e1ccda..bd539bafa7f7 100644
> --- a/common/imx-bbu-nand-fcb.c
> +++ b/common/imx-bbu-nand-fcb.c
> @@ -38,9 +38,12 @@
>  #include <io.h>
>  #include <crc.h>
>  #include <mach/generic.h>
> -#include <mach/imx6.h>
>  #include <mtd/mtd-peb.h>
>  
> +#ifdef CONFIG_ARCH_IMX6
> +#include <mach/imx6.h>
> +#endif
> +
>  struct dbbt_block {
>  	uint32_t Checksum;
>  	uint32_t FingerPrint;
> @@ -141,7 +144,8 @@ static uint8_t reverse_bit(uint8_t b)
>  	return b;
>  }
>  
> -static void encode_bch_ecc(void *buf, struct fcb_block *fcb, int eccbits)
> +static void __maybe_unused encode_bch_ecc(void *buf, struct fcb_block *fcb,
> +					  int eccbits)
>  {
>  	int i, j, m = 13;
>  	int blocksize = 128;
> @@ -441,9 +445,11 @@ static int read_fcb(struct mtd_info *mtd, int num, struct fcb_block **retfcb)
>  		goto err;
>  	}
>  
> +#if IS_ENABLED(CONFIG_ARCH_IMX6)
>  	if (cpu_is_mx6ul() || cpu_is_mx6ull())
>  		fcb = read_fcb_bch(rawpage, 40);
>  	else
> +#endif
>  		fcb = read_fcb_hamming_13_8(rawpage);

ifdef out an if else like this is ugly and confusing.

Consider using the much more readable variant:
	if (IS_ENABLED(CONFIG_ARCH_IMX6) && (cpu_is_mx6ul() || cpu_is_mx6ull()))
		fcb = read_fcb_bch(rawpage, 40);
	else
		fcb = read_fcb_hamming_13_8(rawpage);

Same goes for next chunk in this patch.

	Sam



More information about the barebox mailing list