lkml.org 
[lkml]   [2008]   [Nov]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2] mtd/physmap: use parse_mtd()
    Date
    Call parse_mtd() to handle partition/device registration rather than doing
    it all ourself.

    Signed-off-by: Mike Frysinger <vapier@gentoo.org>
    ---
    v2:
    - call unparse_mtd()
    - delete local nr_parts/parts in physmap_flash_info

    drivers/mtd/maps/physmap.c | 39 +++------------------------------------
    1 files changed, 3 insertions(+), 36 deletions(-)

    diff --git a/drivers/mtd/maps/physmap.c b/drivers/mtd/maps/physmap.c
    index 42d844f..d0e11b5 100644
    --- a/drivers/mtd/maps/physmap.c
    +++ b/drivers/mtd/maps/physmap.c
    @@ -28,10 +28,6 @@ struct physmap_flash_info {
    struct mtd_info *cmtd;
    struct map_info map[MAX_RESOURCES];
    struct resource *res;
    -#ifdef CONFIG_MTD_PARTITIONS
    - int nr_parts;
    - struct mtd_partition *parts;
    -#endif
    };

    static int physmap_flash_remove(struct platform_device *dev)
    @@ -56,18 +52,7 @@ static int physmap_flash_remove(struct platform_device *dev)

    for (i = 0; i < MAX_RESOURCES; i++) {
    if (info->mtd[i] != NULL) {
    -#ifdef CONFIG_MTD_PARTITIONS
    - if (info->nr_parts) {
    - del_mtd_partitions(info->mtd[i]);
    - kfree(info->parts);
    - } else if (physmap_data->nr_parts) {
    - del_mtd_partitions(info->mtd[i]);
    - } else {
    - del_mtd_device(info->mtd[i]);
    - }
    -#else
    - del_mtd_device(info->mtd[i]);
    -#endif
    + unparse_mtd(info->mtd[i]);
    map_destroy(info->mtd[i]);
    }

    @@ -84,9 +69,6 @@ static int physmap_flash_remove(struct platform_device *dev)
    }

    static const char *rom_probe_types[] = { "cfi_probe", "jedec_probe", "map_rom", NULL };
    -#ifdef CONFIG_MTD_PARTITIONS
    -static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", NULL };
    -#endif

    static int physmap_flash_probe(struct platform_device *dev)
    {
    @@ -170,23 +152,8 @@ static int physmap_flash_probe(struct platform_device *dev)
    if (err)
    goto err_out;

    -#ifdef CONFIG_MTD_PARTITIONS
    - err = parse_mtd_partitions(info->cmtd, part_probe_types, &info->parts, 0);
    - if (err > 0) {
    - add_mtd_partitions(info->cmtd, info->parts, err);
    - return 0;
    - }
    -
    - if (physmap_data->nr_parts) {
    - printk(KERN_NOTICE "Using physmap partition information\n");
    - add_mtd_partitions(info->cmtd, physmap_data->parts,
    - physmap_data->nr_parts);
    - return 0;
    - }
    -#endif
    -
    - add_mtd_device(info->cmtd);
    - return 0;
    + return parse_mtd(info->cmtd, NULL, physmap_data->parts,
    + physmap_data->nr_parts, false);

    err_out:
    physmap_flash_remove(dev);
    --
    1.6.0.3


    \
     
     \ /
      Last update: 2008-11-14 13:25    [W:0.025 / U:88.816 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site