Pārlūkot izejas kodu

[PATCH] spi: misc fixes

This collects some small SPI patches that seem to be missing from the MM tree:

  - spi_butterfly kbuild hooks got dropped somehow; this restores them
  - quick fix for a (theoretical?) m25p80_write() oops noted by Andrew
  - quick fix for a potential config-specific oops for mtd_dataflash()
  - minor doc tweaks

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
David Brownell 19 gadi atpakaļ
vecāks
revīzija
7111763d39

+ 13 - 0
Documentation/spi/spi-summary

@@ -115,6 +115,9 @@ shows up in sysfs in several locations:
    /sys/devices/.../CTLR/spiB.C ... spi_device for on bus "B",
    /sys/devices/.../CTLR/spiB.C ... spi_device for on bus "B",
 	chipselect C, accessed through CTLR.
 	chipselect C, accessed through CTLR.
 
 
+   /sys/devices/.../CTLR/spiB.C/modalias ... identifies the driver
+	that should be used with this device (for hotplug/coldplug)
+
    /sys/bus/spi/devices/spiB.C ... symlink to the physical
    /sys/bus/spi/devices/spiB.C ... symlink to the physical
    	spiB-C device
    	spiB-C device
 
 
@@ -247,6 +250,12 @@ driver is registered:
 
 
 Like with other static board-specific setup, you won't unregister those.
 Like with other static board-specific setup, you won't unregister those.
 
 
+The widely used "card" style computers bundle memory, cpu, and little else
+onto a card that's maybe just thirty square centimeters.  On such systems,
+your arch/.../mach-.../board-*.c file would primarily provide information
+about the devices on the mainboard into which such a card is plugged.  That
+certainly includes SPI devices hooked up through the card connectors!
+
 
 
 NON-STATIC CONFIGURATIONS
 NON-STATIC CONFIGURATIONS
 
 
@@ -258,6 +267,10 @@ up the spi bus master, and will likely need spi_new_device() to provide the
 board info based on the board that was hotplugged.  Of course, you'd later
 board info based on the board that was hotplugged.  Of course, you'd later
 call at least spi_unregister_device() when that board is removed.
 call at least spi_unregister_device() when that board is removed.
 
 
+When Linux includes support for MMC/SD/SDIO/DataFlash cards through SPI, those
+configurations will also be dynamic.  Fortunately, those devices all support
+basic device identification probes, so that support should hotplug normally.
+
 
 
 How do I write an "SPI Protocol Driver"?
 How do I write an "SPI Protocol Driver"?
 ----------------------------------------
 ----------------------------------------

+ 3 - 1
drivers/mtd/devices/m25p80.c

@@ -378,7 +378,9 @@ static int m25p80_write(struct mtd_info *mtd, loff_t to, size_t len,
 
 
 			spi_sync(flash->spi, &m);
 			spi_sync(flash->spi, &m);
 
 
-			*retlen += m.actual_length - sizeof(flash->command);
+			if (retlen)
+				*retlen += m.actual_length
+					- sizeof(flash->command);
 	        }
 	        }
  	}
  	}
 
 

+ 1 - 1
drivers/mtd/devices/mtd_dataflash.c

@@ -508,7 +508,7 @@ add_dataflash(struct spi_device *spi, char *name,
 			priv->partitioned = 1;
 			priv->partitioned = 1;
 			return add_mtd_partitions(device, parts, nr_parts);
 			return add_mtd_partitions(device, parts, nr_parts);
 		}
 		}
-	} else if (pdata->nr_parts)
+	} else if (pdata && pdata->nr_parts)
 		dev_warn(&spi->dev, "ignoring %d default partitions on %s\n",
 		dev_warn(&spi->dev, "ignoring %d default partitions on %s\n",
 				pdata->nr_parts, device->name);
 				pdata->nr_parts, device->name);
 
 

+ 10 - 0
drivers/spi/Kconfig

@@ -65,6 +65,16 @@ config SPI_BITBANG
 	  need it.  You only need to select this explicitly to support driver
 	  need it.  You only need to select this explicitly to support driver
 	  modules that aren't part of this kernel tree.
 	  modules that aren't part of this kernel tree.
 
 
+config SPI_BUTTERFLY
+	tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)"
+	depends on SPI_MASTER && PARPORT && EXPERIMENTAL
+	select SPI_BITBANG
+	help
+	  This uses a custom parallel port cable to connect to an AVR
+	  Butterfly <http://www.atmel.com/products/avr/butterfly>, an
+	  inexpensive battery powered microcontroller evaluation board.
+	  This same cable can be used to flash new firmware.
+
 #
 #
 # Add new SPI master controllers in alphabetical order above this line
 # Add new SPI master controllers in alphabetical order above this line
 #
 #

+ 1 - 0
drivers/spi/Makefile

@@ -12,6 +12,7 @@ obj-$(CONFIG_SPI_MASTER)		+= spi.o
 
 
 # SPI master controller drivers (bus)
 # SPI master controller drivers (bus)
 obj-$(CONFIG_SPI_BITBANG)		+= spi_bitbang.o
 obj-$(CONFIG_SPI_BITBANG)		+= spi_bitbang.o
+obj-$(CONFIG_SPI_BUTTERFLY)		+= spi_butterfly.o
 # 	... add above this line ...
 # 	... add above this line ...
 
 
 # SPI protocol drivers (device/link on bus)
 # SPI protocol drivers (device/link on bus)