lkml.org 
[lkml]   [2020]   [Jun]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 1/6] PCI: dwc: Add msi_host_isr() callback
    Date
    This adds msi_host_isr() callback function support to describe
    SoC-dependent service triggered by MSI.

    For example, when AER interrupt is triggered by MSI, the callback function
    reads SoC-dependent registers and detects that the interrupt is from AER,
    and invoke AER interrupts related to MSI.

    Cc: Marc Zyngier <maz@kernel.org>
    Cc: Jingoo Han <jingoohan1@gmail.com>
    Cc: Gustavo Pimentel <gustavo.pimentel@synopsys.com>
    Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
    Acked-by: Gustavo Pimentel <gustavo.pimentel@synopsys.com>
    ---
    drivers/pci/controller/dwc/pcie-designware-host.c | 3 +++
    drivers/pci/controller/dwc/pcie-designware.h | 1 +
    2 files changed, 4 insertions(+)

    diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
    index 0a4a5aa..026edb1 100644
    --- a/drivers/pci/controller/dwc/pcie-designware-host.c
    +++ b/drivers/pci/controller/dwc/pcie-designware-host.c
    @@ -83,6 +83,9 @@ irqreturn_t dw_handle_msi_irq(struct pcie_port *pp)
    u32 status, num_ctrls;
    irqreturn_t ret = IRQ_NONE;

    + if (pp->ops->msi_host_isr)
    + pp->ops->msi_host_isr(pp);
    +
    num_ctrls = pp->num_vectors / MAX_MSI_IRQS_PER_CTRL;

    for (i = 0; i < num_ctrls; i++) {
    diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h
    index 656e00f..e741967 100644
    --- a/drivers/pci/controller/dwc/pcie-designware.h
    +++ b/drivers/pci/controller/dwc/pcie-designware.h
    @@ -170,6 +170,7 @@ struct dw_pcie_host_ops {
    void (*scan_bus)(struct pcie_port *pp);
    void (*set_num_vectors)(struct pcie_port *pp);
    int (*msi_host_init)(struct pcie_port *pp);
    + void (*msi_host_isr)(struct pcie_port *pp);
    };

    struct pcie_port {
    --
    2.7.4
    \
     
     \ /
      Last update: 2020-06-18 10:39    [W:3.501 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site