linux/arch/powerpc/platforms
Wei Yang 0dc2830e0a powerpc/powernv: Support PCI config restore for VFs
After PE reset, OPAL API opal_pci_reinit() is called on all devices
contained in the PE to reinitialize them. While skiboot is not aware of
VFs, we have to implement the function in kernel to reinitialize VFs after
reset on PE for VFs.

In this patch, two functions pnv_pci_fixup_vf_mps() and
pnv_eeh_restore_vf_config() both manipulate the MPS of the VF, since for a
VF it has three cases.

1. Normal creation for a VF
   In this case, pnv_pci_fixup_vf_mps() is called to make the MPS a proper
   value compared with its parent.
2. EEH recovery without VF removed
   In this case, MPS is stored in pci_dn and pnv_eeh_restore_vf_config() is
   called to restore it and reinitialize other part.
3. EEH recovery with VF removed
   In this case, VF will be removed then re-created. Both functions are
   called. First pnv_pci_fixup_vf_mps() is called to store the proper MPS
   to pci_dn and then pnv_eeh_restore_vf_config() is called to do proper
   thing.

This introduces two functions: pnv_pci_fixup_vf_mps() to fixup the VF's
MPS to make sure it is equal to parent's and store this value in pci_dn
for future use. pnv_eeh_restore_vf_config() to re-initialize on VF by
restoring MPS, disabling completion timeout, enabling SERR, etc.

Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
Acked-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-03-09 09:58:22 +11:00
..
8xx genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
40x powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
44x powerpc/44x/Akebono: Remove select of IBM_EMAC_RGMII_WOL 2014-12-29 15:45:44 +11:00
52xx powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
82xx mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
83xx QE: Move QE from arch/powerpc to drivers/soc 2015-12-22 17:12:56 -06:00
85xx powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
86xx Merge branch 'clock' into HEAD 2015-10-27 18:14:16 -05:00
512x powerpc/512x: add LocalPlus Bus FIFO device driver 2015-10-22 15:19:40 +02:00
amigaone lib/scatterlist: make ARCH_HAS_SG_CHAIN an actual Kconfig 2014-08-08 15:57:26 -07:00
cell wrappers for ->i_mutex access 2016-01-22 18:04:28 -05:00
chrp genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
embedded6xx genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
maple powerpc: Remove broken GregorianDay() 2015-12-16 12:54:04 +11:00
pasemi mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
powermac powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
powernv powerpc/powernv: Support PCI config restore for VFs 2016-03-09 09:58:22 +11:00
ps3 powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
pseries powerpc/mm: Handle removing maybe-present bolted HPTEs 2016-03-01 22:04:18 +11:00
Kconfig QE: Move QE from arch/powerpc to drivers/soc 2015-12-22 17:12:56 -06:00
Kconfig.cputype powerpc/cell: Drop CONFIG_TUNE_CELL in favour of CONFIG_CELL_CPU 2015-10-19 19:51:18 +11:00
Makefile powerpc: Remove platforms/wsp and associated pieces 2014-06-11 16:35:38 +10:00
fsl_uli1575.c of/irq: Refactor interrupt-map parsing 2013-10-24 11:43:04 +01:00