[PATCH] mtd: Allow platform to set partitions at runtime
Alexander Clouter
alex at digriz.org.uk
Thu Mar 5 03:56:24 EST 2009
* hartleys <hartleys at visionengravers.com> [Wed, 4 Mar 2009 19:29:00 -0500]:
>
> Any comments on this patch? If it looks ok how do I get it applied?
>
I think there is an 'inner-circle' of MTD coding ninja's that do not
read this list...
Cheers
> -----Original Message-----
> From: linux-mtd-bounces at lists.infradead.org
> [mailto:linux-mtd-bounces at lists.infradead.org] On Behalf Of hartleys
> Sent: Monday, February 09, 2009 4:31 PM
> To: linux-mtd at lists.infradead.org
> Subject: [PATCH] mtd: Allow platform to set partitions at runtime
>
> Add a callback to allow platform to initialize the static partitions.
>
> Static partitions on a nand device could vary depending on the size of
> the device. This patch allows an optional platform callback to be used
> to setup this partition information at runtime.
>
> Scan order is:
> 1) chip.part_probe_types
> 2) chip.set_parts
> 3) chip.partitions
> 4) full mtd device (fallback for no partitions)
>
> Some of the existing nand drivers could possibly be replaced by the
> plat_nand driver by using this patch. These include autcpu12.c and
> ts7250.c drivers.
>
> Signed-off-by: H Hartley Sweeten <hsweeten at visionengravers.com>
>
> ---
>
> diff --git a/drivers/mtd/nand/plat_nand.c b/drivers/mtd/nand/plat_nand.c
> index 75f9f48..f10b5a6 100644
> --- a/drivers/mtd/nand/plat_nand.c
> +++ b/drivers/mtd/nand/plat_nand.c
> @@ -86,6 +86,8 @@ static int __init plat_nand_probe(struct
> platform_device *pdev)
> return 0;
> }
> }
> + if (pdata->chip.set_parts)
> + pdata->chip.set_parts(data->mtd.size, &pdata->chip);
> if (pdata->chip.partitions) {
> data->parts = pdata->chip.partitions;
> res = add_mtd_partitions(&data->mtd, data->parts,
> diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h
> index db5b63d..4eaf328 100644
> --- a/include/linux/mtd/nand.h
> +++ b/include/linux/mtd/nand.h
> @@ -563,6 +563,7 @@ extern int nand_do_read(struct mtd_info *mtd, loff_t
> from, size_t len,
> * @options: Option flags, e.g. 16bit buswidth
> * @ecclayout: ecc layout info structure
> * @part_probe_types: NULL-terminated array of probe types
> + * @set_parts: platform specific function to set partitions
> * @priv: hardware controller specific settings
> */
> struct platform_nand_chip {
> @@ -574,6 +575,8 @@ struct platform_nand_chip {
> int chip_delay;
> unsigned int options;
> const char **part_probe_types;
> + void (*set_parts)(uint64_t size,
> + struct platform_nand_chip
> *chip);
> void *priv;
> };
>
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
>
Cheers
--
Alexander Clouter
.sigmonster says: Who is D.B. Cooper, and where is he now?
More information about the linux-mtd
mailing list