devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: John Garry <john.garry@huawei.com>
Cc: kbuild-all@01.org, mika.westerberg@linux.intel.com,
	rafael@kernel.org, lorenzo.pieralisi@arm.com, rjw@rjwysocki.net,
	robh+dt@kernel.org, bhelgaas@google.com, arnd@arndb.de,
	mark.rutland@arm.com, olof@lixom.net, hanjun.guo@linaro.org,
	dann.frazier@canonical.com, benh@kernel.crashing.org,
	linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org,
	linuxarm@huawei.com, linux-pci@vger.kernel.org, minyard@acm.org,
	devicetree@vger.kernel.org, linux-arch@vger.kernel.org,
	Zhichang Yuan <yuanzhichang@hisilicon.com>,
	Gabriele Paoloni <gabriele.paoloni@huawei.com>
Subject: Re: [PATCH v11 5/9] OF: Add missing I/O range exception for indirect-IO devices
Date: Sun, 21 Jan 2018 22:04:57 +0800	[thread overview]
Message-ID: <201801212108.whB9DRnK%fengguang.wu@intel.com> (raw)
In-Reply-To: <1516537647-50553-6-git-send-email-john.garry@huawei.com>

[-- Attachment #1: Type: text/plain, Size: 5880 bytes --]

Hi Zhichang,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.15-rc8 next-20180119]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/John-Garry/LPC-legacy-ISA-I-O-support/20180121-194832
config: m68k-allyesconfig (attached as .config)
compiler: m68k-linux-gnu-gcc (Debian 7.2.0-11) 7.2.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
        make.cross ARCH=m68k 

All errors (new ones prefixed by >>):

   drivers//of/address.c: In function '__of_translate_address':
   drivers//of/address.c:625:13: error: implicit declaration of function 'find_io_range_by_fwnode' [-Werror=implicit-function-declaration]
      iorange = find_io_range_by_fwnode(&dev->fwnode);
                ^~~~~~~~~~~~~~~~~~~~~~~
   drivers//of/address.c:625:11: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
      iorange = find_io_range_by_fwnode(&dev->fwnode);
              ^
   drivers//of/address.c:626:26: error: dereferencing pointer to incomplete type 'struct logic_pio_hwaddr'
      if (iorange && (iorange->flags != PIO_CPU_MMIO)) {
                             ^~
>> drivers//of/address.c:626:37: error: 'PIO_CPU_MMIO' undeclared (first use in this function)
      if (iorange && (iorange->flags != PIO_CPU_MMIO)) {
                                        ^~~~~~~~~~~~
   drivers//of/address.c:626:37: note: each undeclared identifier is reported only once for each function it appears in
   drivers//of/address.c: In function 'of_translate_ioport':
   drivers//of/address.c:742:10: error: implicit declaration of function 'logic_pio_trans_hwaddr' [-Werror=implicit-function-declaration]
      port = logic_pio_trans_hwaddr(&host->fwnode, taddr, size);
             ^~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +/PIO_CPU_MMIO +626 drivers//of/address.c

   556	
   557	/*
   558	 * Translate an address from the device-tree into a CPU physical address,
   559	 * this walks up the tree and applies the various bus mappings on the
   560	 * way.
   561	 *
   562	 * Note: We consider that crossing any level with #size-cells == 0 to mean
   563	 * that translation is impossible (that is we are not dealing with a value
   564	 * that can be mapped to a cpu physical address). This is not really specified
   565	 * that way, but this is traditionally the way IBM at least do things
   566	 *
   567	 * Whenever the translation fails, the *host pointer will be set to the
   568	 * device that had registered logical PIO mapping, and the return code is
   569	 * relative to that node.
   570	 */
   571	static u64 __of_translate_address(struct device_node *dev,
   572					  const __be32 *in_addr, const char *rprop,
   573					  struct device_node **host)
   574	{
   575		struct device_node *parent = NULL;
   576		struct of_bus *bus, *pbus;
   577		__be32 addr[OF_MAX_ADDR_CELLS];
   578		int na, ns, pna, pns;
   579		u64 result = OF_BAD_ADDR;
   580	
   581		pr_debug("** translation for device %pOF **\n", dev);
   582	
   583		/* Increase refcount at current level */
   584		of_node_get(dev);
   585	
   586		*host = NULL;
   587		/* Get parent & match bus type */
   588		parent = of_get_parent(dev);
   589		if (parent == NULL)
   590			goto bail;
   591		bus = of_match_bus(parent);
   592	
   593		/* Count address cells & copy address locally */
   594		bus->count_cells(dev, &na, &ns);
   595		if (!OF_CHECK_COUNTS(na, ns)) {
   596			pr_debug("Bad cell count for %pOF\n", dev);
   597			goto bail;
   598		}
   599		memcpy(addr, in_addr, na * 4);
   600	
   601		pr_debug("bus is %s (na=%d, ns=%d) on %pOF\n",
   602		    bus->name, na, ns, parent);
   603		of_dump_addr("translating address:", addr, na);
   604	
   605		/* Translate */
   606		for (;;) {
   607			struct logic_pio_hwaddr *iorange;
   608	
   609			/* Switch to parent bus */
   610			of_node_put(dev);
   611			dev = parent;
   612			parent = of_get_parent(dev);
   613	
   614			/* If root, we have finished */
   615			if (parent == NULL) {
   616				pr_debug("reached root node\n");
   617				result = of_read_number(addr, na);
   618				break;
   619			}
   620	
   621			/*
   622			 * For indirectIO device which has no ranges property, get
   623			 * the address from reg directly.
   624			 */
 > 625			iorange = find_io_range_by_fwnode(&dev->fwnode);
 > 626			if (iorange && (iorange->flags != PIO_CPU_MMIO)) {
   627				result = of_read_number(addr + 1, na - 1);
   628				pr_debug("indirectIO matched(%s) 0x%llx\n",
   629						of_node_full_name(dev), result);
   630				*host = of_node_get(dev);
   631				break;
   632			}
   633	
   634			/* Get new parent bus and counts */
   635			pbus = of_match_bus(parent);
   636			pbus->count_cells(dev, &pna, &pns);
   637			if (!OF_CHECK_COUNTS(pna, pns)) {
   638				pr_err("Bad cell count for %pOF\n", dev);
   639				break;
   640			}
   641	
   642			pr_debug("parent bus is %s (na=%d, ns=%d) on %pOF\n",
   643			    pbus->name, pna, pns, parent);
   644	
   645			/* Apply bus translation */
   646			if (of_translate_one(dev, bus, pbus, addr, na, ns, pna, rprop))
   647				break;
   648	
   649			/* Complete the move up one level */
   650			na = pna;
   651			ns = pns;
   652			bus = pbus;
   653	
   654			of_dump_addr("one level translation:", addr, na);
   655		}
   656	 bail:
   657		of_node_put(parent);
   658		of_node_put(dev);
   659	
   660		return result;
   661	}
   662	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 45390 bytes --]

  reply	other threads:[~2018-01-21 14:04 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-21 12:27 [PATCH v11 0/9] LPC: legacy ISA I/O support John Garry
2018-01-21 12:27 ` [PATCH v11 1/9] LIB: Introduce a generic PIO mapping method John Garry
2018-01-21 13:17   ` kbuild test robot
2018-01-21 13:29   ` kbuild test robot
     [not found] ` <1516537647-50553-1-git-send-email-john.garry-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2018-01-21 12:27   ` [PATCH v11 2/9] PCI: Remove unused __weak attribute in pci_register_io_range() John Garry
2018-01-22 11:59     ` John Garry
2018-01-21 12:27   ` [PATCH v11 3/9] PCI: Add fwnode handler as input param of pci_register_io_range() John Garry
2018-01-21 12:27 ` [PATCH v11 4/9] PCI: Apply the new generic I/O management on PCI IO hosts John Garry
2018-01-21 12:27 ` [PATCH v11 5/9] OF: Add missing I/O range exception for indirect-IO devices John Garry
2018-01-21 14:04   ` kbuild test robot [this message]
2018-01-21 15:53   ` kbuild test robot
2018-01-21 12:27 ` [PATCH v11 6/9] LPC: Support the LPC host on Hip06/Hip07 with DT bindings John Garry
2018-01-21 17:54   ` Randy Dunlap
2018-01-22 10:13     ` John Garry
2018-01-21 12:27 ` [PATCH v11 7/9] ACPI: Translate the I/O range of non-MMIO devices before scanning John Garry
2018-01-21 12:27 ` [PATCH v11 8/9] LPC, ACPI: Add the HISI LPC ACPI support John Garry
2018-01-21 12:27 ` [PATCH v11 9/9] MAINTAINERS: Add maintainer for HiSilicon LPC driver John Garry

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201801212108.whB9DRnK%fengguang.wu@intel.com \
    --to=lkp@intel.com \
    --cc=arnd@arndb.de \
    --cc=benh@kernel.crashing.org \
    --cc=bhelgaas@google.com \
    --cc=dann.frazier@canonical.com \
    --cc=devicetree@vger.kernel.org \
    --cc=gabriele.paoloni@huawei.com \
    --cc=hanjun.guo@linaro.org \
    --cc=john.garry@huawei.com \
    --cc=kbuild-all@01.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=mika.westerberg@linux.intel.com \
    --cc=minyard@acm.org \
    --cc=olof@lixom.net \
    --cc=rafael@kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=robh+dt@kernel.org \
    --cc=yuanzhichang@hisilicon.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).