android_kernel_sony_sdm845/arch
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Oliver O'Halloran 04d8497656 powerpc/powernv: Disable native PCIe port management
commit 9d72dcef891030545f39ad386a30cf91df517fb2 upstream.

On PowerNV the PCIe topology is (currently) managed by the powernv platform
code in Linux in cooperation with the platform firmware. Linux's native
PCIe port service drivers operate independently of both and this can cause
problems.

The main issue is that the portbus driver will conflict with the platform
specific hotplug driver (pnv_php) over ownership of the MSI used to notify
the host when a hotplug event occurs. The portbus driver claims this MSI on
behalf of the individual port services because the same interrupt is used
for hotplug events, PMEs (on root ports), and link bandwidth change
notifications. The portbus driver will always claim the interrupt even if
the individual port service drivers, such as pciehp, are compiled out.

The second, bigger, problem is that the hotplug port service driver
fundamentally does not work on PowerNV. The platform assumes that all
PCI devices have a corresponding arch-specific handle derived from the DT
node for the device (pci_dn) and without one the platform will not allow
a PCI device to be enabled. This problem is largely due to historical
baggage, but it can't be resolved without significant re-factoring of the
platform PCI support.

We can fix these problems in the interim by setting the
"pcie_ports_disabled" flag during platform initialisation. The flag
indicates the platform owns the PCIe ports which stops the portbus driver
from being registered.

This does have the side effect of disabling all port services drivers
that is: AER, PME, BW notifications, hotplug, and DPC. However, this is
not a huge disadvantage on PowerNV since these services are either unused
or handled through other means.

Fixes: 66725152fb ("PCI/hotplug: PowerPC PowerNV PCI hotplug driver")
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20191118065553.30362-1-oohall@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-01-23 08:19:36 +01:00
..
alpha alpha: Fix Eiger NR_IRQS to 128 2019-02-20 10:18:32 +01:00
arc ARC: perf: Accommodate big-endian CPU 2019-11-28 18:29:03 +01:00
arm ARM: dts: am437x-gp/epos-evm: fix panel compatible 2020-01-12 11:24:21 +01:00
arm64 arm64: Make sure permission updates happen for pmd/pud 2020-01-23 08:19:34 +01:00
avr32
blackfin pinctrl: adi2: Fix Kconfig build problem 2017-12-20 10:07:32 +01:00
c6x c6x/ptrace: Remove useless PTRACE_SETREGSET implementation 2017-03-31 10:31:46 +02:00
cris cris: Only build flash rescue image if CONFIG_ETRAX_AXISFLASHMAP is selected 2017-01-12 11:39:24 +01:00
frv futex: Remove duplicated code and fix undefined behaviour 2018-05-19 10:27:00 +02:00
h8300 h8300: use cc-cross-prefix instead of hardcoding h8300-unknown-linux- 2019-04-05 22:29:05 +02:00
hexagon hexagon: modify ffs() and fls() to return int 2018-10-10 08:53:21 +02:00
ia64 ia64:unwind: fix double free for mod->arch.init_unw_table 2019-10-05 12:30:20 +02:00
m32r
m68k m68k: fix command-line parsing when passed from u-boot 2019-11-28 18:28:22 +01:00
metag metag/uaccess: Check access_ok in strncpy_from_user 2017-05-25 15:44:46 +02:00
microblaze microblaze: move "... is ready" messages to arch/microblaze/Makefile 2019-12-05 15:34:24 +01:00
mips MIPS: Avoid VDSO ABI breakage due to global register variable 2020-01-12 11:24:12 +01:00
mn10300 mn10300/misalignment: Use SIGSEGV SEGV_MAPERR to report a failed user copy 2018-02-17 13:21:20 +01:00
nios2 nios2: reserve boot memory for device tree 2017-04-12 12:41:14 +02:00
openrisc openrisc: Fix broken paths to arch/or32 2019-12-05 15:34:41 +01:00
parisc parisc: Fix compiler warnings in debug_core.c 2020-01-12 11:24:25 +01:00
powerpc powerpc/powernv: Disable native PCIe port management 2020-01-23 08:19:36 +01:00
s390 s390/smp: fix physical to logical CPU map for SMT 2020-01-12 11:24:19 +01:00
score
sh pinctrl: sh-pfc: sh7734: Fix duplicate TCLK1_B 2020-01-04 13:39:31 +01:00
sparc sparc64: Rework xchg() definition to avoid warnings. 2019-11-28 18:28:40 +01:00
tile locking/x86: Remove the unused atomic_inc_short() methd 2020-01-12 11:24:19 +01:00
um um: Make GCOV depend on !KCOV 2019-12-05 15:34:56 +01:00
unicore32
x86 perf/x86/intel: Fix PT PMI handling 2020-01-12 11:24:24 +01:00
xtensa xtensa: fix TLB sanity checker 2019-12-21 10:42:30 +01:00
.gitignore
Kconfig cpu/hotplug: Provide knobs to control SMT 2018-08-15 18:14:46 +02:00