Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1480718pxf; Fri, 9 Apr 2021 09:24:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzL0VRetfvTTDwyDxlgngDn19JEx3m64/qV7GKBx39RumMqjrr3SjLJxkXDxBvGoMpOUARW X-Received: by 2002:a63:a0c:: with SMTP id 12mr11701195pgk.247.1617985447689; Fri, 09 Apr 2021 09:24:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617985447; cv=none; d=google.com; s=arc-20160816; b=GDAxkEMa0Ug6iezKNMLopQeQUJlJzGWNcSkXe3oRNbdqK+jyyGQY+ij0lg7rbulNgF UvRpxb600Jtl6Uvg35iM103+E3Px/iC2eauZDXeQcdMuik88wKFdLX9MsiejEtexDDZL /Q6mOMvVtxlme5K+B4yoG7zcukt8a97UMEHQDEio0DF+q/R59cKOD4P5iWjmVf0DoG/3 8ylNr+Md2rany7fjNDJ0nRgGkGF4WSuP/tKiQis13Z8nJA5Y2NxzqpOIEmvFnjJIYAK+ Fv8Cqq85ZxaxK9E7i75sO3bJnDxNrvhi3bJc+G+2SqKzzjY5z5wr5FQX3aeWMNboCzZb T4IQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=Z5n5oioQuJjzrpG8S43x4fo6SLkNI8qOP+OnVxRarzc=; b=H20sXhDLsWK4dLrcNjrjk1VNlSphLqbdfnjVYVdjnlAEaaNfGP9rcNkZvH7QtifK02 2V2p3GAW0z6ER9d2H8SfR4RU0YHkK68Ye5/896HYrN2PCaUq7iW4tCRPHCw6BIM5+Fvl wW3aHXRGHpe2qjGk5N5HCOHEIs+sNM41ShJJoNu0N4i2F+c6fxwHEDF7IAbmIR/c5Sgz 5AbsFZ4k1nSwullMS+xaWpbx73hwzwmIBjsx5nSJK+s/tWYAVKIPZ1DUDnNWdTAxRWcU FZqGtTbGUDMMuIFFIdc/CBSpzxv/yprfTa5+LTlAbGUNqm368X2wroMqskvJ+SX8B9vs V+ZQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v19si3073828pgh.347.2021.04.09.09.23.53; Fri, 09 Apr 2021 09:24:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234045AbhDIQXB (ORCPT + 99 others); Fri, 9 Apr 2021 12:23:01 -0400 Received: from mx.socionext.com ([202.248.49.38]:3602 "EHLO mx.socionext.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233713AbhDIQWr (ORCPT ); Fri, 9 Apr 2021 12:22:47 -0400 Received: from unknown (HELO kinkan2-ex.css.socionext.com) ([172.31.9.52]) by mx.socionext.com with ESMTP; 10 Apr 2021 01:22:29 +0900 Received: from mail.mfilter.local (m-filter-1 [10.213.24.61]) by kinkan2-ex.css.socionext.com (Postfix) with ESMTP id 8972C2059027; Sat, 10 Apr 2021 01:22:29 +0900 (JST) Received: from 172.31.9.51 (172.31.9.51) by m-FILTER with ESMTP; Sat, 10 Apr 2021 01:22:29 +0900 Received: from plum.e01.socionext.com (unknown [10.213.132.32]) by kinkan2.css.socionext.com (Postfix) with ESMTP id 30F7BB1D40; Sat, 10 Apr 2021 01:22:29 +0900 (JST) From: Kunihiko Hayashi To: Bjorn Helgaas , Rob Herring , Lorenzo Pieralisi , Jingoo Han , Gustavo Pimentel , Marc Zyngier Cc: linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jassi Brar , Masami Hiramatsu , Kunihiko Hayashi Subject: [PATCH v10 2/3] PCI: dwc: Add msi_host_isr() callback Date: Sat, 10 Apr 2021 01:22:17 +0900 Message-Id: <1617985338-19648-3-git-send-email-hayashi.kunihiko@socionext.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1617985338-19648-1-git-send-email-hayashi.kunihiko@socionext.com> References: <1617985338-19648-1-git-send-email-hayashi.kunihiko@socionext.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 Cc: Jingoo Han Cc: Gustavo Pimentel Signed-off-by: Kunihiko Hayashi Acked-by: Gustavo Pimentel Reviewed-by: Rob Herring --- 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 7e55b2b..3cc6311 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -61,6 +61,9 @@ irqreturn_t dw_handle_msi_irq(struct pcie_port *pp) irqreturn_t ret = IRQ_NONE; struct dw_pcie *pci = to_dw_pcie_from_pp(pp); + 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 7247c8b..3c15909 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -175,6 +175,7 @@ enum dw_pcie_device_mode { struct dw_pcie_host_ops { int (*host_init)(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