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 | |
| 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>
| -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; |
