aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/spi/spi-octeon.c28
1 files changed, 1 insertions, 27 deletions
diff --git a/drivers/spi/spi-octeon.c b/drivers/spi/spi-octeon.c
index c7c772a09bb7..5f28ddbe4f7e 100644
--- a/drivers/spi/spi-octeon.c
+++ b/drivers/spi/spi-octeon.c
@@ -161,19 +161,6 @@ static int octeon_spi_do_transfer(struct octeon_spi *p,
161 return xfer->len; 161 return xfer->len;
162} 162}
163 163
164static int octeon_spi_validate_bpw(struct spi_device *spi, u32 speed)
165{
166 switch (speed) {
167 case 8:
168 break;
169 default:
170 dev_err(&spi->dev, "Error: %d bits per word not supported\n",
171 speed);
172 return -EINVAL;
173 }
174 return 0;
175}
176
177static int octeon_spi_transfer_one_message(struct spi_master *master, 164static int octeon_spi_transfer_one_message(struct spi_master *master,
178 struct spi_message *msg) 165 struct spi_message *msg)
179{ 166{
@@ -192,15 +179,6 @@ static int octeon_spi_transfer_one_message(struct spi_master *master,
192 } 179 }
193 180
194 list_for_each_entry(xfer, &msg->transfers, transfer_list) { 181 list_for_each_entry(xfer, &msg->transfers, transfer_list) {
195 if (xfer->bits_per_word) {
196 status = octeon_spi_validate_bpw(msg->spi,
197 xfer->bits_per_word);
198 if (status)
199 goto err;
200 }
201 }
202
203 list_for_each_entry(xfer, &msg->transfers, transfer_list) {
204 bool last_xfer = &xfer->transfer_list == msg->transfers.prev; 182 bool last_xfer = &xfer->transfer_list == msg->transfers.prev;
205 int r = octeon_spi_do_transfer(p, msg, xfer, last_xfer); 183 int r = octeon_spi_do_transfer(p, msg, xfer, last_xfer);
206 if (r < 0) { 184 if (r < 0) {
@@ -231,14 +209,9 @@ static struct octeon_spi_setup *octeon_spi_new_setup(struct spi_device *spi)
231 209
232static int octeon_spi_setup(struct spi_device *spi) 210static int octeon_spi_setup(struct spi_device *spi)
233{ 211{
234 int r;
235 struct octeon_spi_setup *new_setup; 212 struct octeon_spi_setup *new_setup;
236 struct octeon_spi_setup *old_setup = spi_get_ctldata(spi); 213 struct octeon_spi_setup *old_setup = spi_get_ctldata(spi);
237 214
238 r = octeon_spi_validate_bpw(spi, spi->bits_per_word);
239 if (r)
240 return r;
241
242 new_setup = octeon_spi_new_setup(spi); 215 new_setup = octeon_spi_new_setup(spi);
243 if (!new_setup) 216 if (!new_setup)
244 return -ENOMEM; 217 return -ENOMEM;
@@ -296,6 +269,7 @@ static int octeon_spi_probe(struct platform_device *pdev)
296 master->setup = octeon_spi_setup; 269 master->setup = octeon_spi_setup;
297 master->cleanup = octeon_spi_cleanup; 270 master->cleanup = octeon_spi_cleanup;
298 master->transfer_one_message = octeon_spi_transfer_one_message; 271 master->transfer_one_message = octeon_spi_transfer_one_message;
272 master->bits_per_word_mask = SPI_BPW_MASK(8);
299 273
300 master->dev.of_node = pdev->dev.of_node; 274 master->dev.of_node = pdev->dev.of_node;
301 err = spi_register_master(master); 275 err = spi_register_master(master);