From 6ed593f8617da194977709f8416639f7403e2b22 Mon Sep 17 00:00:00 2001 From: Tomasz Bursztyka Date: Tue, 23 Mar 2021 14:33:37 +0100 Subject: [PATCH] drivers/pcie: Extending parameters to pcie_msi_map n_vector will be necessary for VT-D actually. Signed-off-by: Tomasz Bursztyka --- arch/x86/core/pcie.c | 3 ++- drivers/pcie/host/msi.c | 4 ++-- include/drivers/pcie/msi.h | 4 +++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/arch/x86/core/pcie.c b/arch/x86/core/pcie.c index cf1e9b744a1..cf503d4a201 100644 --- a/arch/x86/core/pcie.c +++ b/arch/x86/core/pcie.c @@ -181,7 +181,8 @@ static bool get_vtd(void) /* these functions are explained in include/drivers/pcie/msi.h */ uint32_t pcie_msi_map(unsigned int irq, - msi_vector_t *vector) + msi_vector_t *vector, + uint8_t n_vector) { ARG_UNUSED(irq); diff --git a/drivers/pcie/host/msi.c b/drivers/pcie/host/msi.c index bcbf3e48ef5..f98d0fa6a3f 100644 --- a/drivers/pcie/host/msi.c +++ b/drivers/pcie/host/msi.c @@ -204,7 +204,7 @@ static void enable_msix(pcie_bdf_t bdf, int i; for (i = 0; i < n_vector; i++) { - uint32_t map = pcie_msi_map(irq, &vectors[i]); + uint32_t map = pcie_msi_map(irq, &vectors[i], 1); uint32_t mdr = pcie_msi_mdr(irq, &vectors[i]); vectors[i].msix_vector->msg_addr = map; @@ -243,7 +243,7 @@ static void enable_msi(pcie_bdf_t bdf, uint32_t mdr; uint32_t mme; - map = pcie_msi_map(irq, vectors); + map = pcie_msi_map(irq, vectors, n_vector); pcie_conf_write(bdf, base + PCIE_MSI_MAP0, map); mdr = pcie_msi_mdr(irq, vectors); diff --git a/include/drivers/pcie/msi.h b/include/drivers/pcie/msi.h index d1bcb2760ea..876335748a4 100644 --- a/include/drivers/pcie/msi.h +++ b/include/drivers/pcie/msi.h @@ -78,10 +78,12 @@ extern bool pcie_msi_vector_connect(pcie_bdf_t bdf, * * @param irq The IRQ we wish to trigger via MSI. * @param vector The vector for which you want the address (or NULL) + * @param n_vector the size of the vector array * @return A (32-bit) value for the MSI MAP register. */ extern uint32_t pcie_msi_map(unsigned int irq, - msi_vector_t *vector); + msi_vector_t *vector, + uint8_t n_vector); /** * @brief Compute the data for an MSI posted write.