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

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
...@@ -333,6 +333,8 @@ static struct mtd_partition partition_info_128KB_blk[] = { ...@@ -333,6 +333,8 @@ static struct mtd_partition partition_info_128KB_blk[] = {
* @pid: Part ID on the AMBA PrimeCell format * @pid: Part ID on the AMBA PrimeCell format
* @mtd: MTD info for a NAND flash. * @mtd: MTD info for a NAND flash.
* @nand: Chip related 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. * @ecc_place: ECC placing locations in oobfree type format.
* @bank: Bank number for probed device. * @bank: Bank number for probed device.
...@@ -347,6 +349,8 @@ struct fsmc_nand_data { ...@@ -347,6 +349,8 @@ struct fsmc_nand_data {
u32 pid; u32 pid;
struct mtd_info mtd; struct mtd_info mtd;
struct nand_chip nand; struct nand_chip nand;
struct mtd_partition *partitions;
unsigned int nr_partitions;
struct fsmc_eccplace *ecc_place; struct fsmc_eccplace *ecc_place;
unsigned int bank; unsigned int bank;
...@@ -833,6 +837,8 @@ static int __init fsmc_nand_probe(struct platform_device *pdev) ...@@ -833,6 +837,8 @@ static int __init fsmc_nand_probe(struct platform_device *pdev)
host->bank = pdata->bank; host->bank = pdata->bank;
host->select_chip = pdata->select_bank; host->select_chip = pdata->select_bank;
host->partitions = pdata->partitions;
host->nr_partitions = pdata->nr_partitions;
regs = host->regs_va; regs = host->regs_va;
/* Link all private pointers */ /* Link all private pointers */
...@@ -943,12 +949,7 @@ static int __init fsmc_nand_probe(struct platform_device *pdev) ...@@ -943,12 +949,7 @@ static int __init fsmc_nand_probe(struct platform_device *pdev)
*/ */
host->mtd.name = "nand"; host->mtd.name = "nand";
ret = mtd_device_parse_register(&host->mtd, NULL, NULL, ret = mtd_device_parse_register(&host->mtd, NULL, NULL,
host->mtd.size <= 0x04000000 ? host->partitions, host->nr_partitions);
partition_info_16KB_blk :
partition_info_128KB_blk,
host->mtd.size <= 0x04000000 ?
ARRAY_SIZE(partition_info_16KB_blk) :
ARRAY_SIZE(partition_info_128KB_blk));
if (ret) if (ret)
goto err_probe; goto err_probe;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment