You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge tag 'pci-v4.3-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
Pull PCI updates from Bjorn Helgaas: "PCI changes for the v4.3 merge window: Enumeration: - Allocate ATS struct during enumeration (Bjorn Helgaas) - Embed ATS info directly into struct pci_dev (Bjorn Helgaas) - Reduce size of ATS structure elements (Bjorn Helgaas) - Stop caching ATS Invalidate Queue Depth (Bjorn Helgaas) - iommu/vt-d: Cache PCI ATS state and Invalidate Queue Depth (Bjorn Helgaas) - Move MPS configuration check to pci_configure_device() (Bjorn Helgaas) - Set MPS to match upstream bridge (Keith Busch) - ARM/PCI: Set MPS before pci_bus_add_devices() (Murali Karicheri) - Add pci_scan_root_bus_msi() (Lorenzo Pieralisi) - ARM/PCI, designware, xilinx: Use pci_scan_root_bus_msi() (Lorenzo Pieralisi) Resource management: - Call pci_read_bridge_bases() from core instead of arch code (Lorenzo Pieralisi) PCI device hotplug: - pciehp: Remove unused interrupt events (Bjorn Helgaas) - pciehp: Remove ignored MRL sensor interrupt events (Bjorn Helgaas) - pciehp: Handle invalid data when reading from non-existent devices (Jarod Wilson) - pciehp: Simplify pcie_poll_cmd() (Yijing Wang) - Use "slot" and "pci_slot" for struct hotplug_slot and struct pci_slot (Yijing Wang) - Protect pci_bus->slots with pci_slot_mutex, not pci_bus_sem (Yijing Wang) - Hold pci_slot_mutex while searching bus->slots list (Yijing Wang) Power management: - Disable async suspend/resume for JMicron multi-function SATA/AHCI (Zhang Rui) Virtualization: - Add ACS quirks for Intel I219-LM/V (Alex Williamson) - Restore ACS configuration as part of pci_restore_state() (Alexander Duyck) MSI: - Add pcibios_alloc_irq() and pcibios_free_irq() (Jiang Liu) - x86: Implement pcibios_alloc_irq() and pcibios_free_irq() (Jiang Liu) - Add helpers to manage pci_dev->irq and pci_dev->irq_managed (Jiang Liu) - Free legacy IRQ when enabling MSI/MSI-X (Jiang Liu) - ARM/PCI: Remove msi_controller from struct pci_sys_data (Lorenzo Pieralisi) - Remove unused pcibios_msi_controller() hook (Lorenzo Pieralisi) Generic host bridge driver: - Remove dependency on ARM-specific struct hw_pci (Jayachandran C) - Build setup-irq.o for arm64 (Jayachandran C) - Add arm64 support (Jayachandran C) APM X-Gene host bridge driver: - Add APM X-Gene PCIe 64-bit prefetchable window (Duc Dang) - Add support for a 64-bit prefetchable memory window (Duc Dang) - Drop owner assignment from platform_driver (Krzysztof Kozlowski) Broadcom iProc host bridge driver: - Allow BCMA bus driver to be built as module (Hauke Mehrtens) - Delete unnecessary checks before phy calls (Markus Elfring) - Add arm64 support (Ray Jui) Synopsys DesignWare host bridge driver: - Don't complain missing *config* reg space if va_cfg0 is set (Murali Karicheri) TI DRA7xx host bridge driver: - Disable pm_runtime on get_sync failure (Kishon Vijay Abraham I) - Add PM support (Kishon Vijay Abraham I) - Clear MSE bit during suspend so clocks will idle (Kishon Vijay Abraham I) - Add support to make GPIO drive PERST# line (Kishon Vijay Abraham I) Xilinx AXI host bridge driver: - Check for MSI interrupt flag before handling as INTx (Russell Joyce) Miscellaneous: - Fix Intersil/Techwell TW686[4589] AV capture class code (Krzysztof Hałasa) - Use PCI_CLASS_SERIAL_USB instead of bare number (Bjorn Helgaas) - Fix generic NCR 53c810 class code quirk (Bjorn Helgaas) - Fix TI816X class code quirk (Bjorn Helgaas) - Remove unused "pci_probe" flags (Bjorn Helgaas) - Host bridge driver code simplifications (Fabio Estevam) - Add dev_flags bit to access VPD through function 0 (Mark Rustad) - Add VPD function 0 quirk for Intel Ethernet devices (Mark Rustad) - Kill off set_irq_flags() usage (Rob Herring) - Remove Intel Cherrytrail D3 delays (Srinidhi Kasagar) - Clean up pci_find_capability() (Wei Yang)" * tag 'pci-v4.3-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (72 commits) PCI: Disable async suspend/resume for JMicron multi-function SATA/AHCI PCI: Set MPS to match upstream bridge PCI: Move MPS configuration check to pci_configure_device() PCI: Drop references acquired by of_parse_phandle() PCI/MSI: Remove unused pcibios_msi_controller() hook ARM/PCI: Remove msi_controller from struct pci_sys_data ARM/PCI, designware, xilinx: Use pci_scan_root_bus_msi() PCI: Add pci_scan_root_bus_msi() ARM/PCI: Replace panic with WARN messages on failures PCI: generic: Add arm64 support PCI: Build setup-irq.o for arm64 PCI: generic: Remove dependency on ARM-specific struct hw_pci PCI: imx6: Simplify a trivial if-return sequence PCI: spear: Use BUG_ON() instead of condition followed by BUG() PCI: dra7xx: Remove unneeded use of IS_ERR_VALUE() PCI: Remove pci_ats_enabled() PCI: Stop caching ATS Invalidate Queue Depth PCI: Move ATS declarations to linux/pci.h so they're all together PCI: Clean up ATS error handling PCI: Use pci_physfn() rather than looking up physfn by hand ...
This commit is contained in:
@@ -23,6 +23,9 @@ PCIe Designware Controller
|
|||||||
interrupt-map-mask,
|
interrupt-map-mask,
|
||||||
interrupt-map : as specified in ../designware-pcie.txt
|
interrupt-map : as specified in ../designware-pcie.txt
|
||||||
|
|
||||||
|
Optional Property:
|
||||||
|
- gpios : Should be added if a gpio line is required to drive PERST# line
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
axi {
|
axi {
|
||||||
compatible = "simple-bus";
|
compatible = "simple-bus";
|
||||||
|
|||||||
@@ -242,12 +242,7 @@ pci_restore_srm_config(void)
|
|||||||
|
|
||||||
void pcibios_fixup_bus(struct pci_bus *bus)
|
void pcibios_fixup_bus(struct pci_bus *bus)
|
||||||
{
|
{
|
||||||
struct pci_dev *dev = bus->self;
|
struct pci_dev *dev;
|
||||||
|
|
||||||
if (pci_has_flag(PCI_PROBE_ONLY) && dev &&
|
|
||||||
(dev->class >> 8) == PCI_CLASS_BRIDGE_PCI) {
|
|
||||||
pci_read_bridge_bases(bus);
|
|
||||||
}
|
|
||||||
|
|
||||||
list_for_each_entry(dev, &bus->devices, bus_list) {
|
list_for_each_entry(dev, &bus->devices, bus_list) {
|
||||||
pdev_save_srm_config(dev);
|
pdev_save_srm_config(dev);
|
||||||
|
|||||||
@@ -693,3 +693,7 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&pcie1 {
|
||||||
|
gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|||||||
@@ -211,7 +211,7 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
ranges = <0x51000000 0x51000000 0x3000
|
ranges = <0x51000000 0x51000000 0x3000
|
||||||
0x0 0x20000000 0x10000000>;
|
0x0 0x20000000 0x10000000>;
|
||||||
pcie@51000000 {
|
pcie1: pcie@51000000 {
|
||||||
compatible = "ti,dra7-pcie";
|
compatible = "ti,dra7-pcie";
|
||||||
reg = <0x51000000 0x2000>, <0x51002000 0x14c>, <0x1000 0x2000>;
|
reg = <0x51000000 0x2000>, <0x51002000 0x14c>, <0x1000 0x2000>;
|
||||||
reg-names = "rc_dbics", "ti_conf", "config";
|
reg-names = "rc_dbics", "ti_conf", "config";
|
||||||
|
|||||||
@@ -19,9 +19,7 @@ struct pci_bus;
|
|||||||
struct device;
|
struct device;
|
||||||
|
|
||||||
struct hw_pci {
|
struct hw_pci {
|
||||||
#ifdef CONFIG_PCI_MSI
|
|
||||||
struct msi_controller *msi_ctrl;
|
struct msi_controller *msi_ctrl;
|
||||||
#endif
|
|
||||||
struct pci_ops *ops;
|
struct pci_ops *ops;
|
||||||
int nr_controllers;
|
int nr_controllers;
|
||||||
void **private_data;
|
void **private_data;
|
||||||
@@ -42,9 +40,6 @@ struct hw_pci {
|
|||||||
* Per-controller structure
|
* Per-controller structure
|
||||||
*/
|
*/
|
||||||
struct pci_sys_data {
|
struct pci_sys_data {
|
||||||
#ifdef CONFIG_PCI_MSI
|
|
||||||
struct msi_controller *msi_ctrl;
|
|
||||||
#endif
|
|
||||||
struct list_head node;
|
struct list_head node;
|
||||||
int busnr; /* primary bus number */
|
int busnr; /* primary bus number */
|
||||||
u64 mem_offset; /* bus->cpu memory mapping offset */
|
u64 mem_offset; /* bus->cpu memory mapping offset */
|
||||||
|
|||||||
+15
-32
@@ -18,15 +18,6 @@
|
|||||||
|
|
||||||
static int debug_pci;
|
static int debug_pci;
|
||||||
|
|
||||||
#ifdef CONFIG_PCI_MSI
|
|
||||||
struct msi_controller *pcibios_msi_controller(struct pci_dev *dev)
|
|
||||||
{
|
|
||||||
struct pci_sys_data *sysdata = dev->bus->sysdata;
|
|
||||||
|
|
||||||
return sysdata->msi_ctrl;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We can't use pci_get_device() here since we are
|
* We can't use pci_get_device() here since we are
|
||||||
* called from interrupt context.
|
* called from interrupt context.
|
||||||
@@ -459,12 +450,9 @@ static void pcibios_init_hw(struct device *parent, struct hw_pci *hw,
|
|||||||
|
|
||||||
for (nr = busnr = 0; nr < hw->nr_controllers; nr++) {
|
for (nr = busnr = 0; nr < hw->nr_controllers; nr++) {
|
||||||
sys = kzalloc(sizeof(struct pci_sys_data), GFP_KERNEL);
|
sys = kzalloc(sizeof(struct pci_sys_data), GFP_KERNEL);
|
||||||
if (!sys)
|
if (WARN(!sys, "PCI: unable to allocate sys data!"))
|
||||||
panic("PCI: unable to allocate sys data!");
|
break;
|
||||||
|
|
||||||
#ifdef CONFIG_PCI_MSI
|
|
||||||
sys->msi_ctrl = hw->msi_ctrl;
|
|
||||||
#endif
|
|
||||||
sys->busnr = busnr;
|
sys->busnr = busnr;
|
||||||
sys->swizzle = hw->swizzle;
|
sys->swizzle = hw->swizzle;
|
||||||
sys->map_irq = hw->map_irq;
|
sys->map_irq = hw->map_irq;
|
||||||
@@ -486,11 +474,14 @@ static void pcibios_init_hw(struct device *parent, struct hw_pci *hw,
|
|||||||
if (hw->scan)
|
if (hw->scan)
|
||||||
sys->bus = hw->scan(nr, sys);
|
sys->bus = hw->scan(nr, sys);
|
||||||
else
|
else
|
||||||
sys->bus = pci_scan_root_bus(parent, sys->busnr,
|
sys->bus = pci_scan_root_bus_msi(parent,
|
||||||
hw->ops, sys, &sys->resources);
|
sys->busnr, hw->ops, sys,
|
||||||
|
&sys->resources, hw->msi_ctrl);
|
||||||
|
|
||||||
if (!sys->bus)
|
if (WARN(!sys->bus, "PCI: unable to scan bus!")) {
|
||||||
panic("PCI: unable to scan bus!");
|
kfree(sys);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
busnr = sys->bus->busn_res.end + 1;
|
busnr = sys->bus->busn_res.end + 1;
|
||||||
|
|
||||||
@@ -521,6 +512,8 @@ void pci_common_init_dev(struct device *parent, struct hw_pci *hw)
|
|||||||
struct pci_bus *bus = sys->bus;
|
struct pci_bus *bus = sys->bus;
|
||||||
|
|
||||||
if (!pci_has_flag(PCI_PROBE_ONLY)) {
|
if (!pci_has_flag(PCI_PROBE_ONLY)) {
|
||||||
|
struct pci_bus *child;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Size the bridge windows.
|
* Size the bridge windows.
|
||||||
*/
|
*/
|
||||||
@@ -530,24 +523,14 @@ void pci_common_init_dev(struct device *parent, struct hw_pci *hw)
|
|||||||
* Assign resources.
|
* Assign resources.
|
||||||
*/
|
*/
|
||||||
pci_bus_assign_resources(bus);
|
pci_bus_assign_resources(bus);
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Tell drivers about devices found.
|
|
||||||
*/
|
|
||||||
pci_bus_add_devices(bus);
|
|
||||||
}
|
|
||||||
|
|
||||||
list_for_each_entry(sys, &head, node) {
|
|
||||||
struct pci_bus *bus = sys->bus;
|
|
||||||
|
|
||||||
/* Configure PCI Express settings */
|
|
||||||
if (bus && !pci_has_flag(PCI_PROBE_ONLY)) {
|
|
||||||
struct pci_bus *child;
|
|
||||||
|
|
||||||
list_for_each_entry(child, &bus->children, node)
|
list_for_each_entry(child, &bus->children, node)
|
||||||
pcie_bus_configure_settings(child);
|
pcie_bus_configure_settings(child);
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
* Tell drivers about devices found.
|
||||||
|
*/
|
||||||
|
pci_bus_add_devices(bus);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -490,7 +490,8 @@
|
|||||||
0xe0 0xd0000000 0x0 0x00040000>; /* PCI config space */
|
0xe0 0xd0000000 0x0 0x00040000>; /* PCI config space */
|
||||||
reg-names = "csr", "cfg";
|
reg-names = "csr", "cfg";
|
||||||
ranges = <0x01000000 0x00 0x00000000 0xe0 0x10000000 0x00 0x00010000 /* io */
|
ranges = <0x01000000 0x00 0x00000000 0xe0 0x10000000 0x00 0x00010000 /* io */
|
||||||
0x02000000 0x00 0x80000000 0xe1 0x80000000 0x00 0x80000000>; /* mem */
|
0x02000000 0x00 0x80000000 0xe1 0x80000000 0x00 0x80000000 /* mem */
|
||||||
|
0x43000000 0xf0 0x00000000 0xf0 0x00000000 0x10 0x00000000>; /* mem */
|
||||||
dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
|
dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
|
||||||
0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
|
0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
|
||||||
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
|
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
|
||||||
@@ -513,8 +514,9 @@
|
|||||||
reg = < 0x00 0x1f2c0000 0x0 0x00010000 /* Controller registers */
|
reg = < 0x00 0x1f2c0000 0x0 0x00010000 /* Controller registers */
|
||||||
0xd0 0xd0000000 0x0 0x00040000>; /* PCI config space */
|
0xd0 0xd0000000 0x0 0x00040000>; /* PCI config space */
|
||||||
reg-names = "csr", "cfg";
|
reg-names = "csr", "cfg";
|
||||||
ranges = <0x01000000 0x0 0x00000000 0xd0 0x10000000 0x00 0x00010000 /* io */
|
ranges = <0x01000000 0x00 0x00000000 0xd0 0x10000000 0x00 0x00010000 /* io */
|
||||||
0x02000000 0x0 0x80000000 0xd1 0x80000000 0x00 0x80000000>; /* mem */
|
0x02000000 0x00 0x80000000 0xd1 0x80000000 0x00 0x80000000 /* mem */
|
||||||
|
0x43000000 0xd8 0x00000000 0xd8 0x00000000 0x08 0x00000000>; /* mem */
|
||||||
dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
|
dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
|
||||||
0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
|
0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
|
||||||
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
|
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
|
||||||
@@ -537,8 +539,9 @@
|
|||||||
reg = < 0x00 0x1f2d0000 0x0 0x00010000 /* Controller registers */
|
reg = < 0x00 0x1f2d0000 0x0 0x00010000 /* Controller registers */
|
||||||
0x90 0xd0000000 0x0 0x00040000>; /* PCI config space */
|
0x90 0xd0000000 0x0 0x00040000>; /* PCI config space */
|
||||||
reg-names = "csr", "cfg";
|
reg-names = "csr", "cfg";
|
||||||
ranges = <0x01000000 0x0 0x00000000 0x90 0x10000000 0x0 0x00010000 /* io */
|
ranges = <0x01000000 0x00 0x00000000 0x90 0x10000000 0x00 0x00010000 /* io */
|
||||||
0x02000000 0x0 0x80000000 0x91 0x80000000 0x0 0x80000000>; /* mem */
|
0x02000000 0x00 0x80000000 0x91 0x80000000 0x00 0x80000000 /* mem */
|
||||||
|
0x43000000 0x94 0x00000000 0x94 0x00000000 0x04 0x00000000>; /* mem */
|
||||||
dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
|
dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
|
||||||
0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
|
0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
|
||||||
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
|
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
|
||||||
@@ -561,8 +564,9 @@
|
|||||||
reg = < 0x00 0x1f500000 0x0 0x00010000 /* Controller registers */
|
reg = < 0x00 0x1f500000 0x0 0x00010000 /* Controller registers */
|
||||||
0xa0 0xd0000000 0x0 0x00040000>; /* PCI config space */
|
0xa0 0xd0000000 0x0 0x00040000>; /* PCI config space */
|
||||||
reg-names = "csr", "cfg";
|
reg-names = "csr", "cfg";
|
||||||
ranges = <0x01000000 0x0 0x00000000 0xa0 0x10000000 0x0 0x00010000 /* io */
|
ranges = <0x01000000 0x00 0x00000000 0xa0 0x10000000 0x00 0x00010000 /* io */
|
||||||
0x02000000 0x0 0x80000000 0xa1 0x80000000 0x0 0x80000000>; /* mem */
|
0x02000000 0x00 0x80000000 0xa1 0x80000000 0x00 0x80000000 /* mem */
|
||||||
|
0x43000000 0xb0 0x00000000 0xb0 0x00000000 0x10 0x00000000>; /* mem */
|
||||||
dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
|
dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
|
||||||
0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
|
0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
|
||||||
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
|
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
|
||||||
@@ -585,8 +589,9 @@
|
|||||||
reg = < 0x00 0x1f510000 0x0 0x00010000 /* Controller registers */
|
reg = < 0x00 0x1f510000 0x0 0x00010000 /* Controller registers */
|
||||||
0xc0 0xd0000000 0x0 0x00200000>; /* PCI config space */
|
0xc0 0xd0000000 0x0 0x00200000>; /* PCI config space */
|
||||||
reg-names = "csr", "cfg";
|
reg-names = "csr", "cfg";
|
||||||
ranges = <0x01000000 0x0 0x00000000 0xc0 0x10000000 0x0 0x00010000 /* io */
|
ranges = <0x01000000 0x00 0x00000000 0xc0 0x10000000 0x00 0x00010000 /* io */
|
||||||
0x02000000 0x0 0x80000000 0xc1 0x80000000 0x0 0x80000000>; /* mem */
|
0x02000000 0x00 0x80000000 0xc1 0x80000000 0x00 0x80000000 /* mem */
|
||||||
|
0x43000000 0xc8 0x00000000 0xc8 0x00000000 0x08 0x00000000>; /* mem */
|
||||||
dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
|
dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
|
||||||
0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
|
0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
|
||||||
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
|
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
|
||||||
|
|||||||
@@ -175,14 +175,6 @@ static void __init pcibios_assign_resources(void)
|
|||||||
if (!r->start && r->end)
|
if (!r->start && r->end)
|
||||||
pci_assign_resource(dev, idx);
|
pci_assign_resource(dev, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pci_probe & PCI_ASSIGN_ROMS) {
|
|
||||||
r = &dev->resource[PCI_ROM_RESOURCE];
|
|
||||||
r->end -= r->start;
|
|
||||||
r->start = 0;
|
|
||||||
if (r->end)
|
|
||||||
pci_assign_resource(dev, PCI_ROM_RESOURCE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,14 +14,6 @@
|
|||||||
#define DBG(x...)
|
#define DBG(x...)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define PCI_PROBE_BIOS 0x0001
|
|
||||||
#define PCI_PROBE_CONF1 0x0002
|
|
||||||
#define PCI_PROBE_CONF2 0x0004
|
|
||||||
#define PCI_NO_CHECKS 0x0400
|
|
||||||
#define PCI_ASSIGN_ROMS 0x1000
|
|
||||||
#define PCI_BIOS_IRQ_SCAN 0x2000
|
|
||||||
#define PCI_ASSIGN_ALL_BUSSES 0x4000
|
|
||||||
|
|
||||||
extern unsigned int __nongpreldata pci_probe;
|
extern unsigned int __nongpreldata pci_probe;
|
||||||
|
|
||||||
/* pci-frv.c */
|
/* pci-frv.c */
|
||||||
|
|||||||
@@ -294,8 +294,6 @@ void pcibios_fixup_bus(struct pci_bus *bus)
|
|||||||
printk("### PCIBIOS_FIXUP_BUS(%d)\n",bus->number);
|
printk("### PCIBIOS_FIXUP_BUS(%d)\n",bus->number);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pci_read_bridge_bases(bus);
|
|
||||||
|
|
||||||
if (bus->number == 0) {
|
if (bus->number == 0) {
|
||||||
struct pci_dev *dev;
|
struct pci_dev *dev;
|
||||||
list_for_each_entry(dev, &bus->devices, bus_list) {
|
list_for_each_entry(dev, &bus->devices, bus_list) {
|
||||||
|
|||||||
+2
-3
@@ -533,10 +533,9 @@ void pcibios_fixup_bus(struct pci_bus *b)
|
|||||||
{
|
{
|
||||||
struct pci_dev *dev;
|
struct pci_dev *dev;
|
||||||
|
|
||||||
if (b->self) {
|
if (b->self)
|
||||||
pci_read_bridge_bases(b);
|
|
||||||
pcibios_fixup_bridge_resources(b->self);
|
pcibios_fixup_bridge_resources(b->self);
|
||||||
}
|
|
||||||
list_for_each_entry(dev, &b->devices, bus_list)
|
list_for_each_entry(dev, &b->devices, bus_list)
|
||||||
pcibios_fixup_device_resources(dev);
|
pcibios_fixup_device_resources(dev);
|
||||||
platform_pci_fixup_bus(b);
|
platform_pci_fixup_bus(b);
|
||||||
|
|||||||
@@ -863,14 +863,7 @@ void pcibios_setup_bus_devices(struct pci_bus *bus)
|
|||||||
|
|
||||||
void pcibios_fixup_bus(struct pci_bus *bus)
|
void pcibios_fixup_bus(struct pci_bus *bus)
|
||||||
{
|
{
|
||||||
/* When called from the generic PCI probe, read PCI<->PCI bridge
|
/* Fixup the bus */
|
||||||
* bases. This is -not- called when generating the PCI tree from
|
|
||||||
* the OF device-tree.
|
|
||||||
*/
|
|
||||||
if (bus->self != NULL)
|
|
||||||
pci_read_bridge_bases(bus);
|
|
||||||
|
|
||||||
/* Now fixup the bus bus */
|
|
||||||
pcibios_setup_bus_self(bus);
|
pcibios_setup_bus_self(bus);
|
||||||
|
|
||||||
/* Now fixup devices on that bus */
|
/* Now fixup devices on that bus */
|
||||||
|
|||||||
@@ -311,12 +311,6 @@ int pcibios_enable_device(struct pci_dev *dev, int mask)
|
|||||||
|
|
||||||
void pcibios_fixup_bus(struct pci_bus *bus)
|
void pcibios_fixup_bus(struct pci_bus *bus)
|
||||||
{
|
{
|
||||||
struct pci_dev *dev = bus->self;
|
|
||||||
|
|
||||||
if (pci_has_flag(PCI_PROBE_ONLY) && dev &&
|
|
||||||
(dev->class >> 8) == PCI_CLASS_BRIDGE_PCI) {
|
|
||||||
pci_read_bridge_bases(bus);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT_SYMBOL(PCIBIOS_MIN_IO);
|
EXPORT_SYMBOL(PCIBIOS_MIN_IO);
|
||||||
|
|||||||
@@ -183,7 +183,6 @@ static int __init pcibios_assign_resources(void)
|
|||||||
struct pci_dev *dev = NULL;
|
struct pci_dev *dev = NULL;
|
||||||
struct resource *r;
|
struct resource *r;
|
||||||
|
|
||||||
if (!(pci_probe & PCI_ASSIGN_ROMS)) {
|
|
||||||
/* Try to use BIOS settings for ROMs, otherwise let
|
/* Try to use BIOS settings for ROMs, otherwise let
|
||||||
pci_assign_unassigned_resources() allocate the new
|
pci_assign_unassigned_resources() allocate the new
|
||||||
addresses. */
|
addresses. */
|
||||||
@@ -196,7 +195,6 @@ static int __init pcibios_assign_resources(void)
|
|||||||
r->start = 0;
|
r->start = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
pci_assign_unassigned_resources();
|
pci_assign_unassigned_resources();
|
||||||
|
|
||||||
|
|||||||
@@ -20,13 +20,6 @@
|
|||||||
#define DBG(x...)
|
#define DBG(x...)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define PCI_PROBE_BIOS 1
|
|
||||||
#define PCI_PROBE_CONF1 2
|
|
||||||
#define PCI_PROBE_CONF2 4
|
|
||||||
#define PCI_NO_CHECKS 0x400
|
|
||||||
#define PCI_ASSIGN_ROMS 0x1000
|
|
||||||
#define PCI_BIOS_IRQ_SCAN 0x2000
|
|
||||||
|
|
||||||
extern unsigned int pci_probe;
|
extern unsigned int pci_probe;
|
||||||
|
|
||||||
/* pci-asb2305.c */
|
/* pci-asb2305.c */
|
||||||
|
|||||||
@@ -324,7 +324,6 @@ void pcibios_fixup_bus(struct pci_bus *bus)
|
|||||||
struct pci_dev *dev;
|
struct pci_dev *dev;
|
||||||
|
|
||||||
if (bus->self) {
|
if (bus->self) {
|
||||||
pci_read_bridge_bases(bus);
|
|
||||||
pcibios_fixup_bridge_resources(bus->self);
|
pcibios_fixup_bridge_resources(bus->self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1044,13 +1044,7 @@ void pcibios_set_master(struct pci_dev *dev)
|
|||||||
|
|
||||||
void pcibios_fixup_bus(struct pci_bus *bus)
|
void pcibios_fixup_bus(struct pci_bus *bus)
|
||||||
{
|
{
|
||||||
/* When called from the generic PCI probe, read PCI<->PCI bridge
|
/* Fixup the bus */
|
||||||
* bases. This is -not- called when generating the PCI tree from
|
|
||||||
* the OF device-tree.
|
|
||||||
*/
|
|
||||||
pci_read_bridge_bases(bus);
|
|
||||||
|
|
||||||
/* Now fixup the bus bus */
|
|
||||||
pcibios_setup_bus_self(bus);
|
pcibios_setup_bus_self(bus);
|
||||||
|
|
||||||
/* Now fixup devices on that bus */
|
/* Now fixup devices on that bus */
|
||||||
|
|||||||
@@ -126,7 +126,6 @@ struct pci_dev *of_create_pci_dev(struct device_node *node,
|
|||||||
{
|
{
|
||||||
struct pci_dev *dev;
|
struct pci_dev *dev;
|
||||||
const char *type;
|
const char *type;
|
||||||
struct pci_slot *slot;
|
|
||||||
|
|
||||||
dev = pci_alloc_dev(bus);
|
dev = pci_alloc_dev(bus);
|
||||||
if (!dev)
|
if (!dev)
|
||||||
@@ -145,10 +144,7 @@ struct pci_dev *of_create_pci_dev(struct device_node *node,
|
|||||||
dev->needs_freset = 0; /* pcie fundamental reset required */
|
dev->needs_freset = 0; /* pcie fundamental reset required */
|
||||||
set_pcie_port_type(dev);
|
set_pcie_port_type(dev);
|
||||||
|
|
||||||
list_for_each_entry(slot, &dev->bus->slots, list)
|
pci_dev_assign_slot(dev);
|
||||||
if (PCI_SLOT(dev->devfn) == slot->number)
|
|
||||||
dev->slot = slot;
|
|
||||||
|
|
||||||
dev->vendor = get_int_prop(node, "vendor-id", 0xffff);
|
dev->vendor = get_int_prop(node, "vendor-id", 0xffff);
|
||||||
dev->device = get_int_prop(node, "device-id", 0xffff);
|
dev->device = get_int_prop(node, "device-id", 0xffff);
|
||||||
dev->subsystem_vendor = get_int_prop(node, "subsystem-vendor-id", 0);
|
dev->subsystem_vendor = get_int_prop(node, "subsystem-vendor-id", 0);
|
||||||
|
|||||||
@@ -11,14 +11,6 @@
|
|||||||
|
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
|
||||||
/* startup values */
|
|
||||||
#define PCI_PROBE_BIOS 1
|
|
||||||
#define PCI_PROBE_CONF1 2
|
|
||||||
#define PCI_PROBE_CONF2 4
|
|
||||||
#define PCI_NO_CHECKS 0x400
|
|
||||||
#define PCI_ASSIGN_ROMS 0x1000
|
|
||||||
#define PCI_BIOS_IRQ_SCAN 0x2000
|
|
||||||
|
|
||||||
#define SH4_PCICR 0x100 /* PCI Control Register */
|
#define SH4_PCICR 0x100 /* PCI Control Register */
|
||||||
#define SH4_PCICR_PREFIX 0xA5000000 /* CR prefix for write */
|
#define SH4_PCICR_PREFIX 0xA5000000 /* CR prefix for write */
|
||||||
#define SH4_PCICR_FTO 0x00000400 /* TRDY/IRDY Enable */
|
#define SH4_PCICR_FTO 0x00000400 /* TRDY/IRDY Enable */
|
||||||
|
|||||||
@@ -249,7 +249,6 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
|
|||||||
struct pci_bus *bus, int devfn)
|
struct pci_bus *bus, int devfn)
|
||||||
{
|
{
|
||||||
struct dev_archdata *sd;
|
struct dev_archdata *sd;
|
||||||
struct pci_slot *slot;
|
|
||||||
struct platform_device *op;
|
struct platform_device *op;
|
||||||
struct pci_dev *dev;
|
struct pci_dev *dev;
|
||||||
const char *type;
|
const char *type;
|
||||||
@@ -290,10 +289,7 @@ static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
|
|||||||
dev->multifunction = 0; /* maybe a lie? */
|
dev->multifunction = 0; /* maybe a lie? */
|
||||||
set_pcie_port_type(dev);
|
set_pcie_port_type(dev);
|
||||||
|
|
||||||
list_for_each_entry(slot, &dev->bus->slots, list)
|
pci_dev_assign_slot(dev);
|
||||||
if (PCI_SLOT(dev->devfn) == slot->number)
|
|
||||||
dev->slot = slot;
|
|
||||||
|
|
||||||
dev->vendor = of_getintprop_default(node, "vendor-id", 0xffff);
|
dev->vendor = of_getintprop_default(node, "vendor-id", 0xffff);
|
||||||
dev->device = of_getintprop_default(node, "device-id", 0xffff);
|
dev->device = of_getintprop_default(node, "device-id", 0xffff);
|
||||||
dev->subsystem_vendor =
|
dev->subsystem_vendor =
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user