Message ID | 20231206105839.25805-16-minda.chen@starfivetech.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp4025108vqy; Wed, 6 Dec 2023 03:01:34 -0800 (PST) X-Google-Smtp-Source: AGHT+IHMOARjsRfFlspgrLmgAH8E8evhKEOv11GBnk5F0Ra6Zs6huOoIm0L+8V+u3Qwr5tYjBNJL X-Received: by 2002:a05:6a21:1ca6:b0:18f:a92:9152 with SMTP id sf38-20020a056a211ca600b0018f0a929152mr390191pzb.103.1701860489697; Wed, 06 Dec 2023 03:01:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701860489; cv=none; d=google.com; s=arc-20160816; b=wyvErUFLdW30i1T/1siawK5AOw6cvDsDd707XTEK7qf0fD8lOoGpqhAbLcpEF6xolz FJtevyKZuVKfw2QWDfdqzDqKiA9N7vc8KcoulzHqRwz7Aotks/OBM+ONDF50LucwjX+b l6j01GXSdPqKGllkeaIi7Sgwc+cRoFd3TFLBGOssino1dxw9LefQbwCSIK0ptIrc2Oky JJ3q6F8UenMt+v/wI5OTXAdHa+EdZDiyMxiw8QI5rTiWZwUReYOFOnW4T0uNlDJ9KEu4 AwRn/t8o32jAv/mt8cNMEw+dd403TOu7AVYn4LaBmkjX/8fJAWnHRZxZ8qSwoOmQSWk5 asIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=7n0b4yZXTfGBRpewvqDIaz6B16WuBeaaREbUx1bHStU=; fh=ld3UXb1S5Y4IkunPfuj6e9Ppmc+fy6ncC+eQtrVLfK8=; b=BmTYpA3ZwOAUf8zsZ8z5vEgj9UI+fzekRXFDStepSPdEJWRj7AIkF1C6dNdSOtEUu1 cWd0702EzZATHTjWn7RgVCrDdX9z+YP8qRXxRlci9Ovb04AYBKZuMQytDaUsYCG4+c3y PMLUJflUK8CXH6veA3rqzR/LqOuqDcFj/oPBwyj5q3QWhCNB3cd1aMVEZgzLCLxT4peA +rmlSFsKgz2fN742Ci4hrpuQAsMII5Tr3lEi1sfUy3PCiCcanUhO0VxWf9fqDyjG4TIv tVXaCJQ1cpNDb18kwF89Lf7hPdk6Je8Kcl3a6QNKlY9TWxutm93AyTmPfgn4mkBdI9pQ ggsQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from morse.vger.email (morse.vger.email. [23.128.96.31]) by mx.google.com with ESMTPS id bq10-20020a056a02044a00b005bdfd3a26a0si5842506pgb.584.2023.12.06.03.01.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Dec 2023 03:01:29 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) client-ip=23.128.96.31; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 6D771809C39F; Wed, 6 Dec 2023 03:00:38 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1378125AbjLFLAV (ORCPT <rfc822;pusanteemu@gmail.com> + 99 others); Wed, 6 Dec 2023 06:00:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49714 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1378030AbjLFK7f (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Wed, 6 Dec 2023 05:59:35 -0500 Received: from fd01.gateway.ufhost.com (fd01.gateway.ufhost.com [61.152.239.71]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B7AEED59; Wed, 6 Dec 2023 02:59:10 -0800 (PST) Received: from EXMBX165.cuchost.com (unknown [175.102.18.54]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "EXMBX165", Issuer "EXMBX165" (not verified)) by fd01.gateway.ufhost.com (Postfix) with ESMTP id 5294F80E1; Wed, 6 Dec 2023 18:58:55 +0800 (CST) Received: from EXMBX171.cuchost.com (172.16.6.91) by EXMBX165.cuchost.com (172.16.6.75) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Wed, 6 Dec 2023 18:58:55 +0800 Received: from ubuntu.localdomain (183.27.97.199) by EXMBX171.cuchost.com (172.16.6.91) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Wed, 6 Dec 2023 18:58:54 +0800 From: Minda Chen <minda.chen@starfivetech.com> To: Conor Dooley <conor@kernel.org>, =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kw@linux.com>, Rob Herring <robh+dt@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>, Lorenzo Pieralisi <lpieralisi@kernel.org>, "Daire McNamara" <daire.mcnamara@microchip.com>, Emil Renner Berthing <emil.renner.berthing@canonical.com>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org> CC: <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <linux-riscv@lists.infradead.org>, <linux-pci@vger.kernel.org>, Paul Walmsley <paul.walmsley@sifive.com>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, Philipp Zabel <p.zabel@pengutronix.de>, Mason Huo <mason.huo@starfivetech.com>, Leyfoon Tan <leyfoon.tan@starfivetech.com>, Kevin Xie <kevin.xie@starfivetech.com>, Minda Chen <minda.chen@starfivetech.com> Subject: [PATCH v12 15/21] PCI: microchip: Add event IRQ domain ops to struct plda_event Date: Wed, 6 Dec 2023 18:58:33 +0800 Message-ID: <20231206105839.25805-16-minda.chen@starfivetech.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20231206105839.25805-1-minda.chen@starfivetech.com> References: <20231206105839.25805-1-minda.chen@starfivetech.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [183.27.97.199] X-ClientProxiedBy: EXCAS062.cuchost.com (172.16.6.22) To EXMBX171.cuchost.com (172.16.6.91) X-YovoleRuleAgent: yovoleflag X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Wed, 06 Dec 2023 03:00:38 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784530064341767318 X-GMAIL-MSGID: 1784530064341767318 |
Series |
Refactoring Microchip PCIe driver and add StarFive PCIe
|
|
Commit Message
Minda Chen
Dec. 6, 2023, 10:58 a.m. UTC
For lack of an MSI controller, The new added PCIe interrupts have to be added to global interrupt event field. PolarFire event domain ops can not be re-used. PLDA event domain ops instances will be implemented in later patch. Signed-off-by: Minda Chen <minda.chen@starfivetech.com> Acked-by: Conor Dooley <conor.dooley@microchip.com> --- drivers/pci/controller/plda/pcie-microchip-host.c | 6 ++++-- drivers/pci/controller/plda/pcie-plda.h | 1 + 2 files changed, 5 insertions(+), 2 deletions(-)
Comments
On Wed, Dec 06, 2023 at 06:58:33PM +0800, Minda Chen wrote: > For lack of an MSI controller, The new added PCIe interrupts have to be > added to global interrupt event field. PolarFire event domain ops can not > be re-used. I don't understand what this means, please explain and I will add it to the commit log. > PLDA event domain ops instances will be implemented in later patch. Future patches don't exist, each commit log is a logical change that must make sense on its own, I will remove this sentence. Lorenzo > Signed-off-by: Minda Chen <minda.chen@starfivetech.com> > Acked-by: Conor Dooley <conor.dooley@microchip.com> > --- > drivers/pci/controller/plda/pcie-microchip-host.c | 6 ++++-- > drivers/pci/controller/plda/pcie-plda.h | 1 + > 2 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c > index f5e7da242aec..e6dcc572b65b 100644 > --- a/drivers/pci/controller/plda/pcie-microchip-host.c > +++ b/drivers/pci/controller/plda/pcie-microchip-host.c > @@ -821,13 +821,15 @@ static const struct plda_event_ops mc_event_ops = { > }; > > static const struct plda_event mc_event = { > + .domain_ops = &mc_event_domain_ops, > .event_ops = &mc_event_ops, > .request_event_irq = mc_request_event_irq, > .intx_event = EVENT_LOCAL_PM_MSI_INT_INTX, > .msi_event = EVENT_LOCAL_PM_MSI_INT_MSI, > }; > > -static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port) > +static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port, > + const struct irq_domain_ops *ops) > { > struct device *dev = port->dev; > struct device_node *node = dev->of_node; > @@ -941,7 +943,7 @@ static int plda_init_interrupts(struct platform_device *pdev, > return -EINVAL; > } > > - ret = plda_pcie_init_irq_domains(port); > + ret = plda_pcie_init_irq_domains(port, event->domain_ops); > if (ret) { > dev_err(dev, "failed creating IRQ domains\n"); > return ret; > diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h > index df1729095952..820ea16855b5 100644 > --- a/drivers/pci/controller/plda/pcie-plda.h > +++ b/drivers/pci/controller/plda/pcie-plda.h > @@ -129,6 +129,7 @@ struct plda_pcie_rp { > }; > > struct plda_event { > + const struct irq_domain_ops *domain_ops; > const struct plda_event_ops *event_ops; > int (*request_event_irq)(struct plda_pcie_rp *pcie, > int event_irq, int event); > -- > 2.17.1 >
On 2023/12/12 19:19, Lorenzo Pieralisi wrote: > On Wed, Dec 06, 2023 at 06:58:33PM +0800, Minda Chen wrote: >> For lack of an MSI controller, The new added PCIe interrupts have to be >> added to global interrupt event field. PolarFire event domain ops can not >> be re-used. > > I don't understand what this means, please explain and I will > add it to the commit log. > Sorry. Microchip Polarfire PCIe adds 11 PCIe interrupts to PCIe global event domain.(Total 28 PCIe interrupts) The microchip event domain and event irqchip will handle these interrupts. But PLDA host contain 13 fixed PCIe interrupts. PLDA codes just process these 13 interrupts. Microchip the event irq codes are quite different and can't be used by PLDA codes. So add an event domain field support microchip and other vendor who just using the PLDA interrupts. >> PLDA event domain ops instances will be implemented in later patch. > > Future patches don't exist, each commit log is a logical change > that must make sense on its own, I will remove this sentence. > > Lorenzo OK, Thanks. >> Signed-off-by: Minda Chen <minda.chen@starfivetech.com> >> Acked-by: Conor Dooley <conor.dooley@microchip.com> >> --- >> drivers/pci/controller/plda/pcie-microchip-host.c | 6 ++++-- >> drivers/pci/controller/plda/pcie-plda.h | 1 + >> 2 files changed, 5 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c >> index f5e7da242aec..e6dcc572b65b 100644 >> --- a/drivers/pci/controller/plda/pcie-microchip-host.c >> +++ b/drivers/pci/controller/plda/pcie-microchip-host.c >> @@ -821,13 +821,15 @@ static const struct plda_event_ops mc_event_ops = { >> }; >> >> static const struct plda_event mc_event = { >> + .domain_ops = &mc_event_domain_ops, >> .event_ops = &mc_event_ops, >> .request_event_irq = mc_request_event_irq, >> .intx_event = EVENT_LOCAL_PM_MSI_INT_INTX, >> .msi_event = EVENT_LOCAL_PM_MSI_INT_MSI, >> }; >> >> -static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port) >> +static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port, >> + const struct irq_domain_ops *ops) >> { >> struct device *dev = port->dev; >> struct device_node *node = dev->of_node; >> @@ -941,7 +943,7 @@ static int plda_init_interrupts(struct platform_device *pdev, >> return -EINVAL; >> } >> >> - ret = plda_pcie_init_irq_domains(port); >> + ret = plda_pcie_init_irq_domains(port, event->domain_ops); >> if (ret) { >> dev_err(dev, "failed creating IRQ domains\n"); >> return ret; >> diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h >> index df1729095952..820ea16855b5 100644 >> --- a/drivers/pci/controller/plda/pcie-plda.h >> +++ b/drivers/pci/controller/plda/pcie-plda.h >> @@ -129,6 +129,7 @@ struct plda_pcie_rp { >> }; >> >> struct plda_event { >> + const struct irq_domain_ops *domain_ops; >> const struct plda_event_ops *event_ops; >> int (*request_event_irq)(struct plda_pcie_rp *pcie, >> int event_irq, int event); >> -- >> 2.17.1 >>
On Wed, Dec 13, 2023 at 04:15:39PM +0800, Minda Chen wrote: > > > On 2023/12/12 19:19, Lorenzo Pieralisi wrote: > > On Wed, Dec 06, 2023 at 06:58:33PM +0800, Minda Chen wrote: > >> For lack of an MSI controller, The new added PCIe interrupts have to be > >> added to global interrupt event field. PolarFire event domain ops can not > >> be re-used. > > > > I don't understand what this means, please explain and I will > > add it to the commit log. > > > Sorry. > Microchip Polarfire PCIe adds 11 PCIe interrupts to PCIe global event domain.(Total 28 PCIe interrupts) > The microchip event domain and event irqchip will handle these interrupts. > But PLDA host contain 13 fixed PCIe interrupts. PLDA codes just process these > 13 interrupts. Microchip the event irq codes are quite different and can't be used by PLDA codes. > So add an event domain field support microchip and other vendor who just using the PLDA interrupts. > >> PLDA event domain ops instances will be implemented in later patch. > > > > Future patches don't exist, each commit log is a logical change > > that must make sense on its own, I will remove this sentence. > > > > Lorenzo > > OK, Thanks. > > >> Signed-off-by: Minda Chen <minda.chen@starfivetech.com> > >> Acked-by: Conor Dooley <conor.dooley@microchip.com> I am sorry folks but I still don't get what this patch is supposed to do. To start with it looks like a preparation patch (it does not have any net effect), that's not OK since it has to be merged with the patches that actually apply significant changes on top of this. Then I need an explanation of what the problem is and what is the code actually changing in irqdomain/irqchip specific terms. I can't merge it as-is because I don't understand what it changes and it is not clear by reading the commit log. Thanks, Lorenzo > >> --- > >> drivers/pci/controller/plda/pcie-microchip-host.c | 6 ++++-- > >> drivers/pci/controller/plda/pcie-plda.h | 1 + > >> 2 files changed, 5 insertions(+), 2 deletions(-) > >> > >> diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c > >> index f5e7da242aec..e6dcc572b65b 100644 > >> --- a/drivers/pci/controller/plda/pcie-microchip-host.c > >> +++ b/drivers/pci/controller/plda/pcie-microchip-host.c > >> @@ -821,13 +821,15 @@ static const struct plda_event_ops mc_event_ops = { > >> }; > >> > >> static const struct plda_event mc_event = { > >> + .domain_ops = &mc_event_domain_ops, > >> .event_ops = &mc_event_ops, > >> .request_event_irq = mc_request_event_irq, > >> .intx_event = EVENT_LOCAL_PM_MSI_INT_INTX, > >> .msi_event = EVENT_LOCAL_PM_MSI_INT_MSI, > >> }; > >> > >> -static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port) > >> +static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port, > >> + const struct irq_domain_ops *ops) > >> { > >> struct device *dev = port->dev; > >> struct device_node *node = dev->of_node; > >> @@ -941,7 +943,7 @@ static int plda_init_interrupts(struct platform_device *pdev, > >> return -EINVAL; > >> } > >> > >> - ret = plda_pcie_init_irq_domains(port); > >> + ret = plda_pcie_init_irq_domains(port, event->domain_ops); > >> if (ret) { > >> dev_err(dev, "failed creating IRQ domains\n"); > >> return ret; > >> diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h > >> index df1729095952..820ea16855b5 100644 > >> --- a/drivers/pci/controller/plda/pcie-plda.h > >> +++ b/drivers/pci/controller/plda/pcie-plda.h > >> @@ -129,6 +129,7 @@ struct plda_pcie_rp { > >> }; > >> > >> struct plda_event { > >> + const struct irq_domain_ops *domain_ops; > >> const struct plda_event_ops *event_ops; > >> int (*request_event_irq)(struct plda_pcie_rp *pcie, > >> int event_irq, int event); > >> -- > >> 2.17.1 > >>
On 2023/12/13 17:50, Lorenzo Pieralisi wrote: > On Wed, Dec 13, 2023 at 04:15:39PM +0800, Minda Chen wrote: >> >> >> On 2023/12/12 19:19, Lorenzo Pieralisi wrote: >> > On Wed, Dec 06, 2023 at 06:58:33PM +0800, Minda Chen wrote: >> >> For lack of an MSI controller, The new added PCIe interrupts have to be >> >> added to global interrupt event field. PolarFire event domain ops can not >> >> be re-used. >> > >> > I don't understand what this means, please explain and I will >> > add it to the commit log. >> > >> Sorry. >> Microchip Polarfire PCIe adds 11 PCIe interrupts to PCIe global event domain.(Total 28 PCIe interrupts) >> The microchip event domain and event irqchip will handle these interrupts. >> But PLDA host contain 13 fixed PCIe interrupts. PLDA codes just process these >> 13 interrupts. Microchip the event irq codes are quite different and can't be used by PLDA codes. >> So add an event domain field support microchip and other vendor who just using the PLDA interrupts. >> >> PLDA event domain ops instances will be implemented in later patch. >> > >> > Future patches don't exist, each commit log is a logical change >> > that must make sense on its own, I will remove this sentence. >> > >> > Lorenzo >> >> OK, Thanks. >> >> >> Signed-off-by: Minda Chen <minda.chen@starfivetech.com> >> >> Acked-by: Conor Dooley <conor.dooley@microchip.com> > > I am sorry folks but I still don't get what this patch is supposed > to do. To start with it looks like a preparation patch (it does > not have any net effect), that's not OK since it has to be merged > with the patches that actually apply significant changes on top > of this. > > Then I need an explanation of what the problem is and what is the > code actually changing in irqdomain/irqchip specific terms. > > I can't merge it as-is because I don't understand what it changes > and it is not clear by reading the commit log. > > Thanks, > Lorenzo > Actually I am not explain this clear. Sorry. I will changed this patch in next version and add more commit messages. The added parameter in struct plda_event is event IRQ chip instead of event IRQ domain ops. Actually the different configuration is irqchip. And I will add PLDA event irqchip and its functions to this patch, which can be compared with microchip's event irqchip functions. >> >> --- >> >> drivers/pci/controller/plda/pcie-microchip-host.c | 6 ++++-- >> >> drivers/pci/controller/plda/pcie-plda.h | 1 + >> >> 2 files changed, 5 insertions(+), 2 deletions(-) >> >> >> >> diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c >> >> index f5e7da242aec..e6dcc572b65b 100644 >> >> --- a/drivers/pci/controller/plda/pcie-microchip-host.c >> >> +++ b/drivers/pci/controller/plda/pcie-microchip-host.c >> >> @@ -821,13 +821,15 @@ static const struct plda_event_ops mc_event_ops = { >> >> }; >> >> >> >> static const struct plda_event mc_event = { >> >> + .domain_ops = &mc_event_domain_ops, >> >> .event_ops = &mc_event_ops, >> >> .request_event_irq = mc_request_event_irq, >> >> .intx_event = EVENT_LOCAL_PM_MSI_INT_INTX, >> >> .msi_event = EVENT_LOCAL_PM_MSI_INT_MSI, >> >> }; >> >> >> >> -static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port) >> >> +static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port, >> >> + const struct irq_domain_ops *ops) >> >> { >> >> struct device *dev = port->dev; >> >> struct device_node *node = dev->of_node; >> >> @@ -941,7 +943,7 @@ static int plda_init_interrupts(struct platform_device *pdev, >> >> return -EINVAL; >> >> } >> >> >> >> - ret = plda_pcie_init_irq_domains(port); >> >> + ret = plda_pcie_init_irq_domains(port, event->domain_ops); >> >> if (ret) { >> >> dev_err(dev, "failed creating IRQ domains\n"); >> >> return ret; >> >> diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h >> >> index df1729095952..820ea16855b5 100644 >> >> --- a/drivers/pci/controller/plda/pcie-plda.h >> >> +++ b/drivers/pci/controller/plda/pcie-plda.h >> >> @@ -129,6 +129,7 @@ struct plda_pcie_rp { >> >> }; >> >> >> >> struct plda_event { >> >> + const struct irq_domain_ops *domain_ops; >> >> const struct plda_event_ops *event_ops; >> >> int (*request_event_irq)(struct plda_pcie_rp *pcie, >> >> int event_irq, int event); >> >> -- >> >> 2.17.1 >> >>
diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c index f5e7da242aec..e6dcc572b65b 100644 --- a/drivers/pci/controller/plda/pcie-microchip-host.c +++ b/drivers/pci/controller/plda/pcie-microchip-host.c @@ -821,13 +821,15 @@ static const struct plda_event_ops mc_event_ops = { }; static const struct plda_event mc_event = { + .domain_ops = &mc_event_domain_ops, .event_ops = &mc_event_ops, .request_event_irq = mc_request_event_irq, .intx_event = EVENT_LOCAL_PM_MSI_INT_INTX, .msi_event = EVENT_LOCAL_PM_MSI_INT_MSI, }; -static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port) +static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port, + const struct irq_domain_ops *ops) { struct device *dev = port->dev; struct device_node *node = dev->of_node; @@ -941,7 +943,7 @@ static int plda_init_interrupts(struct platform_device *pdev, return -EINVAL; } - ret = plda_pcie_init_irq_domains(port); + ret = plda_pcie_init_irq_domains(port, event->domain_ops); if (ret) { dev_err(dev, "failed creating IRQ domains\n"); return ret; diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h index df1729095952..820ea16855b5 100644 --- a/drivers/pci/controller/plda/pcie-plda.h +++ b/drivers/pci/controller/plda/pcie-plda.h @@ -129,6 +129,7 @@ struct plda_pcie_rp { }; struct plda_event { + const struct irq_domain_ops *domain_ops; const struct plda_event_ops *event_ops; int (*request_event_irq)(struct plda_pcie_rp *pcie, int event_irq, int event);