From 232d02f53e3bc0f047c7413e16834fdf5bd05071 Mon Sep 17 00:00:00 2001 From: Bob Liu Date: Fri, 17 Sep 2010 03:46:22 +0000 Subject: [PATCH] --- yaml --- r: 212339 b: refs/heads/master c: 2e768659df35ea337cb57ea3573c918d31e07894 h: refs/heads/master i: 212337: 76bc2a38c2c7eee73026d05edab47dd212804be2 212335: 6ab7edca0f4eb76511f6842022c07c40f9fa8b98 v: v3 --- [refs] | 2 +- trunk/drivers/spi/spi_bfin5xx.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 9b2057d36469..99e2aebc1f73 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4190f6a51f3f9c7c8298202d31b3ead9381c33f1 +refs/heads/master: 2e768659df35ea337cb57ea3573c918d31e07894 diff --git a/trunk/drivers/spi/spi_bfin5xx.c b/trunk/drivers/spi/spi_bfin5xx.c index 21de8605dbce..bd182145bc2c 100644 --- a/trunk/drivers/spi/spi_bfin5xx.c +++ b/trunk/drivers/spi/spi_bfin5xx.c @@ -644,11 +644,16 @@ static void bfin_spi_pump_transfers(unsigned long data) drv_data->len = transfer->len; cr_width = 0; drv_data->ops = &bfin_transfer_ops_u8; - } else { + } else if (bits_per_word == 16) { drv_data->n_bytes = 2; drv_data->len = (transfer->len) >> 1; cr_width = BIT_CTL_WORDSIZE; drv_data->ops = &bfin_transfer_ops_u16; + } else { + dev_err(&drv_data->pdev->dev, "transfer: unsupported bits_per_word\n"); + message->status = -EINVAL; + bfin_spi_giveback(drv_data); + return; } cr = read_CTRL(drv_data) & ~(BIT_CTL_TIMOD | BIT_CTL_WORDSIZE); cr |= cr_width;