Skip to content

Commit 278e59a

Browse files
committed
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
2 parents ad03714 + f188b99 commit 278e59a

File tree

4 files changed

+24
-18
lines changed

4 files changed

+24
-18
lines changed

MAINTAINERS

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9716,13 +9716,6 @@ Q: http://patchwork.linuxtv.org/project/linux-media/list/
97169716
S: Maintained
97179717
F: drivers/media/dvb-frontends/mn88473*
97189718

9719-
PCI DRIVER FOR MOBIVEIL PCIE IP
9720-
M: Subrahmanya Lingappa <l.subrahmanya@mobiveil.co.in>
9721-
L: linux-pci@vger.kernel.org
9722-
S: Supported
9723-
F: Documentation/devicetree/bindings/pci/mobiveil-pcie.txt
9724-
F: drivers/pci/controller/pcie-mobiveil.c
9725-
97269719
MODULE SUPPORT
97279720
M: Jessica Yu <jeyu@kernel.org>
97289721
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
1113711130
F: include/linux/switchtec.h
1113811131
F: drivers/ntb/hw/mscc/
1113911132

11133+
PCI DRIVER FOR MOBIVEIL PCIE IP
11134+
M: Subrahmanya Lingappa <l.subrahmanya@mobiveil.co.in>
11135+
L: linux-pci@vger.kernel.org
11136+
S: Supported
11137+
F: Documentation/devicetree/bindings/pci/mobiveil-pcie.txt
11138+
F: drivers/pci/controller/pcie-mobiveil.c
11139+
1114011140
PCI DRIVER FOR MVEBU (Marvell Armada 370 and Armada XP SOC support)
1114111141
M: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
1114211142
M: Jason Cooper <jason@lakedaemon.net>
@@ -11203,8 +11203,14 @@ F: tools/pci/
1120311203

1120411204
PCI ENHANCED ERROR HANDLING (EEH) FOR POWERPC
1120511205
M: Russell Currey <ruscur@russell.cc>
11206+
M: Sam Bobroff <sbobroff@linux.ibm.com>
11207+
M: Oliver O'Halloran <oohall@gmail.com>
1120611208
L: linuxppc-dev@lists.ozlabs.org
1120711209
S: Supported
11210+
F: Documentation/PCI/pci-error-recovery.txt
11211+
F: drivers/pci/pcie/aer.c
11212+
F: drivers/pci/pcie/dpc.c
11213+
F: drivers/pci/pcie/err.c
1120811214
F: Documentation/powerpc/eeh-pci-error-recovery.txt
1120911215
F: arch/powerpc/kernel/eeh*.c
1121011216
F: arch/powerpc/platforms/*/eeh*.c

drivers/pci/controller/dwc/pcie-designware.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ static void dw_pcie_prog_outbound_atu_unroll(struct dw_pcie *pci, int index,
135135
if (val & PCIE_ATU_ENABLE)
136136
return;
137137

138-
usleep_range(LINK_WAIT_IATU_MIN, LINK_WAIT_IATU_MAX);
138+
mdelay(LINK_WAIT_IATU);
139139
}
140140
dev_err(pci->dev, "Outbound iATU is not being enabled\n");
141141
}
@@ -178,7 +178,7 @@ void dw_pcie_prog_outbound_atu(struct dw_pcie *pci, int index, int type,
178178
if (val & PCIE_ATU_ENABLE)
179179
return;
180180

181-
usleep_range(LINK_WAIT_IATU_MIN, LINK_WAIT_IATU_MAX);
181+
mdelay(LINK_WAIT_IATU);
182182
}
183183
dev_err(pci->dev, "Outbound iATU is not being enabled\n");
184184
}
@@ -236,7 +236,7 @@ static int dw_pcie_prog_inbound_atu_unroll(struct dw_pcie *pci, int index,
236236
if (val & PCIE_ATU_ENABLE)
237237
return 0;
238238

239-
usleep_range(LINK_WAIT_IATU_MIN, LINK_WAIT_IATU_MAX);
239+
mdelay(LINK_WAIT_IATU);
240240
}
241241
dev_err(pci->dev, "Inbound iATU is not being enabled\n");
242242

@@ -282,7 +282,7 @@ int dw_pcie_prog_inbound_atu(struct dw_pcie *pci, int index, int bar,
282282
if (val & PCIE_ATU_ENABLE)
283283
return 0;
284284

285-
usleep_range(LINK_WAIT_IATU_MIN, LINK_WAIT_IATU_MAX);
285+
mdelay(LINK_WAIT_IATU);
286286
}
287287
dev_err(pci->dev, "Inbound iATU is not being enabled\n");
288288

drivers/pci/controller/dwc/pcie-designware.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@
2626

2727
/* Parameters for the waiting for iATU enabled routine */
2828
#define LINK_WAIT_MAX_IATU_RETRIES 5
29-
#define LINK_WAIT_IATU_MIN 9000
30-
#define LINK_WAIT_IATU_MAX 10000
29+
#define LINK_WAIT_IATU 9
3130

3231
/* Synopsys-specific PCIe configuration registers */
3332
#define PCIE_PORT_LINK_CONTROL 0x710

drivers/pci/hotplug/acpiphp_glue.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -457,17 +457,18 @@ static void acpiphp_native_scan_bridge(struct pci_dev *bridge)
457457
/**
458458
* enable_slot - enable, configure a slot
459459
* @slot: slot to be enabled
460+
* @bridge: true if enable is for the whole bridge (not a single slot)
460461
*
461462
* This function should be called per *physical slot*,
462463
* not per each slot object in ACPI namespace.
463464
*/
464-
static void enable_slot(struct acpiphp_slot *slot)
465+
static void enable_slot(struct acpiphp_slot *slot, bool bridge)
465466
{
466467
struct pci_dev *dev;
467468
struct pci_bus *bus = slot->bus;
468469
struct acpiphp_func *func;
469470

470-
if (bus->self && hotplug_is_native(bus->self)) {
471+
if (bridge && bus->self && hotplug_is_native(bus->self)) {
471472
/*
472473
* If native hotplug is used, it will take care of hotplug
473474
* slot management and resource allocation for hotplug
@@ -701,7 +702,7 @@ static void acpiphp_check_bridge(struct acpiphp_bridge *bridge)
701702
trim_stale_devices(dev);
702703

703704
/* configure all functions */
704-
enable_slot(slot);
705+
enable_slot(slot, true);
705706
} else {
706707
disable_slot(slot);
707708
}
@@ -785,7 +786,7 @@ static void hotplug_event(u32 type, struct acpiphp_context *context)
785786
if (bridge)
786787
acpiphp_check_bridge(bridge);
787788
else if (!(slot->flags & SLOT_IS_GOING_AWAY))
788-
enable_slot(slot);
789+
enable_slot(slot, false);
789790

790791
break;
791792

@@ -973,7 +974,7 @@ int acpiphp_enable_slot(struct acpiphp_slot *slot)
973974

974975
/* configure all functions */
975976
if (!(slot->flags & SLOT_ENABLED))
976-
enable_slot(slot);
977+
enable_slot(slot, false);
977978

978979
pci_unlock_rescan_remove();
979980
return 0;

0 commit comments

Comments
 (0)