Skip to contentSkip to conversation

ixp4xx: add support for static flash partitions

PATCH New Richard Cochran 3 participants 5 messages May 31, 2010 – Jun 29, 2010 Memory technology devices (MTD)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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.

---
 drivers/mtd/maps/ixp4xx.c |   37 ++++++++++++++++++++++++++++---------
 1 files changed, 28 insertions(+), 9 deletions(-)
drivers/mtd/maps/ixp4xx.c +28 -9
index 7b05152..5345d11 100644
@@ -108,7 +108,7 @@ static void ixp4xx_copy_from(struct map_info *map, void *to,
 
 	if (from & 1) {
 		*dest++ = BYTE1(flash_read16(src));
-                src++;
+		src++;
 		--len;
 	}
 
@@ -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)
@@ -219,9 +221,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),
@@ -249,11 +251,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");
 	}
Signature · 1 line
1.6.3.3
#1 lore raw

PATCH 1/1 ixp4xx: add support for static flash partitions

Quoted 15 lines · Richard Cochran

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.

---
 drivers/mtd/maps/ixp4xx.c |   37 ++++++++++++++++++++++++++++---------
 1 files changed, 28 insertions(+), 9 deletions(-)
drivers/mtd/maps/ixp4xx.c +0 -0
index 7b05152..5345d11 100644

drivers/mtd/maps/ixp4xx.c static void ixp4xx_copy_from(struct map_info *map, void *to, · line 113

Quoted 7 lines
drivers/mtd/maps/ixp4xx.c +1 -1
@@ -108,7 +108,7 @@ static void ixp4xx_copy_from(struct map_info *map, void *to,
 
 	if (from & 1) {
 		*dest++ = BYTE1(flash_read16(src));
-                src++;
+		src++;
 		--len;
 	}

Your patch mostly applies, except of this chunk, which was modified before by

commit 53f2b1c86a1fa1414be93571062ac4c263fa9fbc

Author: Jon Ringle <[email protected]>
Date:   Wed Jan 13 09:36:10 2010 -0500

mtd: ixp4xx: fix reading from half-word boundary

Fix handling of reads that don't start on a half-word boundary.

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.

Signature · 2 lines
Best Regards,
Artem Bityutskiy (????? ????????)
#2 lore raw

PATCH 1/1 ixp4xx: add support for static flash partitions

Quoted 2 lines · Artem Bityutskiy

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.

---
 drivers/mtd/maps/ixp4xx.c |   35 +++++++++++++++++++++++++++--------
 1 files changed, 27 insertions(+), 8 deletions(-)
drivers/mtd/maps/ixp4xx.c +27 -8
index e0a5e04..1f9fde0 100644
@@ -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");
 	}
Signature · 1 line
1.6.3.3
#3 lore raw

PATCH 1/1 ixp4xx: add support for static flash partitions

Dne Po 14. ?ervna 2010 18:15:19 Richard Cochran napsal(a):

Quoted 79 lines · Artem Bityutskiy
Quoted 2 lines

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.

---
 drivers/mtd/maps/ixp4xx.c |   35 +++++++++++++++++++++++++++--------
 1 files changed, 27 insertions(+), 8 deletions(-)
drivers/mtd/maps/ixp4xx.c +24 -5
index e0a5e04..1f9fde0 100644
@@ -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 {

drivers/mtd/maps/ixp4xx.c static int ixp4xx_flash_probe(struct platform_device · line 277

Quoted 10 lines
drivers/mtd/maps/ixp4xx.c +3 -2
+		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

#4 lore raw

PATCH 1/1 ixp4xx: add support for static flash partitions

In reply to Richard Cochran
Quoted 11 lines · Richard Cochran
Quoted 2 lines · Artem Bityutskiy

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

Quoted 6 lines

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.

Pushed to l2-mtd-2.6.git / dunno.

Signature · 2 lines
Best Regards,
Artem Bityutskiy (????? ????????)