[PATCH v3 2/2] mtd: spi: nor: force mtd name to "nor%d"

Marek Vasut marex at denx.de
Thu Sep 16 19:27:28 CEST 2021


On 9/16/21 4:01 PM, Patrick Delaunay wrote:

[...]

> @@ -3664,6 +3666,11 @@ int spi_nor_scan(struct spi_nor *nor)
>   	struct mtd_info *mtd = &nor->mtd;
>   	struct spi_slave *spi = nor->spi;
>   	int ret;
> +	int cfi_mtd_nb = 0;
> +
> +#ifdef CONFIG_SYS_MAX_FLASH_BANKS
> +	cfi_mtd_nb = CONFIG_SYS_MAX_FLASH_BANKS;
> +#endif

Are we covering all the NORs (HF and co.) with this ?

>   	/* Reset SPI protocol for all commands. */
>   	nor->reg_proto = SNOR_PROTO_1_1_1;
> @@ -3715,8 +3722,10 @@ int spi_nor_scan(struct spi_nor *nor)
>   	if (ret)
>   		return ret;
>   
> -	if (!mtd->name)
> -		mtd->name = info->name;
> +	if (!mtd->name) {
> +		sprintf(nor->mtd_name, "nor%d",  cfi_mtd_nb + dev_seq(nor->dev));
> +		mtd->name = nor->mtd_name;
> +	}
>   	mtd->dev = nor->dev;
>   	mtd->priv = nor;
>   	mtd->type = MTD_NORFLASH;
> @@ -3821,7 +3830,7 @@ int spi_nor_scan(struct spi_nor *nor)
>   
>   	nor->rdsr_dummy = params.rdsr_dummy;
>   	nor->rdsr_addr_nbytes = params.rdsr_addr_nbytes;
> -	nor->name = mtd->name;
> +	nor->name = info->name;
>   	nor->size = mtd->size;
>   	nor->erase_size = mtd->erasesize;
>   	nor->sector_size = mtd->erasesize;
> diff --git a/include/linux/mtd/spi-nor.h b/include/linux/mtd/spi-nor.h
> index 7ddc4ba2bf..8c3d5032e3 100644
> --- a/include/linux/mtd/spi-nor.h
> +++ b/include/linux/mtd/spi-nor.h
> @@ -561,6 +561,7 @@ struct spi_nor {
>   	int (*ready)(struct spi_nor *nor);
>   
>   	void *priv;
> +	char mtd_name[10];

should be 14, because nor%d\0 can be up to 14 bytes long.


More information about the U-Boot mailing list