The patch titled spi doc updates has been added to the -mm tree. Its filename is spi-doc-updates.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: spi doc updates From: David Brownell <david-b@xxxxxxxxxxx> Update two points in the SPI interface documentation: - Update description of the "chip stays selected after message ends" mode. In some cases it's required for correctness; it isn't just a performance tweak. (Yes: to use this mode on mult-device busses, another programming interface will be needed. One draft has been circulated already.) - Clarify spi_setup(), highlighting that callers must ensure that no requests are queued (can't change configuration except between I/Os), and that the device must be deselected when this returns (which is a key part of why it's called during device init). Signed-off-by: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/spi/spi.h | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff -puN include/linux/spi/spi.h~spi-doc-updates include/linux/spi/spi.h --- a/include/linux/spi/spi.h~spi-doc-updates +++ a/include/linux/spi/spi.h @@ -341,9 +341,14 @@ extern struct spi_master *spi_busnum_to_ * chip transactions together. * * (ii) When the transfer is the last one in the message, the chip may - * stay selected until the next transfer. This is purely a performance - * hint; the controller driver may need to select a different device - * for the next message. + * stay selected until the next transfer. On multi-device SPI busses + * with nothing blocking messages going to other devices, this is just + * a performance hint; starting a message to another device deselects + * this one. But in other cases, this can be used to ensure correctness. + * Some devices need protocol transactions to be built from a series of + * spi_message submissions, where the content of one message is determined + * by the results of previous messages and where the whole transaction + * ends when the chipselect goes intactive. * * The code that submits an spi_message (and its spi_transfers) * to the lower layers is responsible for managing its memory. @@ -480,14 +485,15 @@ static inline void spi_message_free(stru /** * spi_setup - setup SPI mode and clock rate * @spi: the device whose settings are being modified - * Context: can sleep + * Context: can sleep, and no requests are queued to the device * * SPI protocol drivers may need to update the transfer mode if the - * device doesn't work with the mode 0 default. They may likewise need + * device doesn't work with its default. They may likewise need * to update clock rates or word sizes from initial values. This function * changes those settings, and must be called from a context that can sleep. - * The changes take effect the next time the device is selected and data - * is transferred to or from it. + * Except for SPI_CS_HIGH, which takes effect immediately, the changes take + * effect the next time the device is selected and data is transferred to + * or from it. When this function returns, the spi device is deselected. * * Note that this call will fail if the protocol driver specifies an option * that the underlying controller or its driver does not support. For _ Patches currently in -mm which might be from david-b@xxxxxxxxxxx are spi-doc-updates.patch git-avr32.patch git-leds.patch git-mmc.patch git-backlight.patch char-genrtc-use-wait_event_interruptible.patch spi-controller-drivers-check-for-unsupported-modes.patch spi-controller-drivers-check-for-unsupported-modes-update.patch spi-add-3wire-mode-flag.patch spi-add-3wire-mode-flag-fix.patch spidev-compiler-warning-gone.patch spi_lm70llp-parport-adapter-driver-correction.patch spi_mpc83xxc-underclocking-hotfix.patch atmel_spi-minor-updates.patch s3c24xx-spi-controllers-both-select-bitbang.patch rtc-ds1307-cleanups.patch rtc-rs5c372-becomes-a-new-style-i2c-driver.patch thecus-n2100-register-rtc-rs5c372-i2c-device.patch rtc-make-example-code-jump-to-done-instead-of-return-when-ioctl-not-supported.patch rtc-dev-return-enotty-in-ioctl-if-irq_set_freq-is-not-implemented-by-driver.patch driver-for-the-atmel-on-chip-rtc-on-at32ap700x-devices.patch driver-for-the-atmel-on-chip-rtc-on-at32ap700x-devices-fix.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html