Skip to contentSkip to conversation

SPI, mtd_dataflash updates

PATCH New David Brownell 1 participant 1 message Dec 18, 2005 Memory technology devices (MTD)

lore
Share & tools
lore
#0 lore raw

PATCH 2/3 SPI, mtd_dataflash updates

Mostly getting rid of some #ifdeffery; maybe the MTD folk would like such cleanup in other mapping drivers?

- Dave

This is a minor cleanup of the MTD DataFlash driver, most notably removing inlined #ifdeffery by defining a new mtd_has_partitions() test. Maybe the MTD folk would want to pull in that test, to help clean up some of the other mapping-aware drivers.

It also moves the Kconfig entry so that this driver isn't presented as yet another M-Systems disk-on-chip product.

drivers/mtd/devices/mtd_dataflash.c +10 -20
@@ -96,6 +96,12 @@ struct dataflash {
 	struct mtd_info		mtd;
 };
 
+#ifdef CONFIG_MTD_PARTITIONS
+#define	mtd_has_partitions()	(1)
+#else
+#define	mtd_has_partitions()	(0)
+#endif
+
 /* ......................................................................... */
 
 /*
@@ -477,8 +483,7 @@ add_dataflash(struct spi_device *spi, ch
 	dev_info(&spi->dev, "%s (%d KBytes)\n", name, device->size/1024);
 	dev_set_drvdata(&spi->dev, priv);
 
-#ifdef CONFIG_MTD_PARTITIONS
-	{
+	if (mtd_has_partitions()) {
 		struct mtd_partition	*parts;
 		int			nr_parts = 0;
 
@@ -497,12 +502,10 @@ add_dataflash(struct spi_device *spi, ch
 			priv->partitioned = 1;
 			return add_mtd_partitions(device, parts, nr_parts);
 		}
-	}
-#else
-	if (pdata->nr_parts)
+	} else if (pdata->nr_parts)
 		dev_warn(&spi->dev, "ignoring %d default partitions on %s\n",
 				pdata->nr_parts, device->name);
-#endif
+
 	return add_mtd_device(device) == 1 ? -ENODEV : 0;
 }
 
@@ -570,17 +573,6 @@ static int __devinit dataflash_probe(str
 		DEBUG(MTD_DEBUG_LEVEL1, "%s: add_dataflash --> %d\n",
 				spi->dev.bus_id, status);
 
-#ifdef	DATAFLASH_TEST
-	else {
-		struct dataflash	*flash;
-
-		flash = dev_get_drvdata(&spi->dev);
-
-		dataflash_test1(flash);
-		dataflash_test2(flash);
-	}
-#endif
-
 	return status;
 }
 
@@ -591,11 +583,9 @@ static int __devexit dataflash_remove(st
 
 	DEBUG(MTD_DEBUG_LEVEL1, "%s: remove\n", spi->dev.bus_id);
 
-#ifdef CONFIG_MTD_PARTITIONS
-	if (flash->partitioned)
+	if (mtd_has_partitions() && flash->partitioned)
 		status = del_mtd_partitions(&flash->mtd);
 	else
-#endif
 		status = del_mtd_device(&flash->mtd);
 	if (status == 0)
 		kfree(flash);
drivers/mtd/devices/Kconfig +8 -8
@@ -47,6 +47,14 @@ config MTD_MS02NV
 	  accelerator.  Say Y here if you have a DECstation 5000/2x0 or a
 	  DECsystem 5900 equipped with such a module.
 
+config MTD_DATAFLASH
+	tristate "Support for AT45xxx DataFlash"
+	depends on MTD && SPI_MASTER && EXPERIMENTAL
+	help
+	  This enables access to AT45xxx DataFlash chips, using SPI.
+	  Sometimes DataFlash chips are packaged inside MMC-format
+	  cards; at this writing, the MMC stack won't handle those.
+
 config MTD_SLRAM
 	tristate "Uncached system RAM"
 	depends on MTD
@@ -255,13 +263,5 @@ config MTD_DOCPROBE_55AA
 	  LinuxBIOS or if you need to recover a DiskOnChip Millennium on which
 	  you have managed to wipe the first block.
 
-config MTD_DATAFLASH
-	tristate "Support for AT45xxx DataFlash"
-	depends on MTD && SPI_MASTER && EXPERIMENTAL
-	help
-	  This enables access to AT45xxx DataFlash chips, using SPI.
-	  Sometimes DataFlash chips are packaged inside MMC-format
-	  cards; at this writing, the MMC stack won't handle those.
-
 endmenu