powerpc/powernv: Document cxl dependency on special case in pnv_eeh_reset()
authorAndrew Donnellan <andrew.donnellan@au1.ibm.com>
Fri, 22 Jul 2016 07:16:35 +0000 (17:16 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 3 May 2017 04:45:37 +0000 (14:45 +1000)
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>
arch/powerpc/platforms/powernv/eeh-powernv.c

index 6fb5522..d2f1982 100644 (file)
@@ -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);