H Hartley Sweeten wrote on 2010-05-19: > On Wednesday, May 19, 2010 3:01 AM, Michael Hennerich wrote: >> Similar patch as reported by Oskar Schirmer <os@xxxxxxxxx> for the >> AD7877. >> >> With no word size given in the users platform data, a generic spi host >> controller driver will assume a default word size of eight bit. Ensure >> spi->bits_per_word is set for 16-bit transfers. >> >> Signed-off-by: Michael Hennerich <Michael.hennerich@xxxxxxxxxx> >> --- >> drivers/input/touchscreen/ad7879.c | 10 ++++++++++ >> 1 files changed, 10 insertions(+), 0 deletions(-) >> diff --git a/drivers/input/touchscreen/ad7879.c >> b/drivers/input/touchscreen/ad7879.c >> index 794d070..ff490c0 100644 >> --- a/drivers/input/touchscreen/ad7879.c >> +++ b/drivers/input/touchscreen/ad7879.c >> @@ -715,6 +715,16 @@ static int __devinit ad7879_probe(struct >> spi_device >> *spi) >> return -EINVAL; >> } >> + if (spi->bits_per_word != 16) { > > The master never sets this field so this test isn't needed. The > platform specific spi_board_info "could" set the field but I don't > think any currently do. Blackfin does! Originally my assumption was that everyone does it - that's why this haven't been fixed earlier. > > If the bits_per_word field is not set when spi_setup is called, it is > set to the default value (8) before calling the spi master drivers > setup routine. > You just need to set the value since that is what the protocol > requires. The spi_setup call is still needed since part of the probe > for this driver does generate a spi transaction, you need to make sure > the master driver will support the protocol before that happens. > >> + spi->bits_per_word = 16; >> + error = spi_setup(spi); >> + if (error) { >> + dev_dbg(&spi->dev, >> + "spi master doesn't support 16 bits/word\n"); >> + return error; >> + } >> + } >> + >> ts = kzalloc(sizeof(struct ad7879), GFP_KERNEL); >> if (!ts) >> return -ENOMEM; > > Regards, > Hartley Greetings, Michael Analog Devices GmbH Wilhelm-Wagenfeld-Str. 6 80807 Muenchen Sitz der Gesellschaft Muenchen, Registergericht Muenchen HRB 4036 Geschaeftsfuehrer Thomas Wessel, William A. Martin, Margaret Seif -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html