Message ID | 20100614161519.GB24877@riccoc20.at.omicron.at |
---|---|
State | Accepted |
Commit | 68640c2a416849ba8e0a69577d4be51a458a045a |
Headers | show |
Dne Po 14. Ĩervna 2010 18:15:19 Richard Cochran napsal(a): > On Sun, Jun 13, 2010 at 12:16:06PM +0300, Artem Bityutskiy wrote: > > I could fix your patch up myself, but I do not know the code, so please, > > re-send a patch against the latest mtd-2.6 tree. > > Okay, here it is again, this time against today's master branch of > git://git.infradead.org/mtd-2.6.git > > Thanks, > Richard > > > This patch adds support for static flash partitioning from a platform > device. Also, we clean up some weirdness where statements were separated > by commas instead of semicolons. While we are at it, fix some minor bad > white space, too. > > Signed-off-by: Richard Cochran <richard.cochran@omicron.at> > --- > drivers/mtd/maps/ixp4xx.c | 35 +++++++++++++++++++++++++++-------- > 1 files changed, 27 insertions(+), 8 deletions(-) > > diff --git a/drivers/mtd/maps/ixp4xx.c b/drivers/mtd/maps/ixp4xx.c > index e0a5e04..1f9fde0 100644 > --- a/drivers/mtd/maps/ixp4xx.c > +++ b/drivers/mtd/maps/ixp4xx.c > @@ -118,7 +118,7 @@ static void ixp4xx_copy_from(struct map_info *map, void > *to, *dest++ = BYTE1(data); > src += 2; > len -= 2; > - } > + } > > if (len > 0) > *dest++ = BYTE0(flash_read16(src)); > @@ -185,6 +185,8 @@ static int ixp4xx_flash_probe(struct platform_device > *dev) { > struct flash_platform_data *plat = dev->dev.platform_data; > struct ixp4xx_flash_info *info; > + const char *part_type = NULL; > + int nr_parts = 0; > int err = -1; > > if (!plat) > @@ -218,9 +220,9 @@ static int ixp4xx_flash_probe(struct platform_device > *dev) */ > info->map.bankwidth = 2; > info->map.name = dev_name(&dev->dev); > - info->map.read = ixp4xx_read16, > - info->map.write = ixp4xx_probe_write16, > - info->map.copy_from = ixp4xx_copy_from, > + info->map.read = ixp4xx_read16; > + info->map.write = ixp4xx_probe_write16; > + info->map.copy_from = ixp4xx_copy_from; > > info->res = request_mem_region(dev->resource->start, > resource_size(dev->resource), > @@ -248,11 +250,28 @@ static int ixp4xx_flash_probe(struct platform_device > *dev) info->mtd->owner = THIS_MODULE; > > /* Use the fast version */ > - info->map.write = ixp4xx_write16, > + info->map.write = ixp4xx_write16; > + > +#ifdef CONFIG_MTD_PARTITIONS > + nr_parts = parse_mtd_partitions(info->mtd, probes, &info->partitions, > + dev->resource->start); > +#endif > + if (nr_parts > 0) { > + part_type = "dynamic"; > + } else { > + info->partitions = plat->parts; > + nr_parts = plat->nr_parts; > + part_type = "static"; > + } > + if (nr_parts == 0) { > + printk(KERN_NOTICE "IXP4xx flash: no partition info " > + "available, registering whole flash\n"); > + err = add_mtd_device(info->mtd); > + } else { > + printk(KERN_NOTICE "IXP4xx flash: using %s partition " > + "definition\n", part_type); > + err = add_mtd_partitions(info->mtd, info->partitions, nr_parts); > > - err = parse_mtd_partitions(info->mtd, probes, &info->partitions, > dev->resource->start); - if (err > 0) { > - err = add_mtd_partitions(info->mtd, info->partitions, err); > if(err) > printk(KERN_ERR "Could not parse partitions\n"); > } Maybe send the formating fixes in a separate patch. Thanks
On Mon, 2010-06-14 at 18:15 +0200, Richard Cochran wrote: > On Sun, Jun 13, 2010 at 12:16:06PM +0300, Artem Bityutskiy wrote: > > I could fix your patch up myself, but I do not know the code, so please, > > re-send a patch against the latest mtd-2.6 tree. > > Okay, here it is again, this time against today's master branch of > git://git.infradead.org/mtd-2.6.git > > Thanks, > Richard > > > This patch adds support for static flash partitioning from a platform > device. Also, we clean up some weirdness where statements were separated > by commas instead of semicolons. While we are at it, fix some minor bad > white space, too. > > Signed-off-by: Richard Cochran <richard.cochran@omicron.at> Pushed to l2-mtd-2.6.git / dunno.
diff --git a/drivers/mtd/maps/ixp4xx.c b/drivers/mtd/maps/ixp4xx.c index e0a5e04..1f9fde0 100644 --- a/drivers/mtd/maps/ixp4xx.c +++ b/drivers/mtd/maps/ixp4xx.c @@ -118,7 +118,7 @@ static void ixp4xx_copy_from(struct map_info *map, void *to, *dest++ = BYTE1(data); src += 2; len -= 2; - } + } if (len > 0) *dest++ = BYTE0(flash_read16(src)); @@ -185,6 +185,8 @@ static int ixp4xx_flash_probe(struct platform_device *dev) { struct flash_platform_data *plat = dev->dev.platform_data; struct ixp4xx_flash_info *info; + const char *part_type = NULL; + int nr_parts = 0; int err = -1; if (!plat) @@ -218,9 +220,9 @@ static int ixp4xx_flash_probe(struct platform_device *dev) */ info->map.bankwidth = 2; info->map.name = dev_name(&dev->dev); - info->map.read = ixp4xx_read16, - info->map.write = ixp4xx_probe_write16, - info->map.copy_from = ixp4xx_copy_from, + info->map.read = ixp4xx_read16; + info->map.write = ixp4xx_probe_write16; + info->map.copy_from = ixp4xx_copy_from; info->res = request_mem_region(dev->resource->start, resource_size(dev->resource), @@ -248,11 +250,28 @@ static int ixp4xx_flash_probe(struct platform_device *dev) info->mtd->owner = THIS_MODULE; /* Use the fast version */ - info->map.write = ixp4xx_write16, + info->map.write = ixp4xx_write16; + +#ifdef CONFIG_MTD_PARTITIONS + nr_parts = parse_mtd_partitions(info->mtd, probes, &info->partitions, + dev->resource->start); +#endif + if (nr_parts > 0) { + part_type = "dynamic"; + } else { + info->partitions = plat->parts; + nr_parts = plat->nr_parts; + part_type = "static"; + } + if (nr_parts == 0) { + printk(KERN_NOTICE "IXP4xx flash: no partition info " + "available, registering whole flash\n"); + err = add_mtd_device(info->mtd); + } else { + printk(KERN_NOTICE "IXP4xx flash: using %s partition " + "definition\n", part_type); + err = add_mtd_partitions(info->mtd, info->partitions, nr_parts); - err = parse_mtd_partitions(info->mtd, probes, &info->partitions, dev->resource->start); - if (err > 0) { - err = add_mtd_partitions(info->mtd, info->partitions, err); if(err) printk(KERN_ERR "Could not parse partitions\n"); }