[PATCH] mtd: unify mtd partition/device registration

Mike Frysinger vapier.adi at gmail.com
Thu Nov 13 09:51:01 EST 2008


On Thu, Nov 13, 2008 at 09:28, Atsushi Nemoto wrote:
> On Thu, 13 Nov 2008 22:43:50 +0900 (JST), Atsushi Nemoto wrote:
>> On Wed, 12 Nov 2008 18:38:53 -0500, Mike Frysinger wrote:
>> > Rather than having every map/mtd driver doing the same sequence of
>> > registering partitions and/or devices, implement common parse_mtd().
>> >
>> > Signed-off-by: Mike Frysinger <vapier at gentoo.org>
>> > ---
>> >  drivers/mtd/mtdcore.c   |   37 +++++++++++++++++++++++++++++++++++++
>> >  include/linux/mtd/mtd.h |    3 +++
>> >  2 files changed, 40 insertions(+), 0 deletions(-)
>>
>> I like this idea.
>
> Some drivers call both add_mtd_device() and add_mtd_partitions().  The
> mtd_device is used to access whole flash area (like /dev/hda).  How do
> you think of these usage patterns?
>
> maps/edb7312.c
> maps/mbx860.c
> maps/plat-ram.c
> nand/cafe_nand.c
> nand/diskonchip.c
> nand/ndfc.c
>
> Automatic fallback to mtd_device in parse_mtd() is convenient but
> somewhat unflexible...

we could just have it do it all the time.  i dont see a problem with
exposing the entire block device the whole time ?  i know for the
driver or two of mine, i'm fine with it.

...
       ret = parse_mtd_partitions(mtd, probe_types, &parts, 0);
       if (ret > 0) {
               ret = add_mtd_partitions(mtd, parts, ret);
               kfree(parts);
       } else if (nr_parts)
               ret = add_mtd_partitions(mtd, parts, nr_parts);
       if (ret)
               return ret;
#endif

       return add_mtd_device(mtd);
-mike



More information about the linux-mtd mailing list