diff options
| -rw-r--r-- | drivers/spi/spi_bfin5xx.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/spi/spi_bfin5xx.c b/drivers/spi/spi_bfin5xx.c index 21de8605dbce..bd182145bc2c 100644 --- a/drivers/spi/spi_bfin5xx.c +++ b/drivers/spi/spi_bfin5xx.c | |||
| @@ -644,11 +644,16 @@ static void bfin_spi_pump_transfers(unsigned long data) | |||
| 644 | drv_data->len = transfer->len; | 644 | drv_data->len = transfer->len; |
| 645 | cr_width = 0; | 645 | cr_width = 0; |
| 646 | drv_data->ops = &bfin_transfer_ops_u8; | 646 | drv_data->ops = &bfin_transfer_ops_u8; |
| 647 | } else { | 647 | } else if (bits_per_word == 16) { |
| 648 | drv_data->n_bytes = 2; | 648 | drv_data->n_bytes = 2; |
| 649 | drv_data->len = (transfer->len) >> 1; | 649 | drv_data->len = (transfer->len) >> 1; |
| 650 | cr_width = BIT_CTL_WORDSIZE; | 650 | cr_width = BIT_CTL_WORDSIZE; |
| 651 | drv_data->ops = &bfin_transfer_ops_u16; | 651 | drv_data->ops = &bfin_transfer_ops_u16; |
| 652 | } else { | ||
| 653 | dev_err(&drv_data->pdev->dev, "transfer: unsupported bits_per_word\n"); | ||
| 654 | message->status = -EINVAL; | ||
| 655 | bfin_spi_giveback(drv_data); | ||
| 656 | return; | ||
| 652 | } | 657 | } |
| 653 | cr = read_CTRL(drv_data) & ~(BIT_CTL_TIMOD | BIT_CTL_WORDSIZE); | 658 | cr = read_CTRL(drv_data) & ~(BIT_CTL_TIMOD | BIT_CTL_WORDSIZE); |
| 654 | cr |= cr_width; | 659 | cr |= cr_width; |
