• Yi Li's avatar
    Blackfin SPI Driver: fix bug - correct usage of struct spi_transfer.cs_change · b9b2a76a
    Yi Li authored
    According to comments in linux/spi/spi.h:
    
     * All SPI transfers start with the relevant chipselect active.  Normally
     * it stays selected until after the last transfer in a message. Drivers
     * can affect the chipselect signal using cs_change.
     *
     * (i) If the transfer isn't the last one in the message, this flag is
     * used to make the chipselect briefly go inactive in the middle of the
     * message.  Toggling chipselect in this way may be needed to terminate
     * a chip command, letting a single spi_message perform all of group of
     * chip transactions together.
     *
     * (ii) When the transfer is the last one in the message, the chip may
     * 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.
    Signed-off-by: default avatarYi Li <yi.li@analog.com>
    Signed-off-by: default avatarBryan Wu <cooloney@kernel.org>
    Acked-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Cc: David Brownell <david-b@pacbell.net>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    b9b2a76a
spi_bfin5xx.c 37.1 KB