Re: [PATCH 1/3] iio: adc: ti-ads8344: properly byte swap value

From: Philip Li
Date: Sat Apr 18 2020 - 22:49:55 EST


On Thu, Apr 16, 2020 at 10:50:23PM +0200, Alexandre Belloni wrote:
> Hi,
>
> On 16/04/2020 14:22:03+0800, kbuild test robot wrote:
> > Hi Alexandre,
> >
> > I love your patch! Yet something to improve:
> >
> > [auto build test ERROR on iio/togreg]
> > [also build test ERROR on v5.7-rc1 next-20200415]
> > [if your patch is applied to the wrong git tree, please drop us a note to help
> > improve the system. BTW, we also suggest to use '--base' option to specify the
> > base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
> >
> > url: https://github.com/0day-ci/linux/commits/Alexandre-Belloni/iio-adc-ti-ads8344-improve-the-driver/20200416-073357
> > base: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg
> > config: c6x-allyesconfig (attached as .config)
> > compiler: c6x-elf-gcc (GCC) 9.3.0
> > reproduce:
> > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > chmod +x ~/bin/make.cross
> > # save the attached .config to linux build tree
> > COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=c6x
> >
>
> I spent some time to reproduce and this is actually not that trivial
> because your toolchains are linked with libisl22 and most distributions
> still ship an older version. Maybe you can do something about that?
Thanks for the feedback, we will resolve this to use old version in
earliest time.

>
> > If you fix the issue, kindly add following tag as appropriate
> > Reported-by: kbuild test robot <lkp@xxxxxxxxx>
> >
> > All errors (new ones prefixed by >>):
> >
> >
> > vim +/302 +96 drivers/iio/adc/ti-ads8344.c
> >
> > 72
> > 73 static int ads8344_adc_conversion(struct ads8344 *adc, int channel,
> > 74 bool differential)
> > 75 {
> > 76 struct spi_device *spi = adc->spi;
> > 77 int ret;
> > 78 u8 buf[3];
> > 79
> > 80 adc->tx_buf = ADS8344_START;
> > 81 if (!differential)
> > 82 adc->tx_buf |= ADS8344_SINGLE_END;
> > 83 adc->tx_buf |= ADS8344_CHANNEL(channel);
> > 84 adc->tx_buf |= ADS8344_CLOCK_INTERNAL;
> > 85
> > 86 ret = spi_write(spi, &adc->tx_buf, 1);
> > 87 if (ret)
> > 88 return ret;
> > 89
> > 90 udelay(9);
> > 91
> > 92 ret = spi_read(spi, buf, sizeof(buf));
> > 93 if (ret)
> > 94 return ret;
> > 95
> > > 96 return buf[0] << 9 | buf[1] << 1 | buf[2] >> 7;
> > 97 }
> > 98
> >
>
> I take it this is a false positive as I don't get any errors when
> building this driver with the provided toolchain. However, I see a few
> "internal compiler error: in priority, at haifa-sched.c:1599"
>
> --
> Alexandre Belloni, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>