Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71470324 authored by Vipin Kumar's avatar Vipin Kumar Committed by David Woodhouse
Browse files

mtd: nand/fsmc: Pass partition information through platform data



This patch reimplements the passing of partition information through platform
data. This was unintentionally deleted in commit
0d04eda1
"mtd: fsmc_nand.c: use mtd_device_parse_register"

Artem: fix gcc warning about passin 0 instead of NULL.

Signed-off-by: default avatarVipin Kumar <vipin.kumar@st.com>
Acked-by: default avatarStefan Roese <sr@denx.de>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Cc: stable@kernel.org [3.2+]
Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent b2a2a84d
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -333,6 +333,8 @@ static struct mtd_partition partition_info_128KB_blk[] = {
 * @pid:		Part ID on the AMBA PrimeCell format
 * @mtd:		MTD info for a NAND flash.
 * @nand:		Chip related info for a NAND flash.
 * @partitions:		Partition info for a NAND Flash.
 * @nr_partitions:	Total number of partition of a NAND flash.
 *
 * @ecc_place:		ECC placing locations in oobfree type format.
 * @bank:		Bank number for probed device.
@@ -347,6 +349,8 @@ struct fsmc_nand_data {
	u32			pid;
	struct mtd_info		mtd;
	struct nand_chip	nand;
	struct mtd_partition	*partitions;
	unsigned int		nr_partitions;

	struct fsmc_eccplace	*ecc_place;
	unsigned int		bank;
@@ -833,6 +837,8 @@ static int __init fsmc_nand_probe(struct platform_device *pdev)

	host->bank = pdata->bank;
	host->select_chip = pdata->select_bank;
	host->partitions = pdata->partitions;
	host->nr_partitions = pdata->nr_partitions;
	regs = host->regs_va;

	/* Link all private pointers */
@@ -943,12 +949,7 @@ static int __init fsmc_nand_probe(struct platform_device *pdev)
	 */
	host->mtd.name = "nand";
	ret = mtd_device_parse_register(&host->mtd, NULL, NULL,
					host->mtd.size <= 0x04000000 ?
					partition_info_16KB_blk :
					partition_info_128KB_blk,
					host->mtd.size <= 0x04000000 ?
					ARRAY_SIZE(partition_info_16KB_blk) :
					ARRAY_SIZE(partition_info_128KB_blk));
					host->partitions, host->nr_partitions);
	if (ret)
		goto err_probe;