powerpc/powernv/sriov: Factor out M64 BAR setup
authorOliver O'Halloran <oohall@gmail.com>
Wed, 22 Jul 2020 06:57:08 +0000 (16:57 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Sun, 26 Jul 2020 13:34:22 +0000 (23:34 +1000)
commita610d35cc8780e781321ea8d002d5fef8484bf59
tree1c67da0939ca3191c0e96e2f0c9352c3354a9d6a
parentad9add529d99d195195c27abf99e42d4965d35e2
powerpc/powernv/sriov: Factor out M64 BAR setup

The sequence required to use the single PE BAR mode is kinda janky and
requires a little explanation. The API was designed with P7-IOC style
windows where the setup process is something like:

1. Configure the window start / end address
2. Enable the window
3. Map the segments of each window to the PE

For Single PE BARs the process is:

1. Set the PE for segment zero on a disabled window
2. Set the range
3. Enable the window

Move the OPAL calls into their own helper functions where the quirks can be
contained.

Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200722065715.1432738-9-oohall@gmail.com
arch/powerpc/platforms/powernv/pci-sriov.c