spi: move common spi_setup() functionality into core
Start moving some spi_setup() functionality into the SPI core from the various spi_master controller drivers: - Make that function stop being an inline; - Move two common idioms from drivers into that new function: * Default bits_per_word to 8 if that field isn't set * Issue a standardized dev_dbg() message This is a net minor source code shrink, and supports enhancments found in some follow-up patches. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
b4bd2ababd
commit
7d0771970c
@@ -523,30 +523,7 @@ static inline void spi_message_free(struct spi_message *m)
|
||||
kfree(m);
|
||||
}
|
||||
|
||||
/**
|
||||
* spi_setup - setup SPI mode and clock rate
|
||||
* @spi: the device whose settings are being modified
|
||||
* 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 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.
|
||||
* 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
|
||||
* example, not all hardware supports wire transfers using nine bit words,
|
||||
* LSB-first wire encoding, or active-high chipselects.
|
||||
*/
|
||||
static inline int
|
||||
spi_setup(struct spi_device *spi)
|
||||
{
|
||||
return spi->master->setup(spi);
|
||||
}
|
||||
|
||||
extern int spi_setup(struct spi_device *spi);
|
||||
|
||||
/**
|
||||
* spi_async - asynchronous SPI transfer
|
||||
|
Reference in New Issue
Block a user