Loading drivers/pci/controller/pci-msm.c +25 −7 Original line number Diff line number Diff line Loading @@ -5982,7 +5982,16 @@ void msm_pcie_allow_l1(struct pci_dev *pci_dev) pcie_dev = PCIE_BUS_PRIV_DATA(root_pci_dev->bus); mutex_lock(&pcie_dev->aspm_lock); mutex_lock(&pcie_dev->setup_lock); if (pcie_dev->link_status != MSM_PCIE_LINK_ENABLED) { PCIE_DBG(pcie_dev, "RC%d: PCIE Link is already disabled\n", pcie_dev->rc_idx); mutex_unlock(&pcie_dev->setup_lock); return; } if (unlikely(--pcie_dev->prevent_l1 < 0)) PCIE_ERR(pcie_dev, "PCIe: RC%d: %02x:%02x.%01x: unbalanced prevent_l1: %d < 0\n", Loading @@ -5991,7 +6000,7 @@ void msm_pcie_allow_l1(struct pci_dev *pci_dev) pcie_dev->prevent_l1); if (pcie_dev->prevent_l1) { mutex_unlock(&pcie_dev->aspm_lock); mutex_unlock(&pcie_dev->setup_lock); return; } Loading @@ -6004,7 +6013,7 @@ void msm_pcie_allow_l1(struct pci_dev *pci_dev) PCIE_DBG2(pcie_dev, "PCIe: RC%d: %02x:%02x.%01x: exit\n", pcie_dev->rc_idx, pci_dev->bus->number, PCI_SLOT(pci_dev->devfn), PCI_FUNC(pci_dev->devfn)); mutex_unlock(&pcie_dev->aspm_lock); mutex_unlock(&pcie_dev->setup_lock); } EXPORT_SYMBOL(msm_pcie_allow_l1); Loading @@ -6023,9 +6032,18 @@ int msm_pcie_prevent_l1(struct pci_dev *pci_dev) pcie_dev = PCIE_BUS_PRIV_DATA(root_pci_dev->bus); /* disable L1 */ mutex_lock(&pcie_dev->aspm_lock); mutex_lock(&pcie_dev->setup_lock); if (pcie_dev->link_status != MSM_PCIE_LINK_ENABLED) { PCIE_DBG(pcie_dev, "RC%d: PCIE Link is already disabled\n", pcie_dev->rc_idx); mutex_unlock(&pcie_dev->setup_lock); return -EIO; } if (pcie_dev->prevent_l1++) { mutex_unlock(&pcie_dev->aspm_lock); mutex_unlock(&pcie_dev->setup_lock); return 0; } Loading Loading @@ -6053,11 +6071,11 @@ int msm_pcie_prevent_l1(struct pci_dev *pci_dev) PCIE_DBG2(pcie_dev, "PCIe: RC%d: %02x:%02x.%01x: exit\n", pcie_dev->rc_idx, pci_dev->bus->number, PCI_SLOT(pci_dev->devfn), PCI_FUNC(pci_dev->devfn)); mutex_unlock(&pcie_dev->aspm_lock); mutex_unlock(&pcie_dev->setup_lock); return 0; err: mutex_unlock(&pcie_dev->aspm_lock); mutex_unlock(&pcie_dev->setup_lock); msm_pcie_allow_l1(pci_dev); return ret; Loading Loading
drivers/pci/controller/pci-msm.c +25 −7 Original line number Diff line number Diff line Loading @@ -5982,7 +5982,16 @@ void msm_pcie_allow_l1(struct pci_dev *pci_dev) pcie_dev = PCIE_BUS_PRIV_DATA(root_pci_dev->bus); mutex_lock(&pcie_dev->aspm_lock); mutex_lock(&pcie_dev->setup_lock); if (pcie_dev->link_status != MSM_PCIE_LINK_ENABLED) { PCIE_DBG(pcie_dev, "RC%d: PCIE Link is already disabled\n", pcie_dev->rc_idx); mutex_unlock(&pcie_dev->setup_lock); return; } if (unlikely(--pcie_dev->prevent_l1 < 0)) PCIE_ERR(pcie_dev, "PCIe: RC%d: %02x:%02x.%01x: unbalanced prevent_l1: %d < 0\n", Loading @@ -5991,7 +6000,7 @@ void msm_pcie_allow_l1(struct pci_dev *pci_dev) pcie_dev->prevent_l1); if (pcie_dev->prevent_l1) { mutex_unlock(&pcie_dev->aspm_lock); mutex_unlock(&pcie_dev->setup_lock); return; } Loading @@ -6004,7 +6013,7 @@ void msm_pcie_allow_l1(struct pci_dev *pci_dev) PCIE_DBG2(pcie_dev, "PCIe: RC%d: %02x:%02x.%01x: exit\n", pcie_dev->rc_idx, pci_dev->bus->number, PCI_SLOT(pci_dev->devfn), PCI_FUNC(pci_dev->devfn)); mutex_unlock(&pcie_dev->aspm_lock); mutex_unlock(&pcie_dev->setup_lock); } EXPORT_SYMBOL(msm_pcie_allow_l1); Loading @@ -6023,9 +6032,18 @@ int msm_pcie_prevent_l1(struct pci_dev *pci_dev) pcie_dev = PCIE_BUS_PRIV_DATA(root_pci_dev->bus); /* disable L1 */ mutex_lock(&pcie_dev->aspm_lock); mutex_lock(&pcie_dev->setup_lock); if (pcie_dev->link_status != MSM_PCIE_LINK_ENABLED) { PCIE_DBG(pcie_dev, "RC%d: PCIE Link is already disabled\n", pcie_dev->rc_idx); mutex_unlock(&pcie_dev->setup_lock); return -EIO; } if (pcie_dev->prevent_l1++) { mutex_unlock(&pcie_dev->aspm_lock); mutex_unlock(&pcie_dev->setup_lock); return 0; } Loading Loading @@ -6053,11 +6071,11 @@ int msm_pcie_prevent_l1(struct pci_dev *pci_dev) PCIE_DBG2(pcie_dev, "PCIe: RC%d: %02x:%02x.%01x: exit\n", pcie_dev->rc_idx, pci_dev->bus->number, PCI_SLOT(pci_dev->devfn), PCI_FUNC(pci_dev->devfn)); mutex_unlock(&pcie_dev->aspm_lock); mutex_unlock(&pcie_dev->setup_lock); return 0; err: mutex_unlock(&pcie_dev->aspm_lock); mutex_unlock(&pcie_dev->setup_lock); msm_pcie_allow_l1(pci_dev); return ret; Loading