Hi Lorenzo, kernel test robot noticed the following build errors: [auto build test ERROR on next-20240416] [cannot apply to broonie-spi/for-next robh/for-next arm/for-next arm/fixes arm64/for-next/core kvmarm/next rockchip/for-next shawnguo/for-next soc/for-next linus/master v6.9-rc4 v6.9-rc3 v6.9-rc2 v6.9-rc4] [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/Lorenzo-Bianconi/dt-bindings-spi-airoha-Add-YAML-schema-for-SNFI-controller/20240417-144847 base: next-20240416 patch link: https://lore.kernel.org/r/25dd4334e3b37eaa628c20265841f251968c2b75.1713335916.git.lorenzo%40kernel.org patch subject: [PATCH v2 3/3] spi: airoha: add SPI-NAND Flash controller driver config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20240418/202404181933.AfPnhmy7-lkp@xxxxxxxxx/config) compiler: alpha-linux-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240418/202404181933.AfPnhmy7-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202404181933.AfPnhmy7-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): drivers/spi/spi-airoha-snfi.c: In function 'airoha_snand_set_fifo_op': >> drivers/spi/spi-airoha-snfi.c:233:28: error: implicit declaration of function 'FIELD_PREP' [-Werror=implicit-function-declaration] 233 | FIELD_PREP(SPI_CTRL_OPFIFO_LEN, op_len) | | ^~~~~~~~~~ drivers/spi/spi-airoha-snfi.c: In function 'airoha_snand_read_data_from_fifo': >> drivers/spi/spi-airoha-snfi.c:320:26: error: implicit declaration of function 'FIELD_GET' [-Werror=implicit-function-declaration] 320 | ptr[i] = FIELD_GET(SPI_CTRL_DFIFO_RDATA, val); | ^~~~~~~~~ cc1: some warnings being treated as errors vim +/FIELD_PREP +233 drivers/spi/spi-airoha-snfi.c 225 226 static int airoha_snand_set_fifo_op(struct airoha_snand_ctrl *as_ctrl, 227 u8 op_cmd, int op_len) 228 { 229 int err; 230 u32 val; 231 232 err = regmap_write(as_ctrl->regmap_ctrl, REG_SPI_CTRL_OPFIFO_WDATA, > 233 FIELD_PREP(SPI_CTRL_OPFIFO_LEN, op_len) | 234 FIELD_PREP(SPI_CTRL_OPFIFO_OP, op_cmd)); 235 if (err) 236 return err; 237 238 err = regmap_read_poll_timeout(as_ctrl->regmap_ctrl, 239 REG_SPI_CTRL_OPFIFO_FULL, 240 val, !(val & SPI_CTRL_OPFIFO_FULL), 241 0, 250 * USEC_PER_MSEC); 242 if (err) 243 return err; 244 245 err = regmap_write(as_ctrl->regmap_ctrl, REG_SPI_CTRL_OPFIFO_WR, 246 SPI_CTRL_OPFIFO_WR); 247 if (err) 248 return err; 249 250 return regmap_read_poll_timeout(as_ctrl->regmap_ctrl, 251 REG_SPI_CTRL_OPFIFO_EMPTY, 252 val, (val & SPI_CTRL_OPFIFO_EMPTY), 253 0, 250 * USEC_PER_MSEC); 254 } 255 256 static int airoha_snand_set_cs(struct airoha_snand_ctrl *as_ctrl, u8 cs) 257 { 258 return airoha_snand_set_fifo_op(as_ctrl, cs, sizeof(cs)); 259 } 260 261 static int airoha_snand_write_data_to_fifo(struct airoha_snand_ctrl *as_ctrl, 262 const u8 *data, int len) 263 { 264 int i; 265 266 for (i = 0; i < len; i++) { 267 int err; 268 u32 val; 269 270 /* 1. Wait until dfifo is not full */ 271 err = regmap_read_poll_timeout(as_ctrl->regmap_ctrl, 272 REG_SPI_CTRL_DFIFO_FULL, val, 273 !(val & SPI_CTRL_DFIFO_FULL), 274 0, 250 * USEC_PER_MSEC); 275 if (err) 276 return err; 277 278 /* 2. Write data to register DFIFO_WDATA */ 279 err = regmap_write(as_ctrl->regmap_ctrl, 280 REG_SPI_CTRL_DFIFO_WDATA, 281 FIELD_PREP(SPI_CTRL_DFIFO_WDATA, data[i])); 282 if (err) 283 return err; 284 285 /* 3. Wait until dfifo is not full */ 286 err = regmap_read_poll_timeout(as_ctrl->regmap_ctrl, 287 REG_SPI_CTRL_DFIFO_FULL, val, 288 !(val & SPI_CTRL_DFIFO_FULL), 289 0, 250 * USEC_PER_MSEC); 290 if (err) 291 return err; 292 } 293 294 return 0; 295 } 296 297 static int airoha_snand_read_data_from_fifo(struct airoha_snand_ctrl *as_ctrl, 298 u8 *ptr, int len) 299 { 300 int i; 301 302 for (i = 0; i < len; i++) { 303 int err; 304 u32 val; 305 306 /* 1. wait until dfifo is not empty */ 307 err = regmap_read_poll_timeout(as_ctrl->regmap_ctrl, 308 REG_SPI_CTRL_DFIFO_EMPTY, val, 309 !(val & SPI_CTRL_DFIFO_EMPTY), 310 0, 250 * USEC_PER_MSEC); 311 if (err) 312 return err; 313 314 /* 2. read from dfifo to register DFIFO_RDATA */ 315 err = regmap_read(as_ctrl->regmap_ctrl, 316 REG_SPI_CTRL_DFIFO_RDATA, &val); 317 if (err) 318 return err; 319 > 320 ptr[i] = FIELD_GET(SPI_CTRL_DFIFO_RDATA, val); 321 /* 3. enable register DFIFO_RD to read next byte */ 322 err = regmap_write(as_ctrl->regmap_ctrl, 323 REG_SPI_CTRL_DFIFO_RD, SPI_CTRL_DFIFO_RD); 324 if (err) 325 return err; 326 } 327 328 return 0; 329 } 330 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki