[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <adbc806cd75b1c1ffd6382dc1dae425c71a93168.1373441121.git.michal.simek@xilinx.com>
Date: Wed, 10 Jul 2013 09:25:28 +0200
From: Michal Simek <michal.simek@...inx.com>
To: Mark Brown <broonie@...nel.org>
Cc: Stephen Warren <swarren@...dotorg.org>,
Michal Simek <monstr@...str.eu>,
Grant Likely <grant.likely@...aro.org>,
linux-spi@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH v1] spi/xilinx: Revert master->setup function removal
master->setup() must be initialized to be able
to successfully run spi_bitbang_start()
and satisfy if/else logic there.
"spi: convert drivers to use bits_per_word_mask"
(sha1: 24778be20f87d5aadb19624fc768b3159fa43efc)
Signed-off-by: Michal Simek <michal.simek@...inx.com>
---
Based on the latest Linus tree.
---
drivers/spi/spi-xilinx.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/drivers/spi/spi-xilinx.c b/drivers/spi/spi-xilinx.c
index fb56fcf..09a9428 100644
--- a/drivers/spi/spi-xilinx.c
+++ b/drivers/spi/spi-xilinx.c
@@ -233,6 +233,21 @@ static int xilinx_spi_setup_transfer(struct spi_device *spi,
return 0;
}
+static int xilinx_spi_setup(struct spi_device *spi)
+{
+ /* always return 0, we can not check the number of bits.
+ * There are cases when SPI setup is called before any driver is
+ * there, in that case the SPI core defaults to 8 bits, which we
+ * do not support in some cases. But if we return an error, the
+ * SPI device would not be registered and no driver can get hold of it
+ * When the driver is there, it will call SPI setup again with the
+ * correct number of bits per transfer.
+ * If a driver setups with the wrong bit number, it will fail when
+ * it tries to do a transfer
+ */
+ return 0;
+}
+
static void xilinx_spi_fill_tx_fifo(struct xilinx_spi *xspi)
{
u8 sr;
@@ -360,6 +375,7 @@ struct spi_master *xilinx_spi_init(struct device *dev, struct resource *mem,
xspi->bitbang.chipselect = xilinx_spi_chipselect;
xspi->bitbang.setup_transfer = xilinx_spi_setup_transfer;
xspi->bitbang.txrx_bufs = xilinx_spi_txrx_bufs;
+ xspi->bitbang.master->setup = xilinx_spi_setup;
init_completion(&xspi->done);
if (!request_mem_region(mem->start, resource_size(mem),
--
1.8.2.3
Content of type "application/pgp-signature" skipped
Powered by blists - more mailing lists