diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2017-09-07 13:24:15 -0500 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2017-09-07 13:24:15 -0500 |
commit | cf5f9cc8e4e5e8e0ecc35f1c904d98f889be2c0f (patch) | |
tree | 4446eb5958daec2286233ce3259aee9e25166c30 /drivers/pci | |
parent | c5efc2209505916b6dbcd7ebe9412707b02dbc2f (diff) | |
parent | 7612b3b28c0b900dcbcdf5e9b9747cc20a1e2455 (diff) |
Merge branch 'pci/hotplug' into next
* pci/hotplug:
PCI: pciehp: Report power fault only once until we clear it
PCI: shpchp: Enable bridge bus mastering if MSI is enabled
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/hotplug/pciehp_hpc.c | 8 | ||||
-rw-r--r-- | drivers/pci/hotplug/shpchp_hpc.c | 2 |
2 files changed, 10 insertions, 0 deletions
diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c index 026830a138ae..e5d5ce9e3010 100644 --- a/drivers/pci/hotplug/pciehp_hpc.c +++ b/drivers/pci/hotplug/pciehp_hpc.c @@ -586,6 +586,14 @@ static irqreturn_t pciehp_isr(int irq, void *dev_id) events = status & (PCI_EXP_SLTSTA_ABP | PCI_EXP_SLTSTA_PFD | PCI_EXP_SLTSTA_PDC | PCI_EXP_SLTSTA_CC | PCI_EXP_SLTSTA_DLLSC); + + /* + * If we've already reported a power fault, don't report it again + * until we've done something to handle it. + */ + if (ctrl->power_fault_detected) + events &= ~PCI_EXP_SLTSTA_PFD; + if (!events) return IRQ_NONE; diff --git a/drivers/pci/hotplug/shpchp_hpc.c b/drivers/pci/hotplug/shpchp_hpc.c index de0ea474fb73..e5824c7b7b6b 100644 --- a/drivers/pci/hotplug/shpchp_hpc.c +++ b/drivers/pci/hotplug/shpchp_hpc.c @@ -1062,6 +1062,8 @@ int shpc_init(struct controller *ctrl, struct pci_dev *pdev) if (rc) { ctrl_info(ctrl, "Can't get msi for the hotplug controller\n"); ctrl_info(ctrl, "Use INTx for the hotplug controller\n"); + } else { + pci_set_master(pdev); } rc = request_irq(ctrl->pci_dev->irq, shpc_isr, IRQF_SHARED, |