Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp372326ybk; Fri, 15 May 2020 03:01:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxmR6rt36tmhM5beeNYIYtx9Qo59bxdENFUtPYgdMQaJaGZzPdoU8JswdeJTsTrTzqVlzFx X-Received: by 2002:a17:907:2095:: with SMTP id pv21mr1837892ejb.247.1589536872612; Fri, 15 May 2020 03:01:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589536872; cv=none; d=google.com; s=arc-20160816; b=c7dagZj6wJ2gyfx3wvNV+iLvnnmcH90MZpyrRTTn/fCI1PkE15zMEAI5DNLtosYSyH 50g6ZqMtOQToFoWTtB23Z1Nxhoja8uAFrT8NmG3ML558mOAdhRo3JaaBI0bE/fqkZ77r nnhQAMT4SiAXkpFednQZlZJkyXi4YXwm3tvL2SddbCoqdCucQx/4OE5YtIO1iCgE7n3V j5Db0H/gAHuiQ6op4Ag0C5taJMblN7fIsxBit2ZwFskFtMTx8c0LDwK2VgaUlIGNkzBu SV9GWeRnOi77h1dzg/xmagB5GzshCPwyNIK4CmAN3UtTyNRD9i04tHeOrYek6rgXgOlf Q9Rg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=+0YhSUc5ICN0vwmBuWWYG2ScVxCrtpRaFa4qHW599Eo=; b=WDq70bMhTyHNSv4qyo3zV4zkxh2M465wqBRFGf9UD2AHqnsRNJyLgMvYinXkAQhsgV GkvDMEZXWzbcKRK9VXvoD12j4bTYlDoehv5YmlnZhgpvmFjJVJKtRerputdNexk0lDwg jemSKGtZfbo4EdG+MbHEqvxBrB55qshzCVSi1vYBxtkgrhjYgJbfAKg7NDglSCY/UO93 DSF6k02cKP8vjgs4+sx3MeWHKCE1UKyvo138Vzvw9eK4YJO/Kqi7TDArESiWSQUJGN6P 0TX8hWS9JBLF5KljPe5RdMvkPEik8GkgDgzkNS5iMFaAphQtRRdnJx7bam92lQMX3OZf GBwg== 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 u1si920248edf.299.2020.05.15.03.00.49; Fri, 15 May 2020 03:01:12 -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 S1728201AbgEOJ7U (ORCPT + 99 others); Fri, 15 May 2020 05:59:20 -0400 Received: from mx.socionext.com ([202.248.49.38]:29835 "EHLO mx.socionext.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728142AbgEOJ7U (ORCPT ); Fri, 15 May 2020 05:59:20 -0400 Received: from unknown (HELO kinkan-ex.css.socionext.com) ([172.31.9.52]) by mx.socionext.com with ESMTP; 15 May 2020 18:59:17 +0900 Received: from mail.mfilter.local (m-filter-1 [10.213.24.61]) by kinkan-ex.css.socionext.com (Postfix) with ESMTP id 2336E180B60; Fri, 15 May 2020 18:59:18 +0900 (JST) Received: from 172.31.9.51 (172.31.9.51) by m-FILTER with ESMTP; Fri, 15 May 2020 18:59:18 +0900 Received: from plum.e01.socionext.com (unknown [10.213.132.32]) by kinkan.css.socionext.com (Postfix) with ESMTP id C5AD11A12D0; Fri, 15 May 2020 18:59:17 +0900 (JST) From: Kunihiko Hayashi To: Bjorn Helgaas , Lorenzo Pieralisi , Jingoo Han , Gustavo Pimentel , Rob Herring , Masahiro Yamada Cc: linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Masami Hiramatsu , Jassi Brar , Kunihiko Hayashi Subject: [PATCH v2 1/5] PCI: dwc: Add msi_host_isr() callback Date: Fri, 15 May 2020 18:58:59 +0900 Message-Id: <1589536743-6684-2-git-send-email-hayashi.kunihiko@socionext.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1589536743-6684-1-git-send-email-hayashi.kunihiko@socionext.com> References: <1589536743-6684-1-git-send-email-hayashi.kunihiko@socionext.com> Sender: linux-kernel-owner@vger.kernel.org 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. Signed-off-by: Kunihiko Hayashi --- drivers/pci/controller/dwc/pcie-designware-host.c | 8 ++++---- drivers/pci/controller/dwc/pcie-designware.h | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c index 42fbfe2..7dd1021 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -112,13 +112,13 @@ irqreturn_t dw_handle_msi_irq(struct pcie_port *pp) static void dw_chained_msi_isr(struct irq_desc *desc) { struct irq_chip *chip = irq_desc_get_chip(desc); - struct pcie_port *pp; + struct pcie_port *pp = irq_desc_get_handler_data(desc); - chained_irq_enter(chip, desc); + if (pp->ops->msi_host_isr) + pp->ops->msi_host_isr(pp); - pp = irq_desc_get_handler_data(desc); + chained_irq_enter(chip, desc); dw_handle_msi_irq(pp); - chained_irq_exit(chip, desc); } 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