Loading drivers/pci/host/pci-msm.c +16 −7 Original line number Diff line number Diff line Loading @@ -591,6 +591,7 @@ struct msm_pcie_dev_t { bool cfg_access; spinlock_t cfg_lock; unsigned long irqsave_flags; struct mutex enumerate_lock; struct mutex setup_lock; struct irq_domain *irq_domain; Loading Loading @@ -4840,12 +4841,15 @@ int msm_pcie_enumerate(u32 rc_idx) int ret = 0, bus_ret = 0, scan_ret = 0; struct msm_pcie_dev_t *dev = &msm_pcie_dev[rc_idx]; mutex_lock(&dev->enumerate_lock); PCIE_DBG(dev, "Enumerate RC%d\n", rc_idx); if (!dev->drv_ready) { PCIE_DBG(dev, "RC%d has not been successfully probed yet\n", rc_idx); return -EPROBE_DEFER; ret = -EPROBE_DEFER; goto out; } if (!dev->enumerated) { Loading @@ -4872,8 +4876,7 @@ int msm_pcie_enumerate(u32 rc_idx) PCIE_ERR(dev, "PCIe: failed to get host bridge resources for RC%d: %d\n", dev->rc_idx, ret); return ret; goto out; } if (dev->ep_latency) { Loading @@ -4892,8 +4895,8 @@ int msm_pcie_enumerate(u32 rc_idx) PCIE_ERR(dev, "PCIe: failed to create root bus for RC%d\n", dev->rc_idx); return -ENOMEM; ret = -ENOMEM; goto out; } scan_ret = pci_scan_child_bus(bus); Loading Loading @@ -4941,7 +4944,8 @@ int msm_pcie_enumerate(u32 rc_idx) PCIE_ERR(dev, "PCIe: Did not find PCI device for RC%d.\n", dev->rc_idx); return -ENODEV; ret = -ENODEV; goto out; } bus_ret = bus_for_each_dev(&pci_bus_type, NULL, dev, Loading @@ -4951,7 +4955,8 @@ int msm_pcie_enumerate(u32 rc_idx) PCIE_ERR(dev, "PCIe: Failed to set up device table for RC%d\n", dev->rc_idx); return -ENODEV; ret = -ENODEV; goto out; } } else { PCIE_ERR(dev, "PCIe: failed to enable RC%d.\n", Loading @@ -4962,6 +4967,9 @@ int msm_pcie_enumerate(u32 rc_idx) dev->rc_idx); } out: mutex_unlock(&dev->enumerate_lock); return ret; } EXPORT_SYMBOL(msm_pcie_enumerate); Loading Loading @@ -6303,6 +6311,7 @@ int __init pcie_init(void) rc_name, i); spin_lock_init(&msm_pcie_dev[i].cfg_lock); msm_pcie_dev[i].cfg_access = true; mutex_init(&msm_pcie_dev[i].enumerate_lock); mutex_init(&msm_pcie_dev[i].setup_lock); mutex_init(&msm_pcie_dev[i].recovery_lock); spin_lock_init(&msm_pcie_dev[i].linkdown_lock); Loading Loading
drivers/pci/host/pci-msm.c +16 −7 Original line number Diff line number Diff line Loading @@ -591,6 +591,7 @@ struct msm_pcie_dev_t { bool cfg_access; spinlock_t cfg_lock; unsigned long irqsave_flags; struct mutex enumerate_lock; struct mutex setup_lock; struct irq_domain *irq_domain; Loading Loading @@ -4840,12 +4841,15 @@ int msm_pcie_enumerate(u32 rc_idx) int ret = 0, bus_ret = 0, scan_ret = 0; struct msm_pcie_dev_t *dev = &msm_pcie_dev[rc_idx]; mutex_lock(&dev->enumerate_lock); PCIE_DBG(dev, "Enumerate RC%d\n", rc_idx); if (!dev->drv_ready) { PCIE_DBG(dev, "RC%d has not been successfully probed yet\n", rc_idx); return -EPROBE_DEFER; ret = -EPROBE_DEFER; goto out; } if (!dev->enumerated) { Loading @@ -4872,8 +4876,7 @@ int msm_pcie_enumerate(u32 rc_idx) PCIE_ERR(dev, "PCIe: failed to get host bridge resources for RC%d: %d\n", dev->rc_idx, ret); return ret; goto out; } if (dev->ep_latency) { Loading @@ -4892,8 +4895,8 @@ int msm_pcie_enumerate(u32 rc_idx) PCIE_ERR(dev, "PCIe: failed to create root bus for RC%d\n", dev->rc_idx); return -ENOMEM; ret = -ENOMEM; goto out; } scan_ret = pci_scan_child_bus(bus); Loading Loading @@ -4941,7 +4944,8 @@ int msm_pcie_enumerate(u32 rc_idx) PCIE_ERR(dev, "PCIe: Did not find PCI device for RC%d.\n", dev->rc_idx); return -ENODEV; ret = -ENODEV; goto out; } bus_ret = bus_for_each_dev(&pci_bus_type, NULL, dev, Loading @@ -4951,7 +4955,8 @@ int msm_pcie_enumerate(u32 rc_idx) PCIE_ERR(dev, "PCIe: Failed to set up device table for RC%d\n", dev->rc_idx); return -ENODEV; ret = -ENODEV; goto out; } } else { PCIE_ERR(dev, "PCIe: failed to enable RC%d.\n", Loading @@ -4962,6 +4967,9 @@ int msm_pcie_enumerate(u32 rc_idx) dev->rc_idx); } out: mutex_unlock(&dev->enumerate_lock); return ret; } EXPORT_SYMBOL(msm_pcie_enumerate); Loading Loading @@ -6303,6 +6311,7 @@ int __init pcie_init(void) rc_name, i); spin_lock_init(&msm_pcie_dev[i].cfg_lock); msm_pcie_dev[i].cfg_access = true; mutex_init(&msm_pcie_dev[i].enumerate_lock); mutex_init(&msm_pcie_dev[i].setup_lock); mutex_init(&msm_pcie_dev[i].recovery_lock); spin_lock_init(&msm_pcie_dev[i].linkdown_lock); Loading