diff options
author | Axel Lin <axel.lin@ingics.com> | 2014-01-17 05:00:42 -0500 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-01-17 10:55:54 -0500 |
commit | 463654cec26466a03615974444d6900f1cd0eeb9 (patch) | |
tree | 85e6ce1653cf249b478749a4abfd77df0e2722e1 /drivers | |
parent | 15e0964dc2a097de3cf518badf2237b6b6adf7fe (diff) |
spi: sc18is602: Convert to use bits_per_word_mask
Since commit 543bb25 "spi: add ability to validate xfer->bits_per_word in SPI
core", the driver can set bits_per_word_mask for the master then the SPI core
will reject transfers that attempt to use an unsupported bits_per_word value.
So we can remove the bits_per_word checking in sc18is602_check_transfer() and
let SPI core handle the checking.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/spi/spi-sc18is602.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/spi/spi-sc18is602.c b/drivers/spi/spi-sc18is602.c index c1a01d1ac315..c981d215b65b 100644 --- a/drivers/spi/spi-sc18is602.c +++ b/drivers/spi/spi-sc18is602.c | |||
@@ -183,18 +183,11 @@ static int sc18is602_setup_transfer(struct sc18is602 *hw, u32 hz, u8 mode) | |||
183 | static int sc18is602_check_transfer(struct spi_device *spi, | 183 | static int sc18is602_check_transfer(struct spi_device *spi, |
184 | struct spi_transfer *t, int tlen) | 184 | struct spi_transfer *t, int tlen) |
185 | { | 185 | { |
186 | int bpw; | ||
187 | uint32_t hz; | 186 | uint32_t hz; |
188 | 187 | ||
189 | if (t && t->len + tlen > SC18IS602_BUFSIZ) | 188 | if (t && t->len + tlen > SC18IS602_BUFSIZ) |
190 | return -EINVAL; | 189 | return -EINVAL; |
191 | 190 | ||
192 | bpw = spi->bits_per_word; | ||
193 | if (t && t->bits_per_word) | ||
194 | bpw = t->bits_per_word; | ||
195 | if (bpw != 8) | ||
196 | return -EINVAL; | ||
197 | |||
198 | hz = spi->max_speed_hz; | 191 | hz = spi->max_speed_hz; |
199 | if (t && t->speed_hz) | 192 | if (t && t->speed_hz) |
200 | hz = t->speed_hz; | 193 | hz = t->speed_hz; |
@@ -315,6 +308,7 @@ static int sc18is602_probe(struct i2c_client *client, | |||
315 | } | 308 | } |
316 | master->bus_num = client->adapter->nr; | 309 | master->bus_num = client->adapter->nr; |
317 | master->mode_bits = SPI_CPHA | SPI_CPOL | SPI_LSB_FIRST; | 310 | master->mode_bits = SPI_CPHA | SPI_CPOL | SPI_LSB_FIRST; |
311 | master->bits_per_word_mask = SPI_BPW_MASK(8); | ||
318 | master->setup = sc18is602_setup; | 312 | master->setup = sc18is602_setup; |
319 | master->transfer_one_message = sc18is602_transfer_one; | 313 | master->transfer_one_message = sc18is602_transfer_one; |
320 | master->dev.of_node = np; | 314 | master->dev.of_node = np; |