You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge tag 'spi-v3.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
Pull spi fixes from Mark Brown: "A few driver and documentation fixes, plus a fix for double error handling which had crept in due to the confusing documentation - it wasn't clear if the core or the driver was responsible for cleanup in error cases so both tried to do it with unfortunate results" * tag 'spi-v3.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: spi: nuc900: Set SPI_LSB_FIRST for master->mode_bits if hw->pdata->lsb is true spi: rspi: Document support for Renesas QSPI in Kconfig spi: Fix crash with double message finalisation on error handling spi: correct the transfer_one_message documentation wording spi: document the transfer_one spi_master callback spi: spi.h: clarify the documentation of transfer_one
This commit is contained in:
@@ -543,7 +543,22 @@ SPI MASTER METHODS
|
|||||||
queuing transfers that arrive in the meantime. When the driver is
|
queuing transfers that arrive in the meantime. When the driver is
|
||||||
finished with this message, it must call
|
finished with this message, it must call
|
||||||
spi_finalize_current_message() so the subsystem can issue the next
|
spi_finalize_current_message() so the subsystem can issue the next
|
||||||
transfer. This may sleep.
|
message. This may sleep.
|
||||||
|
|
||||||
|
master->transfer_one(struct spi_master *master, struct spi_device *spi,
|
||||||
|
struct spi_transfer *transfer)
|
||||||
|
The subsystem calls the driver to transfer a single transfer while
|
||||||
|
queuing transfers that arrive in the meantime. When the driver is
|
||||||
|
finished with this transfer, it must call
|
||||||
|
spi_finalize_current_transfer() so the subsystem can issue the next
|
||||||
|
transfer. This may sleep. Note: transfer_one and transfer_one_message
|
||||||
|
are mutually exclusive; when both are set, the generic subsystem does
|
||||||
|
not call your transfer_one callback.
|
||||||
|
|
||||||
|
Return values:
|
||||||
|
negative errno: error
|
||||||
|
0: transfer is finished
|
||||||
|
1: transfer is still in progress
|
||||||
|
|
||||||
DEPRECATED METHODS
|
DEPRECATED METHODS
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -376,10 +376,10 @@ config SPI_PXA2XX_PCI
|
|||||||
def_tristate SPI_PXA2XX && PCI
|
def_tristate SPI_PXA2XX && PCI
|
||||||
|
|
||||||
config SPI_RSPI
|
config SPI_RSPI
|
||||||
tristate "Renesas RSPI controller"
|
tristate "Renesas RSPI/QSPI controller"
|
||||||
depends on (SUPERH && SH_DMAE_BASE) || ARCH_SHMOBILE
|
depends on (SUPERH && SH_DMAE_BASE) || ARCH_SHMOBILE
|
||||||
help
|
help
|
||||||
SPI driver for Renesas RSPI blocks.
|
SPI driver for Renesas RSPI and QSPI blocks.
|
||||||
|
|
||||||
config SPI_S3C24XX
|
config SPI_S3C24XX
|
||||||
tristate "Samsung S3C24XX series SPI"
|
tristate "Samsung S3C24XX series SPI"
|
||||||
|
|||||||
@@ -361,6 +361,8 @@ static int nuc900_spi_probe(struct platform_device *pdev)
|
|||||||
init_completion(&hw->done);
|
init_completion(&hw->done);
|
||||||
|
|
||||||
master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
|
master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
|
||||||
|
if (hw->pdata->lsb)
|
||||||
|
master->mode_bits |= SPI_LSB_FIRST;
|
||||||
master->num_chipselect = hw->pdata->num_cs;
|
master->num_chipselect = hw->pdata->num_cs;
|
||||||
master->bus_num = hw->pdata->bus_num;
|
master->bus_num = hw->pdata->bus_num;
|
||||||
hw->bitbang.master = hw->master;
|
hw->bitbang.master = hw->master;
|
||||||
|
|||||||
+1
-3
@@ -755,9 +755,7 @@ static void spi_pump_messages(struct kthread_work *work)
|
|||||||
ret = master->transfer_one_message(master, master->cur_msg);
|
ret = master->transfer_one_message(master, master->cur_msg);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(&master->dev,
|
dev_err(&master->dev,
|
||||||
"failed to transfer one message from queue: %d\n", ret);
|
"failed to transfer one message from queue\n");
|
||||||
master->cur_msg->status = ret;
|
|
||||||
spi_finalize_current_message(master);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -273,7 +273,7 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv)
|
|||||||
* message while queuing transfers that arrive in the meantime. When the
|
* message while queuing transfers that arrive in the meantime. When the
|
||||||
* driver is finished with this message, it must call
|
* driver is finished with this message, it must call
|
||||||
* spi_finalize_current_message() so the subsystem can issue the next
|
* spi_finalize_current_message() so the subsystem can issue the next
|
||||||
* transfer
|
* message
|
||||||
* @unprepare_transfer_hardware: there are currently no more messages on the
|
* @unprepare_transfer_hardware: there are currently no more messages on the
|
||||||
* queue so the subsystem notifies the driver that it may relax the
|
* queue so the subsystem notifies the driver that it may relax the
|
||||||
* hardware by issuing this call
|
* hardware by issuing this call
|
||||||
@@ -287,7 +287,10 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv)
|
|||||||
* - return 1 if the transfer is still in progress. When
|
* - return 1 if the transfer is still in progress. When
|
||||||
* the driver is finished with this transfer it must
|
* the driver is finished with this transfer it must
|
||||||
* call spi_finalize_current_transfer() so the subsystem
|
* call spi_finalize_current_transfer() so the subsystem
|
||||||
* can issue the next transfer
|
* can issue the next transfer. Note: transfer_one and
|
||||||
|
* transfer_one_message are mutually exclusive; when both
|
||||||
|
* are set, the generic subsystem does not call your
|
||||||
|
* transfer_one callback.
|
||||||
* @unprepare_message: undo any work done by prepare_message().
|
* @unprepare_message: undo any work done by prepare_message().
|
||||||
* @cs_gpios: Array of GPIOs to use as chip select lines; one per CS
|
* @cs_gpios: Array of GPIOs to use as chip select lines; one per CS
|
||||||
* number. Any individual value may be -ENOENT for CS lines that
|
* number. Any individual value may be -ENOENT for CS lines that
|
||||||
|
|||||||
Reference in New Issue
Block a user