|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v1 1/3] vpci/msix: move helpers to common
From: Rahul Singh <rahul.singh@xxxxxxx>
vPCI MSI-X helpers to be used on Arm are moved to a common header.
Signed-off-by: Rahul Singh <rahul.singh@xxxxxxx>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@xxxxxxx>
Signed-off-by: Mykyta Poturai <mykyta_poturai@xxxxxxxx>
---
xen/arch/x86/include/asm/msi.h | 21 ---------------------
xen/arch/x86/msi.c | 2 +-
xen/drivers/passthrough/amd/iommu.h | 2 +-
xen/drivers/vpci/msi.c | 3 +--
xen/drivers/vpci/msix.c | 2 +-
xen/include/xen/msi.h | 21 +++++++++++++++++++++
6 files changed, 25 insertions(+), 26 deletions(-)
diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/msi.h
index 6fb663b2e7..818fa72928 100644
--- a/xen/arch/x86/include/asm/msi.h
+++ b/xen/arch/x86/include/asm/msi.h
@@ -147,27 +147,6 @@ int msi_free_irq(struct msi_desc *entry);
*/
#define NR_HP_RESERVED_VECTORS 20
-#define msi_control_reg(base) ((base) + PCI_MSI_FLAGS)
-#define msi_lower_address_reg(base) ((base) + PCI_MSI_ADDRESS_LO)
-#define msi_upper_address_reg(base) ((base) + PCI_MSI_ADDRESS_HI)
-#define msi_data_reg(base, is64bit) \
- ((base) + ((is64bit) ? PCI_MSI_DATA_64 : PCI_MSI_DATA_32))
-#define msi_mask_bits_reg(base, is64bit) \
- ((base) + PCI_MSI_MASK_BIT - ((is64bit) ? 0 : 4))
-#define msi_pending_bits_reg(base, is64bit) \
- ((base) + PCI_MSI_MASK_BIT + ((is64bit) ? 4 : 0))
-#define multi_msi_capable(control) \
- (1U << MASK_EXTR(control, PCI_MSI_FLAGS_QMASK))
-#define multi_msi_enable(control, num) \
- ((control) |= MASK_INSR(fls(num) - 1, PCI_MSI_FLAGS_QSIZE))
-#define is_64bit_address(control) (!!((control) & PCI_MSI_FLAGS_64BIT))
-#define is_mask_bit_support(control) (!!((control) & PCI_MSI_FLAGS_MASKBIT))
-
-#define msix_control_reg(base) ((base) + PCI_MSIX_FLAGS)
-#define msix_table_offset_reg(base) ((base) + PCI_MSIX_TABLE)
-#define msix_pba_offset_reg(base) ((base) + PCI_MSIX_PBA)
-#define msix_table_size(control) (((control) & PCI_MSIX_FLAGS_QSIZE) + 1)
-
/*
* MSI Defined Data Structures
*/
diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
index 8831ce068c..5e4e89b3c0 100644
--- a/xen/arch/x86/msi.c
+++ b/xen/arch/x86/msi.c
@@ -21,6 +21,7 @@
#include <xen/iocap.h>
#include <xen/keyhandler.h>
#include <xen/pfn.h>
+#include <xen/msi.h>
#include <asm/apic.h>
#include <asm/genapic.h>
@@ -29,7 +30,6 @@
#include <asm/irq-vectors.h>
#include <asm/smp.h>
#include <asm/desc.h>
-#include <asm/msi.h>
#include <asm/fixmap.h>
#include <asm/p2m.h>
diff --git a/xen/drivers/passthrough/amd/iommu.h
b/xen/drivers/passthrough/amd/iommu.h
index 52f748310b..ba22506f58 100644
--- a/xen/drivers/passthrough/amd/iommu.h
+++ b/xen/drivers/passthrough/amd/iommu.h
@@ -26,8 +26,8 @@
#include <xen/tasklet.h>
#include <xen/sched.h>
#include <xen/domain_page.h>
+#include <xen/msi.h>
-#include <asm/msi.h>
#include <asm/apicdef.h>
#include "iommu-defs.h"
diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
index f736054b2b..0ed39a6de9 100644
--- a/xen/drivers/vpci/msi.c
+++ b/xen/drivers/vpci/msi.c
@@ -18,11 +18,10 @@
#include "private.h"
+#include <xen/msi.h>
#include <xen/sched.h>
#include <xen/softirq.h>
-#include <asm/msi.h>
-
static uint32_t cf_check control_read(
const struct pci_dev *pdev, unsigned int reg, void *data)
{
diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 5b01859acf..05056b5ea1 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -21,9 +21,9 @@
#include <xen/io.h>
#include <xen/lib.h>
+#include <xen/msi.h>
#include <xen/sched.h>
-#include <asm/msi.h>
#include <asm/p2m.h>
#include <asm/x86_emulate.h>
diff --git a/xen/include/xen/msi.h b/xen/include/xen/msi.h
index c903d0050c..4e922965de 100644
--- a/xen/include/xen/msi.h
+++ b/xen/include/xen/msi.h
@@ -7,6 +7,27 @@
#include <asm/msi.h>
+#define msi_control_reg(base) ((base) + PCI_MSI_FLAGS)
+#define msi_lower_address_reg(base) ((base) + PCI_MSI_ADDRESS_LO)
+#define msi_upper_address_reg(base) ((base) + PCI_MSI_ADDRESS_HI)
+#define msi_data_reg(base, is64bit) \
+ ((base) + ((is64bit) ? PCI_MSI_DATA_64 : PCI_MSI_DATA_32))
+#define msi_mask_bits_reg(base, is64bit) \
+ ((base) + PCI_MSI_MASK_BIT - ((is64bit) ? 0 : 4))
+#define msi_pending_bits_reg(base, is64bit) \
+ ((base) + PCI_MSI_MASK_BIT + ((is64bit) ? 4 : 0))
+#define multi_msi_capable(control) \
+ (1U << MASK_EXTR(control, PCI_MSI_FLAGS_QMASK))
+#define multi_msi_enable(control, num) \
+ ((control) |= MASK_INSR(fls(num) - 1, PCI_MSI_FLAGS_QSIZE))
+#define is_64bit_address(control) (!!((control) & PCI_MSI_FLAGS_64BIT))
+#define is_mask_bit_support(control) (!!((control) & PCI_MSI_FLAGS_MASKBIT))
+
+#define msix_control_reg(base) ((base) + PCI_MSIX_FLAGS)
+#define msix_table_offset_reg(base) ((base) + PCI_MSIX_TABLE)
+#define msix_pba_offset_reg(base) ((base) + PCI_MSIX_PBA)
+#define msix_table_size(control) (((control) & PCI_MSIX_FLAGS_QSIZE) + 1)
+
int pdev_msix_assign(struct domain *d, struct pci_dev *pdev);
int pdev_msi_init(struct pci_dev *pdev);
void pdev_msi_deinit(struct pci_dev *pdev);
--
2.55.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |