[xilinx-xlnx:xlnx_rebase_v5.4 942/1768] drivers/mtd/spi-nor/spi-nor.c:5196:14: error: implicit declaration of function 'of_get_next_parent'; did you mean 'of_get_parent'?
kernel test robot
lkp at intel.com
Tue Dec 14 18:03:22 PST 2021
tree: https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.4
head: abafefebd1f1e040eef74e4ab571ea08bf745641
commit: 24bcc7359bdd609cedf0a715d77dc39e4ad782db [942/1768] mtd: spi-nor: Added axi-qspi support in spi-nor framework
config: i386-randconfig-a001-20211214 (https://download.01.org/0day-ci/archive/20211215/202112150952.YLxYr8r4-lkp@intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/Xilinx/linux-xlnx/commit/24bcc7359bdd609cedf0a715d77dc39e4ad782db
git remote add xilinx-xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xilinx-xlnx xlnx_rebase_v5.4
git checkout 24bcc7359bdd609cedf0a715d77dc39e4ad782db
# save the config file to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/mtd/spi-nor/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>
All error/warnings (new ones prefixed by >>):
drivers/mtd/spi-nor/spi-nor.c: In function 'spi_nor_write_ear':
drivers/mtd/spi-nor/spi-nor.c:691:5: warning: variable 'code' set but not used [-Wunused-but-set-variable]
691 | u8 code;
| ^~~~
drivers/mtd/spi-nor/spi-nor.c: In function 'spi_nor_read':
drivers/mtd/spi-nor/spi-nor.c:2741:9: warning: variable 'addr' set but not used [-Wunused-but-set-variable]
2741 | loff_t addr = 0;
| ^~~~
drivers/mtd/spi-nor/spi-nor.c: In function 'spi_nor_set_addr_width':
>> drivers/mtd/spi-nor/spi-nor.c:5196:14: error: implicit declaration of function 'of_get_next_parent'; did you mean 'of_get_parent'? [-Werror=implicit-function-declaration]
5196 | np_spi = of_get_next_parent(np);
| ^~~~~~~~~~~~~~~~~~
| of_get_parent
>> drivers/mtd/spi-nor/spi-nor.c:5196:12: warning: assignment to 'struct device_node *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
5196 | np_spi = of_get_next_parent(np);
| ^
drivers/mtd/spi-nor/spi-nor.c: In function 'spi_nor_get_flash_info':
drivers/mtd/spi-nor/spi-nor.c:5266:11: warning: return discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
5266 | return jinfo;
| ^~~~~
drivers/mtd/spi-nor/spi-nor.c:5281:9: warning: return discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
5281 | return info;
| ^~~~
drivers/mtd/spi-nor/spi-nor.c: In function 'spi_nor_scan':
drivers/mtd/spi-nor/spi-nor.c:5295:6: warning: unused variable 'is_dual' [-Wunused-variable]
5295 | u32 is_dual;
| ^~~~~~~
drivers/mtd/spi-nor/spi-nor.c:5294:22: warning: unused variable 'np_spi' [-Wunused-variable]
5294 | struct device_node *np_spi;
| ^~~~~~
At top level:
drivers/mtd/spi-nor/spi-nor.c:781:12: warning: 'read_ear' defined but not used [-Wunused-function]
781 | static int read_ear(struct spi_nor *nor, struct flash_info *info)
| ^~~~~~~~
cc1: some warnings being treated as errors
vim +5196 drivers/mtd/spi-nor/spi-nor.c
5162
5163 static int spi_nor_set_addr_width(struct spi_nor *nor)
5164 {
5165 struct device_node *np = spi_nor_get_flash_node(nor);
5166 struct device_node *np_spi;
5167 if (nor->addr_width) {
5168 /* already configured from SFDP */
5169 } else if (nor->info->addr_width) {
5170 nor->addr_width = nor->info->addr_width;
5171 } else if (nor->mtd.size > 0x1000000) {
5172 #ifdef CONFIG_OF
5173 np_spi = of_get_next_parent(np);
5174 if (of_property_match_string(np_spi, "compatible",
5175 "xlnx,zynq-qspi-1.0") >= 0) {
5176 int status;
5177
5178 nor->addr_width = 3;
5179 nor->params.set_4byte(nor, false);
5180 status = read_ear(nor, (struct flash_info *)nor->info);
5181 if (status < 0)
5182 dev_warn(nor->dev, "failed to read ear reg\n");
5183 else
5184 nor->curbank = status & EAR_SEGMENT_MASK;
5185 } else {
5186 #endif
5187 /*
5188 * enable 4-byte addressing if the
5189 * device exceeds 16MiB
5190 */
5191 nor->addr_width = 4;
5192 if (JEDEC_MFR(nor->info) == SNOR_MFR_SPANSION ||
5193 nor->info->flags & SPI_NOR_4B_OPCODES) {
5194 spi_nor_set_4byte_opcodes(nor);
5195 } else {
> 5196 np_spi = of_get_next_parent(np);
5197 if (of_property_match_string(np_spi,
5198 "compatible",
5199 "xlnx,xps-spi-2.00.a") >= 0) {
5200 nor->addr_width = 3;
5201 nor->params.set_4byte(nor, false);
5202 } else {
5203 nor->params.set_4byte(nor, true);
5204 if (nor->isstacked) {
5205 nor->spi->master->flags |=
5206 SPI_MASTER_U_PAGE;
5207 nor->params.set_4byte(nor, true);
5208 nor->spi->master->flags &=
5209 ~SPI_MASTER_U_PAGE;
5210 }
5211 }
5212 }
5213 #ifdef CONFIG_OF
5214 }
5215 #endif
5216 } else {
5217 nor->addr_width = 3;
5218 }
5219
5220 if (nor->addr_width > SPI_NOR_MAX_ADDR_WIDTH) {
5221 dev_err(nor->dev, "address width is too large: %u\n",
5222 nor->addr_width);
5223 return -EINVAL;
5224 }
5225
5226 /* Set 4byte opcodes when possible. */
5227 if (nor->addr_width == 4 && nor->flags & SNOR_F_4B_OPCODES &&
5228 !(nor->flags & SNOR_F_HAS_4BAIT))
5229 spi_nor_set_4byte_opcodes(nor);
5230
5231 return 0;
5232 }
5233
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
More information about the linux-arm-kernel
mailing list