diff options
Diffstat (limited to 'drivers/pci/host/pci-msm.c')
| -rw-r--r-- | drivers/pci/host/pci-msm.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/pci/host/pci-msm.c b/drivers/pci/host/pci-msm.c index 8e66cd5770b5..a741c9c7d115 100644 --- a/drivers/pci/host/pci-msm.c +++ b/drivers/pci/host/pci-msm.c @@ -596,7 +596,6 @@ 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; @@ -704,6 +703,9 @@ static u32 num_rc_on; /* global lock for PCIe common PHY */ static struct mutex com_phy_lock; +/* global lock for PCIe enumeration */ +static struct mutex enumerate_lock; + /* Table to track info of PCIe devices */ static struct msm_pcie_device_info msm_pcie_dev_tbl[MAX_RC_NUM * MAX_DEVICE_NUM]; @@ -5050,7 +5052,7 @@ 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); + mutex_lock(&enumerate_lock); PCIE_DBG(dev, "Enumerate RC%d\n", rc_idx); @@ -5169,7 +5171,7 @@ int msm_pcie_enumerate(u32 rc_idx) } out: - mutex_unlock(&dev->enumerate_lock); + mutex_unlock(&enumerate_lock); return ret; } @@ -6631,6 +6633,7 @@ int __init pcie_init(void) pcie_drv.rc_num = 0; mutex_init(&pcie_drv.drv_lock); mutex_init(&com_phy_lock); + mutex_init(&enumerate_lock); for (i = 0; i < MAX_RC_NUM; i++) { snprintf(rc_name, MAX_RC_NAME_LEN, "pcie%d-short", i); @@ -6665,7 +6668,6 @@ 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); |
