On Fri, 2008-10-24 at 02:21 -0700, David Brownell wrote: > > And of course, if you already have a fix i'll test it on the lm70llp > > board. > > I suspect the following should do the job ... it has > the parport based adapter leave the data in MSB-first > byte order, with the lm70 driver converting to CPU > byte order. (In a way that will match the TMP121/123 > support.) > > - Dave > > --- > drivers/hwmon/lm70.c | 4 +++- > drivers/spi/spi_lm70llp.c | 19 +++---------------- > 2 files changed, 6 insertions(+), 17 deletions(-) > > --- a/drivers/hwmon/lm70.c > +++ b/drivers/hwmon/lm70.c > @@ -67,7 +67,7 @@ static ssize_t lm70_sense_temp(struct de > } > dev_dbg(dev, "rxbuf[1] : 0x%x rxbuf[0] : 0x%x\n", rxbuf[1], rxbuf[0]); > > - raw = (rxbuf[1] << 8) + rxbuf[0]; > + raw = (rxbuf[0] << 8) + rxbuf[1]; > dev_dbg(dev, "raw=0x%x\n", raw); > > /* > @@ -109,6 +109,8 @@ static int __devinit lm70_probe(struct s > if ((spi->mode & (SPI_CPOL|SPI_CPHA)) || !(spi->mode & SPI_3WIRE)) > return -EINVAL; > > + /* NOTE: we assume 8-bit words, and convert to 16 bits manually */ > + > p_lm70 = kzalloc(sizeof *p_lm70, GFP_KERNEL); > if (!p_lm70) > return -ENOMEM; > --- a/drivers/spi/spi_lm70llp.c > +++ b/drivers/spi/spi_lm70llp.c > @@ -173,6 +173,8 @@ static void lm70_chipselect(struct spi_d > { > struct spi_lm70llp *pp = spidev_to_pp(spi); > > + /* REVISIT initialize the clock polarity ... */ > + > if (value) > assertCS(pp); > else > @@ -184,22 +186,7 @@ static void lm70_chipselect(struct spi_d > */ > static u32 lm70_txrx(struct spi_device *spi, unsigned nsecs, u32 word, u8 bits) > { > - static u32 sio=0; > - static int first_time=1; > - > - /* First time: perform SPI bitbang and return the LSB of > - * the result of the SPI call. > - */ > - if (first_time) { > - sio = bitbang_txrx_be_cpha0(spi, nsecs, 0, word, bits); > - first_time=0; > - return (sio & 0x00ff); > - } > - /* Return the MSB of the result of the SPI call */ > - else { > - first_time=1; > - return (sio >> 8); > - } > + return bitbang_txrx_be_cpha0(spi, nsecs, 0, word, bits); > } > > static void spi_lm70llp_attach(struct parport *p) Ok, will give it a hot... unfortunately i won't be able to actually tell you'll anything until Mon/Tue as i'll gain access only then to the PC and lm70. Later, kaiwan.