Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 68640c2a authored by Richard Cochran's avatar Richard Cochran Committed by David Woodhouse
Browse files

mtd: ixp4xx: add support for static flash partitions



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: default avatarRichard Cochran <richard.cochran@omicron.at>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent 04dd0d3a
Loading
Loading
Loading
Loading
+27 −8
Original line number Diff line number Diff line
@@ -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");
	}