diff options
| author | David Brownell <david-b@pacbell.net> | 2006-01-08 16:34:29 -0500 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-01-13 19:29:56 -0500 |
| commit | 7111763d391b0c5a949a4f2575aa88cd585f0ff6 (patch) | |
| tree | 376eef5003b71c6445c02bbe87950b2e365e0758 | |
| parent | 8275c642ccdce09a2146d0a9eb022e3698ee927e (diff) | |
[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>
| -rw-r--r-- | Documentation/spi/spi-summary | 13 | ||||
| -rw-r--r-- | drivers/mtd/devices/m25p80.c | 4 | ||||
| -rw-r--r-- | drivers/mtd/devices/mtd_dataflash.c | 2 | ||||
| -rw-r--r-- | drivers/spi/Kconfig | 10 | ||||
| -rw-r--r-- | drivers/spi/Makefile | 1 |
5 files changed, 28 insertions, 2 deletions
diff --git a/Documentation/spi/spi-summary b/Documentation/spi/spi-summary index 761debf748e9..a5ffba33a351 100644 --- a/Documentation/spi/spi-summary +++ b/Documentation/spi/spi-summary | |||
| @@ -115,6 +115,9 @@ shows up in sysfs in several locations: | |||
| 115 | /sys/devices/.../CTLR/spiB.C ... spi_device for on bus "B", | 115 | /sys/devices/.../CTLR/spiB.C ... spi_device for on bus "B", |
| 116 | chipselect C, accessed through CTLR. | 116 | chipselect C, accessed through CTLR. |
| 117 | 117 | ||
| 118 | /sys/devices/.../CTLR/spiB.C/modalias ... identifies the driver | ||
| 119 | that should be used with this device (for hotplug/coldplug) | ||
| 120 | |||
| 118 | /sys/bus/spi/devices/spiB.C ... symlink to the physical | 121 | /sys/bus/spi/devices/spiB.C ... symlink to the physical |
| 119 | spiB-C device | 122 | spiB-C device |
| 120 | 123 | ||
| @@ -247,6 +250,12 @@ driver is registered: | |||
| 247 | 250 | ||
| 248 | Like with other static board-specific setup, you won't unregister those. | 251 | Like with other static board-specific setup, you won't unregister those. |
| 249 | 252 | ||
| 253 | The widely used "card" style computers bundle memory, cpu, and little else | ||
| 254 | onto a card that's maybe just thirty square centimeters. On such systems, | ||
| 255 | your arch/.../mach-.../board-*.c file would primarily provide information | ||
| 256 | about the devices on the mainboard into which such a card is plugged. That | ||
| 257 | certainly includes SPI devices hooked up through the card connectors! | ||
| 258 | |||
| 250 | 259 | ||
| 251 | NON-STATIC CONFIGURATIONS | 260 | NON-STATIC CONFIGURATIONS |
| 252 | 261 | ||
| @@ -258,6 +267,10 @@ up the spi bus master, and will likely need spi_new_device() to provide the | |||
| 258 | board info based on the board that was hotplugged. Of course, you'd later | 267 | board info based on the board that was hotplugged. Of course, you'd later |
| 259 | call at least spi_unregister_device() when that board is removed. | 268 | call at least spi_unregister_device() when that board is removed. |
| 260 | 269 | ||
| 270 | When Linux includes support for MMC/SD/SDIO/DataFlash cards through SPI, those | ||
| 271 | configurations will also be dynamic. Fortunately, those devices all support | ||
| 272 | basic device identification probes, so that support should hotplug normally. | ||
| 273 | |||
| 261 | 274 | ||
| 262 | How do I write an "SPI Protocol Driver"? | 275 | How do I write an "SPI Protocol Driver"? |
| 263 | ---------------------------------------- | 276 | ---------------------------------------- |
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c index 45108ed85588..d5f24089be71 100644 --- a/drivers/mtd/devices/m25p80.c +++ b/drivers/mtd/devices/m25p80.c | |||
| @@ -378,7 +378,9 @@ static int m25p80_write(struct mtd_info *mtd, loff_t to, size_t len, | |||
| 378 | 378 | ||
| 379 | spi_sync(flash->spi, &m); | 379 | spi_sync(flash->spi, &m); |
| 380 | 380 | ||
| 381 | *retlen += m.actual_length - sizeof(flash->command); | 381 | if (retlen) |
| 382 | *retlen += m.actual_length | ||
| 383 | - sizeof(flash->command); | ||
| 382 | } | 384 | } |
| 383 | } | 385 | } |
| 384 | 386 | ||
diff --git a/drivers/mtd/devices/mtd_dataflash.c b/drivers/mtd/devices/mtd_dataflash.c index 99d3a0320fc9..155737e7483f 100644 --- a/drivers/mtd/devices/mtd_dataflash.c +++ b/drivers/mtd/devices/mtd_dataflash.c | |||
| @@ -508,7 +508,7 @@ add_dataflash(struct spi_device *spi, char *name, | |||
| 508 | priv->partitioned = 1; | 508 | priv->partitioned = 1; |
| 509 | return add_mtd_partitions(device, parts, nr_parts); | 509 | return add_mtd_partitions(device, parts, nr_parts); |
| 510 | } | 510 | } |
| 511 | } else if (pdata->nr_parts) | 511 | } else if (pdata && pdata->nr_parts) |
| 512 | dev_warn(&spi->dev, "ignoring %d default partitions on %s\n", | 512 | dev_warn(&spi->dev, "ignoring %d default partitions on %s\n", |
| 513 | pdata->nr_parts, device->name); | 513 | pdata->nr_parts, device->name); |
| 514 | 514 | ||
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig index 9b21c5d77b4a..7a75faeb0526 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig | |||
| @@ -65,6 +65,16 @@ config SPI_BITBANG | |||
| 65 | need it. You only need to select this explicitly to support driver | 65 | need it. You only need to select this explicitly to support driver |
| 66 | modules that aren't part of this kernel tree. | 66 | modules that aren't part of this kernel tree. |
| 67 | 67 | ||
| 68 | config SPI_BUTTERFLY | ||
| 69 | tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)" | ||
| 70 | depends on SPI_MASTER && PARPORT && EXPERIMENTAL | ||
| 71 | select SPI_BITBANG | ||
| 72 | help | ||
| 73 | This uses a custom parallel port cable to connect to an AVR | ||
| 74 | Butterfly <http://www.atmel.com/products/avr/butterfly>, an | ||
| 75 | inexpensive battery powered microcontroller evaluation board. | ||
| 76 | This same cable can be used to flash new firmware. | ||
| 77 | |||
| 68 | # | 78 | # |
| 69 | # Add new SPI master controllers in alphabetical order above this line | 79 | # Add new SPI master controllers in alphabetical order above this line |
| 70 | # | 80 | # |
diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile index 5da6a4df4012..c2c87e845abf 100644 --- a/drivers/spi/Makefile +++ b/drivers/spi/Makefile | |||
| @@ -12,6 +12,7 @@ obj-$(CONFIG_SPI_MASTER) += spi.o | |||
| 12 | 12 | ||
| 13 | # SPI master controller drivers (bus) | 13 | # SPI master controller drivers (bus) |
| 14 | obj-$(CONFIG_SPI_BITBANG) += spi_bitbang.o | 14 | obj-$(CONFIG_SPI_BITBANG) += spi_bitbang.o |
| 15 | obj-$(CONFIG_SPI_BUTTERFLY) += spi_butterfly.o | ||
| 15 | # ... add above this line ... | 16 | # ... add above this line ... |
| 16 | 17 | ||
| 17 | # SPI protocol drivers (device/link on bus) | 18 | # SPI protocol drivers (device/link on bus) |
