diff options
author | Mark Brown <broonie@linaro.org> | 2013-08-29 08:59:05 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-08-29 08:59:05 -0400 |
commit | b5f9a9d5113efe11a3b9dad600a6f833274da595 (patch) | |
tree | 6db5fb34a2d590086e25f7f682fecb5f43e6b283 /drivers/spi/spi-xilinx.c | |
parent | a1216394e620d0dfbb03c712ae3210e7b77c9e11 (diff) | |
parent | 8d4d08ce8319ae26227c4dd558405963c14c2037 (diff) |
Merge remote-tracking branch 'spi/topic/rspi' into spi-pdata
Conflicts:
drivers/spi/spi-rspi.c
Diffstat (limited to 'drivers/spi/spi-xilinx.c')
-rw-r--r-- | drivers/spi/spi-xilinx.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/spi/spi-xilinx.c b/drivers/spi/spi-xilinx.c index 0bf1b2c457a1..08ea84a6eb32 100644 --- a/drivers/spi/spi-xilinx.c +++ b/drivers/spi/spi-xilinx.c | |||
@@ -232,6 +232,21 @@ static int xilinx_spi_setup_transfer(struct spi_device *spi, | |||
232 | return 0; | 232 | return 0; |
233 | } | 233 | } |
234 | 234 | ||
235 | static int xilinx_spi_setup(struct spi_device *spi) | ||
236 | { | ||
237 | /* always return 0, we can not check the number of bits. | ||
238 | * There are cases when SPI setup is called before any driver is | ||
239 | * there, in that case the SPI core defaults to 8 bits, which we | ||
240 | * do not support in some cases. But if we return an error, the | ||
241 | * SPI device would not be registered and no driver can get hold of it | ||
242 | * When the driver is there, it will call SPI setup again with the | ||
243 | * correct number of bits per transfer. | ||
244 | * If a driver setups with the wrong bit number, it will fail when | ||
245 | * it tries to do a transfer | ||
246 | */ | ||
247 | return 0; | ||
248 | } | ||
249 | |||
235 | static void xilinx_spi_fill_tx_fifo(struct xilinx_spi *xspi) | 250 | static void xilinx_spi_fill_tx_fifo(struct xilinx_spi *xspi) |
236 | { | 251 | { |
237 | u8 sr; | 252 | u8 sr; |
@@ -376,6 +391,7 @@ static int xilinx_spi_probe(struct platform_device *pdev) | |||
376 | xspi->bitbang.chipselect = xilinx_spi_chipselect; | 391 | xspi->bitbang.chipselect = xilinx_spi_chipselect; |
377 | xspi->bitbang.setup_transfer = xilinx_spi_setup_transfer; | 392 | xspi->bitbang.setup_transfer = xilinx_spi_setup_transfer; |
378 | xspi->bitbang.txrx_bufs = xilinx_spi_txrx_bufs; | 393 | xspi->bitbang.txrx_bufs = xilinx_spi_txrx_bufs; |
394 | xspi->bitbang.master->setup = xilinx_spi_setup; | ||
379 | init_completion(&xspi->done); | 395 | init_completion(&xspi->done); |
380 | 396 | ||
381 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 397 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |