diff options
| author | Wei Yang <weiyang@linux.vnet.ibm.com> | 2015-03-25 04:23:57 -0400 |
|---|---|---|
| committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2015-03-30 22:02:38 -0400 |
| commit | 781a868f3136c6eb8e8c5c19d148416d7da86610 (patch) | |
| tree | 941341c0c52f2669b73b5ec619aeff5e31826b4e /arch/powerpc/include | |
| parent | 5350ab3fd794f899079d9f6b2b6fe1a7917087ef (diff) | |
powerpc/powernv: Shift VF resource with an offset
On PowerNV platform, resource position in M64 BAR implies the PE# the
resource belongs to. In some cases, adjustment of a resource is necessary
to locate it to a correct position in M64 BAR .
This patch adds pnv_pci_vf_resource_shift() to shift the 'real' PF IOV BAR
address according to an offset.
Note:
After doing so, there would be a "hole" in the /proc/iomem when offset
is a positive value. It looks like the device return some mmio back to
the system, which actually no one could use it.
[bhelgaas: rework loops, rework overlap check, index resource[]
conventionally, remove pci_regs.h include, squashed with next patch]
Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/include')
| -rw-r--r-- | arch/powerpc/include/asm/pci-bridge.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h index 7b8ebc5929ff..8716db48e946 100644 --- a/arch/powerpc/include/asm/pci-bridge.h +++ b/arch/powerpc/include/asm/pci-bridge.h | |||
| @@ -180,6 +180,10 @@ struct pci_dn { | |||
| 180 | int pe_number; | 180 | int pe_number; |
| 181 | #ifdef CONFIG_PCI_IOV | 181 | #ifdef CONFIG_PCI_IOV |
| 182 | u16 vfs_expanded; /* number of VFs IOV BAR expanded */ | 182 | u16 vfs_expanded; /* number of VFs IOV BAR expanded */ |
| 183 | u16 num_vfs; /* number of VFs enabled*/ | ||
| 184 | int offset; /* PE# for the first VF PE */ | ||
| 185 | #define IODA_INVALID_M64 (-1) | ||
| 186 | int m64_wins[PCI_SRIOV_NUM_BARS]; | ||
| 183 | #endif /* CONFIG_PCI_IOV */ | 187 | #endif /* CONFIG_PCI_IOV */ |
| 184 | #endif | 188 | #endif |
| 185 | struct list_head child_list; | 189 | struct list_head child_list; |
