Loading drivers/pci/host/pcie-iproc-bcma.c +4 −3 Original line number Diff line number Diff line Loading @@ -42,16 +42,17 @@ static int iproc_pcie_bcma_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) static int iproc_pcie_bcma_probe(struct bcma_device *bdev) { struct device *dev = &bdev->dev; struct iproc_pcie *pcie; LIST_HEAD(res); struct resource res_mem; int ret; pcie = devm_kzalloc(&bdev->dev, sizeof(*pcie), GFP_KERNEL); pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); if (!pcie) return -ENOMEM; pcie->dev = &bdev->dev; pcie->dev = dev; bcma_set_drvdata(bdev, pcie); pcie->base = bdev->io_addr; Loading @@ -67,7 +68,7 @@ static int iproc_pcie_bcma_probe(struct bcma_device *bdev) ret = iproc_pcie_setup(pcie, &res); if (ret) dev_err(pcie->dev, "PCIe controller setup failed\n"); dev_err(dev, "PCIe controller setup failed\n"); pci_free_resource_list(&res); Loading drivers/pci/host/pcie-iproc-platform.c +13 −12 Original line number Diff line number Diff line Loading @@ -40,35 +40,36 @@ MODULE_DEVICE_TABLE(of, iproc_pcie_of_match_table); static int iproc_pcie_pltfm_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; const struct of_device_id *of_id; struct iproc_pcie *pcie; struct device_node *np = pdev->dev.of_node; struct device_node *np = dev->of_node; struct resource reg; resource_size_t iobase = 0; LIST_HEAD(res); int ret; of_id = of_match_device(iproc_pcie_of_match_table, &pdev->dev); of_id = of_match_device(iproc_pcie_of_match_table, dev); if (!of_id) return -EINVAL; pcie = devm_kzalloc(&pdev->dev, sizeof(struct iproc_pcie), GFP_KERNEL); pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); if (!pcie) return -ENOMEM; pcie->dev = &pdev->dev; pcie->dev = dev; pcie->type = (enum iproc_pcie_type)of_id->data; platform_set_drvdata(pdev, pcie); ret = of_address_to_resource(np, 0, ®); if (ret < 0) { dev_err(pcie->dev, "unable to obtain controller resources\n"); dev_err(dev, "unable to obtain controller resources\n"); return ret; } pcie->base = devm_ioremap(pcie->dev, reg.start, resource_size(®)); pcie->base = devm_ioremap(dev, reg.start, resource_size(®)); if (!pcie->base) { dev_err(pcie->dev, "unable to map controller registers\n"); dev_err(dev, "unable to map controller registers\n"); return -ENOMEM; } pcie->base_addr = reg.start; Loading @@ -79,7 +80,7 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev) ret = of_property_read_u32(np, "brcm,pcie-ob-axi-offset", &val); if (ret) { dev_err(pcie->dev, dev_err(dev, "missing brcm,pcie-ob-axi-offset property\n"); return ret; } Loading @@ -88,7 +89,7 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev) ret = of_property_read_u32(np, "brcm,pcie-ob-window-size", &val); if (ret) { dev_err(pcie->dev, dev_err(dev, "missing brcm,pcie-ob-window-size property\n"); return ret; } Loading @@ -101,7 +102,7 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev) } /* PHY use is optional */ pcie->phy = devm_phy_get(&pdev->dev, "pcie-phy"); pcie->phy = devm_phy_get(dev, "pcie-phy"); if (IS_ERR(pcie->phy)) { if (PTR_ERR(pcie->phy) == -EPROBE_DEFER) return -EPROBE_DEFER; Loading @@ -110,7 +111,7 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev) ret = of_pci_get_host_bridge_resources(np, 0, 0xff, &res, &iobase); if (ret) { dev_err(pcie->dev, dev_err(dev, "unable to get PCI host bridge resources\n"); return ret; } Loading @@ -119,7 +120,7 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev) ret = iproc_pcie_setup(pcie, &res); if (ret) dev_err(pcie->dev, "PCIe controller setup failed\n"); dev_err(dev, "PCIe controller setup failed\n"); pci_free_resource_list(&res); Loading drivers/pci/host/pcie-iproc.c +21 −17 Original line number Diff line number Diff line Loading @@ -258,6 +258,7 @@ static void iproc_pcie_reset(struct iproc_pcie *pcie) static int iproc_pcie_check_link(struct iproc_pcie *pcie, struct pci_bus *bus) { struct device *dev = pcie->dev; u8 hdr_type; u32 link_ctrl, class, val; u16 pos, link_status; Loading @@ -272,14 +273,14 @@ static int iproc_pcie_check_link(struct iproc_pcie *pcie, struct pci_bus *bus) val = iproc_pcie_read_reg(pcie, IPROC_PCIE_LINK_STATUS); if (!(val & PCIE_PHYLINKUP) || !(val & PCIE_DL_ACTIVE)) { dev_err(pcie->dev, "PHY or data link is INACTIVE!\n"); dev_err(dev, "PHY or data link is INACTIVE!\n"); return -ENODEV; } /* make sure we are not in EP mode */ pci_bus_read_config_byte(bus, 0, PCI_HEADER_TYPE, &hdr_type); if ((hdr_type & 0x7f) != PCI_HEADER_TYPE_BRIDGE) { dev_err(pcie->dev, "in EP mode, hdr=%#02x\n", hdr_type); dev_err(dev, "in EP mode, hdr=%#02x\n", hdr_type); return -EFAULT; } Loading Loading @@ -324,7 +325,7 @@ static int iproc_pcie_check_link(struct iproc_pcie *pcie, struct pci_bus *bus) } } dev_info(pcie->dev, "link: %s\n", link_is_active ? "UP" : "DOWN"); dev_info(dev, "link: %s\n", link_is_active ? "UP" : "DOWN"); return link_is_active ? 0 : -ENODEV; } Loading @@ -349,12 +350,13 @@ static int iproc_pcie_setup_ob(struct iproc_pcie *pcie, u64 axi_addr, u64 pci_addr, resource_size_t size) { struct iproc_pcie_ob *ob = &pcie->ob; struct device *dev = pcie->dev; unsigned i; u64 max_size = (u64)ob->window_size * MAX_NUM_OB_WINDOWS; u64 remainder; if (size > max_size) { dev_err(pcie->dev, dev_err(dev, "res size %pap exceeds max supported size 0x%llx\n", &size, max_size); return -EINVAL; Loading @@ -362,15 +364,14 @@ static int iproc_pcie_setup_ob(struct iproc_pcie *pcie, u64 axi_addr, div64_u64_rem(size, ob->window_size, &remainder); if (remainder) { dev_err(pcie->dev, dev_err(dev, "res size %pap needs to be multiple of window size %pap\n", &size, &ob->window_size); return -EINVAL; } if (axi_addr < ob->axi_offset) { dev_err(pcie->dev, "axi address %pap less than offset %pap\n", dev_err(dev, "axi address %pap less than offset %pap\n", &axi_addr, &ob->axi_offset); return -EINVAL; } Loading Loading @@ -406,6 +407,7 @@ static int iproc_pcie_setup_ob(struct iproc_pcie *pcie, u64 axi_addr, static int iproc_pcie_map_ranges(struct iproc_pcie *pcie, struct list_head *resources) { struct device *dev = pcie->dev; struct resource_entry *window; int ret; Loading @@ -425,7 +427,7 @@ static int iproc_pcie_map_ranges(struct iproc_pcie *pcie, return ret; break; default: dev_err(pcie->dev, "invalid resource %pR\n", res); dev_err(dev, "invalid resource %pR\n", res); return -EINVAL; } } Loading Loading @@ -455,6 +457,7 @@ static void iproc_pcie_msi_disable(struct iproc_pcie *pcie) int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res) { struct device *dev; int ret; void *sysdata; struct pci_bus *bus; Loading @@ -462,19 +465,20 @@ int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res) if (!pcie || !pcie->dev || !pcie->base) return -EINVAL; ret = devm_request_pci_bus_resources(pcie->dev, res); dev = pcie->dev; ret = devm_request_pci_bus_resources(dev, res); if (ret) return ret; ret = phy_init(pcie->phy); if (ret) { dev_err(pcie->dev, "unable to initialize PCIe PHY\n"); dev_err(dev, "unable to initialize PCIe PHY\n"); return ret; } ret = phy_power_on(pcie->phy); if (ret) { dev_err(pcie->dev, "unable to power on PCIe PHY\n"); dev_err(dev, "unable to power on PCIe PHY\n"); goto err_exit_phy; } Loading @@ -486,7 +490,7 @@ int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res) pcie->reg_offsets = iproc_pcie_reg_paxc; break; default: dev_err(pcie->dev, "incompatible iProc PCIe interface\n"); dev_err(dev, "incompatible iProc PCIe interface\n"); ret = -EINVAL; goto err_power_off_phy; } Loading @@ -496,7 +500,7 @@ int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res) if (pcie->need_ob_cfg) { ret = iproc_pcie_map_ranges(pcie, res); if (ret) { dev_err(pcie->dev, "map failed\n"); dev_err(dev, "map failed\n"); goto err_power_off_phy; } } Loading @@ -508,9 +512,9 @@ int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res) sysdata = pcie; #endif bus = pci_create_root_bus(pcie->dev, 0, &iproc_pcie_ops, sysdata, res); bus = pci_create_root_bus(dev, 0, &iproc_pcie_ops, sysdata, res); if (!bus) { dev_err(pcie->dev, "unable to create PCI root bus\n"); dev_err(dev, "unable to create PCI root bus\n"); ret = -ENOMEM; goto err_power_off_phy; } Loading @@ -518,7 +522,7 @@ int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res) ret = iproc_pcie_check_link(pcie, bus); if (ret) { dev_err(pcie->dev, "no PCIe EP device detected\n"); dev_err(dev, "no PCIe EP device detected\n"); goto err_rm_root_bus; } Loading @@ -526,7 +530,7 @@ int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res) if (IS_ENABLED(CONFIG_PCI_MSI)) if (iproc_pcie_msi_enable(pcie)) dev_info(pcie->dev, "not using iProc MSI\n"); dev_info(dev, "not using iProc MSI\n"); pci_scan_child_bus(bus); pci_assign_unassigned_bus_resources(bus); Loading Loading
drivers/pci/host/pcie-iproc-bcma.c +4 −3 Original line number Diff line number Diff line Loading @@ -42,16 +42,17 @@ static int iproc_pcie_bcma_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) static int iproc_pcie_bcma_probe(struct bcma_device *bdev) { struct device *dev = &bdev->dev; struct iproc_pcie *pcie; LIST_HEAD(res); struct resource res_mem; int ret; pcie = devm_kzalloc(&bdev->dev, sizeof(*pcie), GFP_KERNEL); pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); if (!pcie) return -ENOMEM; pcie->dev = &bdev->dev; pcie->dev = dev; bcma_set_drvdata(bdev, pcie); pcie->base = bdev->io_addr; Loading @@ -67,7 +68,7 @@ static int iproc_pcie_bcma_probe(struct bcma_device *bdev) ret = iproc_pcie_setup(pcie, &res); if (ret) dev_err(pcie->dev, "PCIe controller setup failed\n"); dev_err(dev, "PCIe controller setup failed\n"); pci_free_resource_list(&res); Loading
drivers/pci/host/pcie-iproc-platform.c +13 −12 Original line number Diff line number Diff line Loading @@ -40,35 +40,36 @@ MODULE_DEVICE_TABLE(of, iproc_pcie_of_match_table); static int iproc_pcie_pltfm_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; const struct of_device_id *of_id; struct iproc_pcie *pcie; struct device_node *np = pdev->dev.of_node; struct device_node *np = dev->of_node; struct resource reg; resource_size_t iobase = 0; LIST_HEAD(res); int ret; of_id = of_match_device(iproc_pcie_of_match_table, &pdev->dev); of_id = of_match_device(iproc_pcie_of_match_table, dev); if (!of_id) return -EINVAL; pcie = devm_kzalloc(&pdev->dev, sizeof(struct iproc_pcie), GFP_KERNEL); pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); if (!pcie) return -ENOMEM; pcie->dev = &pdev->dev; pcie->dev = dev; pcie->type = (enum iproc_pcie_type)of_id->data; platform_set_drvdata(pdev, pcie); ret = of_address_to_resource(np, 0, ®); if (ret < 0) { dev_err(pcie->dev, "unable to obtain controller resources\n"); dev_err(dev, "unable to obtain controller resources\n"); return ret; } pcie->base = devm_ioremap(pcie->dev, reg.start, resource_size(®)); pcie->base = devm_ioremap(dev, reg.start, resource_size(®)); if (!pcie->base) { dev_err(pcie->dev, "unable to map controller registers\n"); dev_err(dev, "unable to map controller registers\n"); return -ENOMEM; } pcie->base_addr = reg.start; Loading @@ -79,7 +80,7 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev) ret = of_property_read_u32(np, "brcm,pcie-ob-axi-offset", &val); if (ret) { dev_err(pcie->dev, dev_err(dev, "missing brcm,pcie-ob-axi-offset property\n"); return ret; } Loading @@ -88,7 +89,7 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev) ret = of_property_read_u32(np, "brcm,pcie-ob-window-size", &val); if (ret) { dev_err(pcie->dev, dev_err(dev, "missing brcm,pcie-ob-window-size property\n"); return ret; } Loading @@ -101,7 +102,7 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev) } /* PHY use is optional */ pcie->phy = devm_phy_get(&pdev->dev, "pcie-phy"); pcie->phy = devm_phy_get(dev, "pcie-phy"); if (IS_ERR(pcie->phy)) { if (PTR_ERR(pcie->phy) == -EPROBE_DEFER) return -EPROBE_DEFER; Loading @@ -110,7 +111,7 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev) ret = of_pci_get_host_bridge_resources(np, 0, 0xff, &res, &iobase); if (ret) { dev_err(pcie->dev, dev_err(dev, "unable to get PCI host bridge resources\n"); return ret; } Loading @@ -119,7 +120,7 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev) ret = iproc_pcie_setup(pcie, &res); if (ret) dev_err(pcie->dev, "PCIe controller setup failed\n"); dev_err(dev, "PCIe controller setup failed\n"); pci_free_resource_list(&res); Loading
drivers/pci/host/pcie-iproc.c +21 −17 Original line number Diff line number Diff line Loading @@ -258,6 +258,7 @@ static void iproc_pcie_reset(struct iproc_pcie *pcie) static int iproc_pcie_check_link(struct iproc_pcie *pcie, struct pci_bus *bus) { struct device *dev = pcie->dev; u8 hdr_type; u32 link_ctrl, class, val; u16 pos, link_status; Loading @@ -272,14 +273,14 @@ static int iproc_pcie_check_link(struct iproc_pcie *pcie, struct pci_bus *bus) val = iproc_pcie_read_reg(pcie, IPROC_PCIE_LINK_STATUS); if (!(val & PCIE_PHYLINKUP) || !(val & PCIE_DL_ACTIVE)) { dev_err(pcie->dev, "PHY or data link is INACTIVE!\n"); dev_err(dev, "PHY or data link is INACTIVE!\n"); return -ENODEV; } /* make sure we are not in EP mode */ pci_bus_read_config_byte(bus, 0, PCI_HEADER_TYPE, &hdr_type); if ((hdr_type & 0x7f) != PCI_HEADER_TYPE_BRIDGE) { dev_err(pcie->dev, "in EP mode, hdr=%#02x\n", hdr_type); dev_err(dev, "in EP mode, hdr=%#02x\n", hdr_type); return -EFAULT; } Loading Loading @@ -324,7 +325,7 @@ static int iproc_pcie_check_link(struct iproc_pcie *pcie, struct pci_bus *bus) } } dev_info(pcie->dev, "link: %s\n", link_is_active ? "UP" : "DOWN"); dev_info(dev, "link: %s\n", link_is_active ? "UP" : "DOWN"); return link_is_active ? 0 : -ENODEV; } Loading @@ -349,12 +350,13 @@ static int iproc_pcie_setup_ob(struct iproc_pcie *pcie, u64 axi_addr, u64 pci_addr, resource_size_t size) { struct iproc_pcie_ob *ob = &pcie->ob; struct device *dev = pcie->dev; unsigned i; u64 max_size = (u64)ob->window_size * MAX_NUM_OB_WINDOWS; u64 remainder; if (size > max_size) { dev_err(pcie->dev, dev_err(dev, "res size %pap exceeds max supported size 0x%llx\n", &size, max_size); return -EINVAL; Loading @@ -362,15 +364,14 @@ static int iproc_pcie_setup_ob(struct iproc_pcie *pcie, u64 axi_addr, div64_u64_rem(size, ob->window_size, &remainder); if (remainder) { dev_err(pcie->dev, dev_err(dev, "res size %pap needs to be multiple of window size %pap\n", &size, &ob->window_size); return -EINVAL; } if (axi_addr < ob->axi_offset) { dev_err(pcie->dev, "axi address %pap less than offset %pap\n", dev_err(dev, "axi address %pap less than offset %pap\n", &axi_addr, &ob->axi_offset); return -EINVAL; } Loading Loading @@ -406,6 +407,7 @@ static int iproc_pcie_setup_ob(struct iproc_pcie *pcie, u64 axi_addr, static int iproc_pcie_map_ranges(struct iproc_pcie *pcie, struct list_head *resources) { struct device *dev = pcie->dev; struct resource_entry *window; int ret; Loading @@ -425,7 +427,7 @@ static int iproc_pcie_map_ranges(struct iproc_pcie *pcie, return ret; break; default: dev_err(pcie->dev, "invalid resource %pR\n", res); dev_err(dev, "invalid resource %pR\n", res); return -EINVAL; } } Loading Loading @@ -455,6 +457,7 @@ static void iproc_pcie_msi_disable(struct iproc_pcie *pcie) int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res) { struct device *dev; int ret; void *sysdata; struct pci_bus *bus; Loading @@ -462,19 +465,20 @@ int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res) if (!pcie || !pcie->dev || !pcie->base) return -EINVAL; ret = devm_request_pci_bus_resources(pcie->dev, res); dev = pcie->dev; ret = devm_request_pci_bus_resources(dev, res); if (ret) return ret; ret = phy_init(pcie->phy); if (ret) { dev_err(pcie->dev, "unable to initialize PCIe PHY\n"); dev_err(dev, "unable to initialize PCIe PHY\n"); return ret; } ret = phy_power_on(pcie->phy); if (ret) { dev_err(pcie->dev, "unable to power on PCIe PHY\n"); dev_err(dev, "unable to power on PCIe PHY\n"); goto err_exit_phy; } Loading @@ -486,7 +490,7 @@ int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res) pcie->reg_offsets = iproc_pcie_reg_paxc; break; default: dev_err(pcie->dev, "incompatible iProc PCIe interface\n"); dev_err(dev, "incompatible iProc PCIe interface\n"); ret = -EINVAL; goto err_power_off_phy; } Loading @@ -496,7 +500,7 @@ int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res) if (pcie->need_ob_cfg) { ret = iproc_pcie_map_ranges(pcie, res); if (ret) { dev_err(pcie->dev, "map failed\n"); dev_err(dev, "map failed\n"); goto err_power_off_phy; } } Loading @@ -508,9 +512,9 @@ int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res) sysdata = pcie; #endif bus = pci_create_root_bus(pcie->dev, 0, &iproc_pcie_ops, sysdata, res); bus = pci_create_root_bus(dev, 0, &iproc_pcie_ops, sysdata, res); if (!bus) { dev_err(pcie->dev, "unable to create PCI root bus\n"); dev_err(dev, "unable to create PCI root bus\n"); ret = -ENOMEM; goto err_power_off_phy; } Loading @@ -518,7 +522,7 @@ int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res) ret = iproc_pcie_check_link(pcie, bus); if (ret) { dev_err(pcie->dev, "no PCIe EP device detected\n"); dev_err(dev, "no PCIe EP device detected\n"); goto err_rm_root_bus; } Loading @@ -526,7 +530,7 @@ int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res) if (IS_ENABLED(CONFIG_PCI_MSI)) if (iproc_pcie_msi_enable(pcie)) dev_info(pcie->dev, "not using iProc MSI\n"); dev_info(dev, "not using iProc MSI\n"); pci_scan_child_bus(bus); pci_assign_unassigned_bus_resources(bus); Loading