forked from Minki/linux
pci-v4.19-fixes-2
-----BEGIN PGP SIGNATURE----- iQJIBAABCgAyFiEEgMe7l+5h9hnxdsnuWYigwDrT+vwFAlutKuEUHGJoZWxnYWFz QGdvb2dsZS5jb20ACgkQWYigwDrT+vyNAA/9ETcZVnS/ONxX272qtgn2GT8Nyx+K YbAsNFHvd9hzLpG1X398OBPucWz/3bhySsJaTtiyqH0BWl2qsLRcRHvldR7wNXFt Wrh+8omGWkw7RwjQI3qavCYJeM3Eu0feX8X4/PknvJn2vybS1W6yPL0q7H7bJr+1 YQTzSDaA4XtLTcph6+yyt6FH23jxHX4Umjo24AsVrAwyjwWRMZ6Dq/6Lky310W/M 6GcYDrqQtmP5EnC1DaDomhtI3s8K+/l+NWIvDBHXlhVZhwHkZfZ1xJGQMslwJAVH HWe4uznsNweq1GClWgjS4SwT/lWApK+FspgDr29Z4mbNyUyyD/886+z4xXxo996n HgYDKctkLuZMdAcYBsjBlXGumBBHujO0qyc0rqoDDh1brI8cWLJsQNBaOLPLUcYU 934byeGKzIXWd2muXjRDNhCAndGCrKgLLGPleoRbL4uEgg+LTG8oKYQgVMCWts0+ 9FxFblXg0Cxy8+pAj+7JM/hv9FZ4waTbwqirq2PhiM7K4EQApd5wVRpoNF92l1Wi 287GW9jks1D1S2cjZcv6nTPs8NUc4bk+kcLNk2qbXqB9wUaQjsVdRsxMPUC8rGHJ ffhmPrNwOuAPvECMIOiYK5U5XWGvh870YjhEDMRPuapMdg9SQNeepJTceWzhFLgL y+OVSSln1PKsDH4= =oWFa -----END PGP SIGNATURE----- Merge tag 'pci-v4.19-fixes-2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/helgaas/pci Bjorn writes: "PCI fixes: - Fix ACPI hotplug issue that causes black screen crash at boot (Mika Westerberg) - Fix DesignWare "scheduling while atomic" issues (Jisheng Zhang) - Add PPC contacts to MAINTAINERS for PCI core error handling (Bjorn Helgaas) - Sort Mobiveil MAINTAINERS entry (Lorenzo Pieralisi)" * tag 'pci-v4.19-fixes-2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: ACPI / hotplug / PCI: Don't scan for non-hotplug bridges if slot is not bridge PCI: dwc: Fix scheduling while atomic issues MAINTAINERS: Move mobiveil PCI driver entry where it belongs MAINTAINERS: Update PPC contacts for PCI core error handling
This commit is contained in:
commit
278e59a007
20
MAINTAINERS
20
MAINTAINERS
@ -9716,13 +9716,6 @@ Q: http://patchwork.linuxtv.org/project/linux-media/list/
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/media/dvb-frontends/mn88473*
|
F: drivers/media/dvb-frontends/mn88473*
|
||||||
|
|
||||||
PCI DRIVER FOR MOBIVEIL PCIE IP
|
|
||||||
M: Subrahmanya Lingappa <l.subrahmanya@mobiveil.co.in>
|
|
||||||
L: linux-pci@vger.kernel.org
|
|
||||||
S: Supported
|
|
||||||
F: Documentation/devicetree/bindings/pci/mobiveil-pcie.txt
|
|
||||||
F: drivers/pci/controller/pcie-mobiveil.c
|
|
||||||
|
|
||||||
MODULE SUPPORT
|
MODULE SUPPORT
|
||||||
M: Jessica Yu <jeyu@kernel.org>
|
M: Jessica Yu <jeyu@kernel.org>
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux.git modules-next
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux.git modules-next
|
||||||
@ -11137,6 +11130,13 @@ F: include/uapi/linux/switchtec_ioctl.h
|
|||||||
F: include/linux/switchtec.h
|
F: include/linux/switchtec.h
|
||||||
F: drivers/ntb/hw/mscc/
|
F: drivers/ntb/hw/mscc/
|
||||||
|
|
||||||
|
PCI DRIVER FOR MOBIVEIL PCIE IP
|
||||||
|
M: Subrahmanya Lingappa <l.subrahmanya@mobiveil.co.in>
|
||||||
|
L: linux-pci@vger.kernel.org
|
||||||
|
S: Supported
|
||||||
|
F: Documentation/devicetree/bindings/pci/mobiveil-pcie.txt
|
||||||
|
F: drivers/pci/controller/pcie-mobiveil.c
|
||||||
|
|
||||||
PCI DRIVER FOR MVEBU (Marvell Armada 370 and Armada XP SOC support)
|
PCI DRIVER FOR MVEBU (Marvell Armada 370 and Armada XP SOC support)
|
||||||
M: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
M: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||||
M: Jason Cooper <jason@lakedaemon.net>
|
M: Jason Cooper <jason@lakedaemon.net>
|
||||||
@ -11203,8 +11203,14 @@ F: tools/pci/
|
|||||||
|
|
||||||
PCI ENHANCED ERROR HANDLING (EEH) FOR POWERPC
|
PCI ENHANCED ERROR HANDLING (EEH) FOR POWERPC
|
||||||
M: Russell Currey <ruscur@russell.cc>
|
M: Russell Currey <ruscur@russell.cc>
|
||||||
|
M: Sam Bobroff <sbobroff@linux.ibm.com>
|
||||||
|
M: Oliver O'Halloran <oohall@gmail.com>
|
||||||
L: linuxppc-dev@lists.ozlabs.org
|
L: linuxppc-dev@lists.ozlabs.org
|
||||||
S: Supported
|
S: Supported
|
||||||
|
F: Documentation/PCI/pci-error-recovery.txt
|
||||||
|
F: drivers/pci/pcie/aer.c
|
||||||
|
F: drivers/pci/pcie/dpc.c
|
||||||
|
F: drivers/pci/pcie/err.c
|
||||||
F: Documentation/powerpc/eeh-pci-error-recovery.txt
|
F: Documentation/powerpc/eeh-pci-error-recovery.txt
|
||||||
F: arch/powerpc/kernel/eeh*.c
|
F: arch/powerpc/kernel/eeh*.c
|
||||||
F: arch/powerpc/platforms/*/eeh*.c
|
F: arch/powerpc/platforms/*/eeh*.c
|
||||||
|
@ -135,7 +135,7 @@ static void dw_pcie_prog_outbound_atu_unroll(struct dw_pcie *pci, int index,
|
|||||||
if (val & PCIE_ATU_ENABLE)
|
if (val & PCIE_ATU_ENABLE)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
usleep_range(LINK_WAIT_IATU_MIN, LINK_WAIT_IATU_MAX);
|
mdelay(LINK_WAIT_IATU);
|
||||||
}
|
}
|
||||||
dev_err(pci->dev, "Outbound iATU is not being enabled\n");
|
dev_err(pci->dev, "Outbound iATU is not being enabled\n");
|
||||||
}
|
}
|
||||||
@ -178,7 +178,7 @@ void dw_pcie_prog_outbound_atu(struct dw_pcie *pci, int index, int type,
|
|||||||
if (val & PCIE_ATU_ENABLE)
|
if (val & PCIE_ATU_ENABLE)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
usleep_range(LINK_WAIT_IATU_MIN, LINK_WAIT_IATU_MAX);
|
mdelay(LINK_WAIT_IATU);
|
||||||
}
|
}
|
||||||
dev_err(pci->dev, "Outbound iATU is not being enabled\n");
|
dev_err(pci->dev, "Outbound iATU is not being enabled\n");
|
||||||
}
|
}
|
||||||
@ -236,7 +236,7 @@ static int dw_pcie_prog_inbound_atu_unroll(struct dw_pcie *pci, int index,
|
|||||||
if (val & PCIE_ATU_ENABLE)
|
if (val & PCIE_ATU_ENABLE)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
usleep_range(LINK_WAIT_IATU_MIN, LINK_WAIT_IATU_MAX);
|
mdelay(LINK_WAIT_IATU);
|
||||||
}
|
}
|
||||||
dev_err(pci->dev, "Inbound iATU is not being enabled\n");
|
dev_err(pci->dev, "Inbound iATU is not being enabled\n");
|
||||||
|
|
||||||
@ -282,7 +282,7 @@ int dw_pcie_prog_inbound_atu(struct dw_pcie *pci, int index, int bar,
|
|||||||
if (val & PCIE_ATU_ENABLE)
|
if (val & PCIE_ATU_ENABLE)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
usleep_range(LINK_WAIT_IATU_MIN, LINK_WAIT_IATU_MAX);
|
mdelay(LINK_WAIT_IATU);
|
||||||
}
|
}
|
||||||
dev_err(pci->dev, "Inbound iATU is not being enabled\n");
|
dev_err(pci->dev, "Inbound iATU is not being enabled\n");
|
||||||
|
|
||||||
|
@ -26,8 +26,7 @@
|
|||||||
|
|
||||||
/* Parameters for the waiting for iATU enabled routine */
|
/* Parameters for the waiting for iATU enabled routine */
|
||||||
#define LINK_WAIT_MAX_IATU_RETRIES 5
|
#define LINK_WAIT_MAX_IATU_RETRIES 5
|
||||||
#define LINK_WAIT_IATU_MIN 9000
|
#define LINK_WAIT_IATU 9
|
||||||
#define LINK_WAIT_IATU_MAX 10000
|
|
||||||
|
|
||||||
/* Synopsys-specific PCIe configuration registers */
|
/* Synopsys-specific PCIe configuration registers */
|
||||||
#define PCIE_PORT_LINK_CONTROL 0x710
|
#define PCIE_PORT_LINK_CONTROL 0x710
|
||||||
|
@ -457,17 +457,18 @@ static void acpiphp_native_scan_bridge(struct pci_dev *bridge)
|
|||||||
/**
|
/**
|
||||||
* enable_slot - enable, configure a slot
|
* enable_slot - enable, configure a slot
|
||||||
* @slot: slot to be enabled
|
* @slot: slot to be enabled
|
||||||
|
* @bridge: true if enable is for the whole bridge (not a single slot)
|
||||||
*
|
*
|
||||||
* This function should be called per *physical slot*,
|
* This function should be called per *physical slot*,
|
||||||
* not per each slot object in ACPI namespace.
|
* not per each slot object in ACPI namespace.
|
||||||
*/
|
*/
|
||||||
static void enable_slot(struct acpiphp_slot *slot)
|
static void enable_slot(struct acpiphp_slot *slot, bool bridge)
|
||||||
{
|
{
|
||||||
struct pci_dev *dev;
|
struct pci_dev *dev;
|
||||||
struct pci_bus *bus = slot->bus;
|
struct pci_bus *bus = slot->bus;
|
||||||
struct acpiphp_func *func;
|
struct acpiphp_func *func;
|
||||||
|
|
||||||
if (bus->self && hotplug_is_native(bus->self)) {
|
if (bridge && bus->self && hotplug_is_native(bus->self)) {
|
||||||
/*
|
/*
|
||||||
* If native hotplug is used, it will take care of hotplug
|
* If native hotplug is used, it will take care of hotplug
|
||||||
* slot management and resource allocation for hotplug
|
* slot management and resource allocation for hotplug
|
||||||
@ -701,7 +702,7 @@ static void acpiphp_check_bridge(struct acpiphp_bridge *bridge)
|
|||||||
trim_stale_devices(dev);
|
trim_stale_devices(dev);
|
||||||
|
|
||||||
/* configure all functions */
|
/* configure all functions */
|
||||||
enable_slot(slot);
|
enable_slot(slot, true);
|
||||||
} else {
|
} else {
|
||||||
disable_slot(slot);
|
disable_slot(slot);
|
||||||
}
|
}
|
||||||
@ -785,7 +786,7 @@ static void hotplug_event(u32 type, struct acpiphp_context *context)
|
|||||||
if (bridge)
|
if (bridge)
|
||||||
acpiphp_check_bridge(bridge);
|
acpiphp_check_bridge(bridge);
|
||||||
else if (!(slot->flags & SLOT_IS_GOING_AWAY))
|
else if (!(slot->flags & SLOT_IS_GOING_AWAY))
|
||||||
enable_slot(slot);
|
enable_slot(slot, false);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -973,7 +974,7 @@ int acpiphp_enable_slot(struct acpiphp_slot *slot)
|
|||||||
|
|
||||||
/* configure all functions */
|
/* configure all functions */
|
||||||
if (!(slot->flags & SLOT_ENABLED))
|
if (!(slot->flags & SLOT_ENABLED))
|
||||||
enable_slot(slot);
|
enable_slot(slot, false);
|
||||||
|
|
||||||
pci_unlock_rescan_remove();
|
pci_unlock_rescan_remove();
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user