[xlnx:xlnx_rebase_v5.4 942/1759] 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
Wed May 26 05:03:10 PDT 2021


Hi Amit,

FYI, the error/warning still remains.

tree:   https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.4
head:   8ee418d98ee353b439aa529bb5789c28702d6ffd
commit: 24bcc7359bdd609cedf0a715d77dc39e4ad782db [942/1759] mtd: spi-nor: Added axi-qspi support in spi-nor framework
config: m68k-randconfig-m031-20210526 (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
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
        # https://github.com/Xilinx/linux-xlnx/commit/24bcc7359bdd609cedf0a715d77dc39e4ad782db
        git remote add xlnx https://github.com/Xilinx/linux-xlnx
        git fetch --no-tags xlnx xlnx_rebase_v5.4
        git checkout 24bcc7359bdd609cedf0a715d77dc39e4ad782db
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

All errors (new ones prefixed by >>):

   In file included from arch/m68k/include/asm/page.h:49,
                    from arch/m68k/include/asm/thread_info.h:6,
                    from include/linux/thread_info.h:38,
                    from include/asm-generic/preempt.h:5,
                    from ./arch/m68k/include/generated/asm/preempt.h:1,
                    from include/linux/preempt.h:78,
                    from include/linux/spinlock.h:51,
                    from include/linux/seqlock.h:36,
                    from include/linux/time.h:6,
                    from include/linux/stat.h:19,
                    from include/linux/module.h:10,
                    from drivers/mtd/spi-nor/spi-nor.c:12:
   drivers/mtd/spi-nor/spi-nor.c: In function 'spi_nor_spimem_xfer_data':
   arch/m68k/include/asm/page_no.h:33:50: warning: ordered comparison of pointer with null pointer [-Wextra]
      33 | #define virt_addr_valid(kaddr) (((void *)(kaddr) >= (void *)PAGE_OFFSET) && \
         |                                                  ^~
   drivers/mtd/spi-nor/spi-nor.c:269:34: note: in expansion of macro 'virt_addr_valid'
     269 |  if (object_is_on_stack(buf) || !virt_addr_valid(buf))
         |                                  ^~~~~~~~~~~~~~~
   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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 12588 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20210526/15ed4ca4/attachment.gz>


More information about the linux-arm-kernel mailing list