lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 18 May 2023 01:22:35 +0800
From:   kernel test robot <lkp@...el.com>
To:     Boerge Struempfel <boerge.struempfel@...il.com>
Cc:     llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
        boerge.struempfel@...il.com, bstruempfel@...ratronik.de,
        andy.shevchenko@...il.com, festevam@...il.com,
        amit.kumar-mahapatra@....com, broonie@...nel.org,
        Shawn Guo <shawnguo@...nel.org>,
        Sascha Hauer <s.hauer@...gutronix.de>,
        Pengutronix Kernel Team <kernel@...gutronix.de>,
        NXP Linux Team <linux-imx@....com>,
        linux-spi@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/3] spi: spi-imx: add support for SPI_MOSI_IDLE_LOW mode
 bit

Hi Boerge,

kernel test robot noticed the following build errors:

[auto build test ERROR on broonie-spi/for-next]
[also build test ERROR on shawnguo/for-next linus/master v6.4-rc2 next-20230517]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Boerge-Struempfel/spi-spi-imx-add-support-for-SPI_MOSI_IDLE_LOW-mode-bit/20230517-183245
base:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next
patch link:    https://lore.kernel.org/r/20230517103007.26287-2-boerge.struempfel%40gmail.com
patch subject: [PATCH 2/3] spi: spi-imx: add support for SPI_MOSI_IDLE_LOW mode bit
config: riscv-randconfig-r001-20230517
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project b0fb98227c90adf2536c9ad644a74d5e92961111)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://github.com/intel-lab-lkp/linux/commit/62dc97266153cfe514c983e9baeb51766f16daa2
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Boerge-Struempfel/spi-spi-imx-add-support-for-SPI_MOSI_IDLE_LOW-mode-bit/20230517-183245
        git checkout 62dc97266153cfe514c983e9baeb51766f16daa2
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash drivers/spi/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202305180035.jUAVfUNY-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/spi/spi-imx.c:580:11: error: unterminated function-like macro invocation
                   cfg &= ~MX51_ECSPI_CONFIG_DATACTL(spi_get_chipselect(spi, 0);
                           ^
   drivers/spi/spi-imx.c:284:9: note: macro 'MX51_ECSPI_CONFIG_DATACTL' defined here
   #define MX51_ECSPI_CONFIG_DATACTL(cs)   (1 << ((cs & 3) + 16))
           ^
>> drivers/spi/spi-imx.c:1956:39: error: expected expression
   MODULE_ALIAS("platform:" DRIVER_NAME);
                                         ^
>> drivers/spi/spi-imx.c:1956:39: error: expected '}'
   drivers/spi/spi-imx.c:522:1: note: to match this '{'
   {
   ^
   3 errors generated.


vim +580 drivers/spi/spi-imx.c

   519	
   520	static int mx51_ecspi_prepare_message(struct spi_imx_data *spi_imx,
   521					      struct spi_message *msg)
   522	{
   523		struct spi_device *spi = msg->spi;
   524		struct spi_transfer *xfer;
   525		u32 ctrl = MX51_ECSPI_CTRL_ENABLE;
   526		u32 min_speed_hz = ~0U;
   527		u32 testreg, delay;
   528		u32 cfg = readl(spi_imx->base + MX51_ECSPI_CONFIG);
   529		u32 current_cfg = cfg;
   530	
   531		/* set Master or Slave mode */
   532		if (spi_imx->slave_mode)
   533			ctrl &= ~MX51_ECSPI_CTRL_MODE_MASK;
   534		else
   535			ctrl |= MX51_ECSPI_CTRL_MODE_MASK;
   536	
   537		/*
   538		 * Enable SPI_RDY handling (falling edge/level triggered).
   539		 */
   540		if (spi->mode & SPI_READY)
   541			ctrl |= MX51_ECSPI_CTRL_DRCTL(spi_imx->spi_drctl);
   542	
   543		/* set chip select to use */
   544		ctrl |= MX51_ECSPI_CTRL_CS(spi_get_chipselect(spi, 0));
   545	
   546		/*
   547		 * The ctrl register must be written first, with the EN bit set other
   548		 * registers must not be written to.
   549		 */
   550		writel(ctrl, spi_imx->base + MX51_ECSPI_CTRL);
   551	
   552		testreg = readl(spi_imx->base + MX51_ECSPI_TESTREG);
   553		if (spi->mode & SPI_LOOP)
   554			testreg |= MX51_ECSPI_TESTREG_LBC;
   555		else
   556			testreg &= ~MX51_ECSPI_TESTREG_LBC;
   557		writel(testreg, spi_imx->base + MX51_ECSPI_TESTREG);
   558	
   559		/*
   560		 * eCSPI burst completion by Chip Select signal in Slave mode
   561		 * is not functional for imx53 Soc, config SPI burst completed when
   562		 * BURST_LENGTH + 1 bits are received
   563		 */
   564		if (spi_imx->slave_mode && is_imx53_ecspi(spi_imx))
   565			cfg &= ~MX51_ECSPI_CONFIG_SBBCTRL(spi_get_chipselect(spi, 0));
   566		else
   567			cfg |= MX51_ECSPI_CONFIG_SBBCTRL(spi_get_chipselect(spi, 0));
   568	
   569		if (spi->mode & SPI_CPOL) {
   570			cfg |= MX51_ECSPI_CONFIG_SCLKPOL(spi_get_chipselect(spi, 0));
   571			cfg |= MX51_ECSPI_CONFIG_SCLKCTL(spi_get_chipselect(spi, 0));
   572		} else {
   573			cfg &= ~MX51_ECSPI_CONFIG_SCLKPOL(spi_get_chipselect(spi, 0));
   574			cfg &= ~MX51_ECSPI_CONFIG_SCLKCTL(spi_get_chipselect(spi, 0));
   575		}
   576	
   577		if (spi->mode & SPI_MOSI_IDLE_LOW)
   578			cfg |= MX51_ECSPI_CONFIG_DATACTL(spi_get_chipselect(spi, 0));
   579		else
 > 580			cfg &= ~MX51_ECSPI_CONFIG_DATACTL(spi_get_chipselect(spi, 0);
   581	
   582		if (spi->mode & SPI_CS_HIGH)
   583			cfg |= MX51_ECSPI_CONFIG_SSBPOL(spi_get_chipselect(spi, 0));
   584		else
   585			cfg &= ~MX51_ECSPI_CONFIG_SSBPOL(spi_get_chipselect(spi, 0));
   586	
   587		if (cfg == current_cfg)
   588			return 0;
   589	
   590		writel(cfg, spi_imx->base + MX51_ECSPI_CONFIG);
   591	
   592		/*
   593		 * Wait until the changes in the configuration register CONFIGREG
   594		 * propagate into the hardware. It takes exactly one tick of the
   595		 * SCLK clock, but we will wait two SCLK clock just to be sure. The
   596		 * effect of the delay it takes for the hardware to apply changes
   597		 * is noticable if the SCLK clock run very slow. In such a case, if
   598		 * the polarity of SCLK should be inverted, the GPIO ChipSelect might
   599		 * be asserted before the SCLK polarity changes, which would disrupt
   600		 * the SPI communication as the device on the other end would consider
   601		 * the change of SCLK polarity as a clock tick already.
   602		 *
   603		 * Because spi_imx->spi_bus_clk is only set in prepare_message
   604		 * callback, iterate over all the transfers in spi_message, find the
   605		 * one with lowest bus frequency, and use that bus frequency for the
   606		 * delay calculation. In case all transfers have speed_hz == 0, then
   607		 * min_speed_hz is ~0 and the resulting delay is zero.
   608		 */
   609		list_for_each_entry(xfer, &msg->transfers, transfer_list) {
   610			if (!xfer->speed_hz)
   611				continue;
   612			min_speed_hz = min(xfer->speed_hz, min_speed_hz);
   613		}
   614	
   615		delay = (2 * 1000000) / min_speed_hz;
   616		if (likely(delay < 10))	/* SCLK is faster than 200 kHz */
   617			udelay(delay);
   618		else			/* SCLK is _very_ slow */
   619			usleep_range(delay, delay + 10);
   620	
   621		return 0;
   622	}
   623	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

View attachment "config" of type "text/plain" (152012 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ