Hi Joao,

[auto build test ERROR on arc/for-next]
[also build test ERROR on v4.4-rc2 next-20151124]

url:    
https://github.com/0day-ci/linux/commits/Joao-Pinto/add-new-platform-driver-for-PCI-RC/20151124-194755
base:   https://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc for-next
config: i386-allmodconfig (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   drivers/pci/host/pcie-designware.c: In function 'dw_pcie_host_init':
   drivers/pci/host/pcie-designware.c:555:7: error: implicit declaration of 
function 'pci_has_flag' [-Werror=implicit-function-declaration]
     if (!pci_has_flag(PCI_PROBE_ONLY)) {
          ^
   drivers/pci/host/pcie-designware.c:555:20: error: 'PCI_PROBE_ONLY' 
undeclared (first use in this function)
     if (!pci_has_flag(PCI_PROBE_ONLY)) {
                       ^
   drivers/pci/host/pcie-designware.c:555:20: note: each undeclared identifier 
is reported only once for each function it appears in
   drivers/pci/host/pcie-designware.c: In function 'dw_pcie_link_retrain':
>> drivers/pci/host/pcie-designware.c:713:23: error: 
>> 'LINK_CONTROL_LINK_STATUS_REG' undeclared (first use in this function)
     dw_pcie_readl_rc(pp, LINK_CONTROL_LINK_STATUS_REG, &val);
                          ^
>> drivers/pci/host/pcie-designware.c:714:14: error: 'PCIE_RETRAIN_LINK_MASK' 
>> undeclared (first use in this function)
     val = val | PCIE_RETRAIN_LINK_MASK;
                 ^
   cc1: some warnings being treated as errors

vim +/LINK_CONTROL_LINK_STATUS_REG +713 drivers/pci/host/pcie-designware.c

   549  
   550  #ifdef CONFIG_ARM
   551          /* support old dtbs that incorrectly describe IRQs */
   552          pci_fixup_irqs(pci_common_swizzle, of_irq_parse_and_map_pci);
   553  #endif
   554  
 > 555          if (!pci_has_flag(PCI_PROBE_ONLY)) {
   556                  pci_bus_size_bridges(bus);
   557                  pci_bus_assign_resources(bus);
   558  
   559                  list_for_each_entry(child, &bus->children, node)
   560                          pcie_bus_configure_settings(child);
   561          }
   562  
   563          pci_bus_add_devices(bus);
   564          return 0;
   565  }
   566  
   567  static int dw_pcie_rd_other_conf(struct pcie_port *pp, struct pci_bus 
*bus,
   568                  u32 devfn, int where, int size, u32 *val)
   569  {
   570          int ret, type;
   571          u32 busdev, cfg_size;
   572          u64 cpu_addr;
   573          void __iomem *va_cfg_base;
   574  
   575          busdev = PCIE_ATU_BUS(bus->number) | 
PCIE_ATU_DEV(PCI_SLOT(devfn)) |
   576                   PCIE_ATU_FUNC(PCI_FUNC(devfn));
   577  
   578          if (bus->parent->number == pp->root_bus_nr) {
   579                  type = PCIE_ATU_TYPE_CFG0;
   580                  cpu_addr = pp->cfg0_base;
   581                  cfg_size = pp->cfg0_size;
   582                  va_cfg_base = pp->va_cfg0_base;
   583          } else {
   584                  type = PCIE_ATU_TYPE_CFG1;
   585                  cpu_addr = pp->cfg1_base;
   586                  cfg_size = pp->cfg1_size;
   587                  va_cfg_base = pp->va_cfg1_base;
   588          }
   589  
   590          dw_pcie_prog_outbound_atu(pp, PCIE_ATU_REGION_INDEX0,
   591                                    type, cpu_addr,
   592                                    busdev, cfg_size);
   593          ret = dw_pcie_cfg_read(va_cfg_base + where, size, val);
   594          dw_pcie_prog_outbound_atu(pp, PCIE_ATU_REGION_INDEX0,
   595                                    PCIE_ATU_TYPE_IO, pp->io_base,
   596                                    pp->io_bus_addr, pp->io_size);
   597  
   598          return ret;
   599  }
   600  
   601  static int dw_pcie_wr_other_conf(struct pcie_port *pp, struct pci_bus 
*bus,
   602                  u32 devfn, int where, int size, u32 val)
   603  {
   604          int ret, type;
   605          u32 busdev, cfg_size;
   606          u64 cpu_addr;
   607          void __iomem *va_cfg_base;
   608  
   609          busdev = PCIE_ATU_BUS(bus->number) | 
PCIE_ATU_DEV(PCI_SLOT(devfn)) |
   610                   PCIE_ATU_FUNC(PCI_FUNC(devfn));
   611  
   612          if (bus->parent->number == pp->root_bus_nr) {
   613                  type = PCIE_ATU_TYPE_CFG0;
   614                  cpu_addr = pp->cfg0_base;
   615                  cfg_size = pp->cfg0_size;
   616                  va_cfg_base = pp->va_cfg0_base;
   617          } else {
   618                  type = PCIE_ATU_TYPE_CFG1;
   619                  cpu_addr = pp->cfg1_base;
   620                  cfg_size = pp->cfg1_size;
   621                  va_cfg_base = pp->va_cfg1_base;
   622          }
   623  
   624          dw_pcie_prog_outbound_atu(pp, PCIE_ATU_REGION_INDEX0,
   625                                    type, cpu_addr,
   626                                    busdev, cfg_size);
   627          ret = dw_pcie_cfg_write(va_cfg_base + where, size, val);
   628          dw_pcie_prog_outbound_atu(pp, PCIE_ATU_REGION_INDEX0,
   629                                    PCIE_ATU_TYPE_IO, pp->io_base,
   630                                    pp->io_bus_addr, pp->io_size);
   631  
   632          return ret;
   633  }
   634  
   635  static int dw_pcie_valid_config(struct pcie_port *pp,
   636                                  struct pci_bus *bus, int dev)
   637  {
   638          /* If there is no link, then there is no device */
   639          if (bus->number != pp->root_bus_nr) {
   640                  if (!dw_pcie_link_up(pp))
   641                          return 0;
   642          }
   643  
   644          /* access only one slot on each root port */
   645          if (bus->number == pp->root_bus_nr && dev > 0)
   646                  return 0;
   647  
   648          /*
   649           * do not read more than one device on the bus directly attached
   650           * to RC's (Virtual Bridge's) DS side.
   651           */
   652          if (bus->primary == pp->root_bus_nr && dev > 0)
   653                  return 0;
   654  
   655          return 1;
   656  }
   657  
   658  static int dw_pcie_rd_conf(struct pci_bus *bus, u32 devfn, int where,
   659                          int size, u32 *val)
   660  {
   661          struct pcie_port *pp = bus->sysdata;
   662          int ret;
   663  
   664          if (dw_pcie_valid_config(pp, bus, PCI_SLOT(devfn)) == 0) {
   665                  *val = 0xffffffff;
   666                  return PCIBIOS_DEVICE_NOT_FOUND;
   667          }
   668  
   669          if (bus->number != pp->root_bus_nr)
   670                  if (pp->ops->rd_other_conf)
   671                          ret = pp->ops->rd_other_conf(pp, bus, devfn,
   672                                                  where, size, val);
   673                  else
   674                          ret = dw_pcie_rd_other_conf(pp, bus, devfn,
   675                                                  where, size, val);
   676          else
   677                  ret = dw_pcie_rd_own_conf(pp, where, size, val);
   678  
   679          return ret;
   680  }
   681  
   682  static int dw_pcie_wr_conf(struct pci_bus *bus, u32 devfn,
   683                          int where, int size, u32 val)
   684  {
   685          struct pcie_port *pp = bus->sysdata;
   686          int ret;
   687  
   688          if (dw_pcie_valid_config(pp, bus, PCI_SLOT(devfn)) == 0)
   689                  return PCIBIOS_DEVICE_NOT_FOUND;
   690  
   691          if (bus->number != pp->root_bus_nr)
   692                  if (pp->ops->wr_other_conf)
   693                          ret = pp->ops->wr_other_conf(pp, bus, devfn,
   694                                                  where, size, val);
   695                  else
   696                          ret = dw_pcie_wr_other_conf(pp, bus, devfn,
   697                                                  where, size, val);
   698          else
   699                  ret = dw_pcie_wr_own_conf(pp, where, size, val);
   700  
   701          return ret;
   702  }
   703  
   704  static struct pci_ops dw_pcie_ops = {
   705          .read = dw_pcie_rd_conf,
   706          .write = dw_pcie_wr_conf,
   707  };
   708  
   709  void dw_pcie_link_retrain(struct pcie_port *pp)
   710  {
   711          u32 val = 0;
   712  
 > 713          dw_pcie_readl_rc(pp, LINK_CONTROL_LINK_STATUS_REG, &val);
 > 714          val = val | PCIE_RETRAIN_LINK_MASK;
   715          dw_pcie_writel_rc(pp, val, LINK_CONTROL_LINK_STATUS_REG);
   716  }
   717  

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

Attachment: .config.gz
Description: Binary data

Reply via email to