diff options
author | Andrew Donnellan <andrew.donnellan@au1.ibm.com> | 2016-07-22 17:16:35 +1000 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2017-05-03 14:45:37 +1000 |
commit | b7da1230532984fc00962b2c8be94acc87655707 (patch) | |
tree | d4f8575404764758a852ae8b11ec0cf6493c00d9 /arch/powerpc/platforms/powernv/eeh-powernv.c | |
parent | c0b64978f09195e00d6649ca0ad0242a80e6e99a (diff) | |
download | linux-b7da1230532984fc00962b2c8be94acc87655707.tar.gz linux-b7da1230532984fc00962b2c8be94acc87655707.tar.bz2 linux-b7da1230532984fc00962b2c8be94acc87655707.zip |
powerpc/powernv: Document cxl dependency on special case in pnv_eeh_reset()
pnv_eeh_reset() has special handling for PEs whose primary bus is the
root bus or the bus immediately underneath the root port.
The cxl bi-modal card support added in b0b5e5918ad1 ("cxl: Add
cxl_check_and_switch_mode() API to switch bi-modal cards") relies on
this behaviour when hot-resetting the CAPI adapter following a mode
switch. Document this in pnv_eeh_reset() so we don't accidentally break
it.
Suggested-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Reviewed-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/platforms/powernv/eeh-powernv.c')
-rw-r--r-- | arch/powerpc/platforms/powernv/eeh-powernv.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/powernv/eeh-powernv.c b/arch/powerpc/platforms/powernv/eeh-powernv.c index 6fb5522acd70..d2f19821d71d 100644 --- a/arch/powerpc/platforms/powernv/eeh-powernv.c +++ b/arch/powerpc/platforms/powernv/eeh-powernv.c @@ -1102,6 +1102,13 @@ static int pnv_eeh_reset(struct eeh_pe *pe, int option) return -EIO; } + /* + * If dealing with the root bus (or the bus underneath the + * root port), we reset the bus underneath the root port. + * + * The cxl driver depends on this behaviour for bi-modal card + * switching. + */ if (pci_is_root_bus(bus) || pci_is_root_bus(bus->parent)) return pnv_eeh_root_reset(hose, option); |