Re: [PATCH V2] spi: remove check for bits_per_word on transfer fromlow level driver

From: Laxman Dewangan
Date: Thu Dec 20 2012 - 01:03:43 EST

On Wednesday 19 December 2012 09:54 PM, Grant Likely wrote:
On Tue, 18 Dec 2012 14:25:43 +0530, Laxman Dewangan<ldewangan@xxxxxxxxxx> wrote:
The spi core make sure that each transfer structure have the proper
setting for bits_per_word before calling low level transfer APIs.

Hence it is no more require to check again in low level driver for
this field whether this is set correct or not. Removing such code
from low level driver.

Signed-off-by: Laxman Dewangan<ldewangan@xxxxxxxxxx>

if (prev_speed_hz != speed_hz
@@ -316,9 +315,8 @@ static int txx9spi_transfer(struct spi_device *spi, struct spi_message *m)
/* check each transfer's parameters */
list_for_each_entry (t,&m->transfers, transfer_list) {
u32 speed_hz = t->speed_hz ? : spi->max_speed_hz;
- u8 bits_per_word = t->bits_per_word ? : spi->bits_per_word;
+ u8 bits_per_word = t->bits_per_word;

- bits_per_word = bits_per_word ? : 8;
Have you verified here that bits_per_word can never be '0' here? What is
the path that ensures spi->bits_per_word (and hence t->bits_per_word) is
set to 8 here?

Otherwise the patch looks good. Thanks for doing this work.

When we do the spi_add_device(), the spi_setup() get called.
In spi_setup, it make sure that spi->bits_per_word is not zero.

in spi_setup(spi.c)

if (!spi->bits_per_word)
spi->bits_per_word = 8;

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at