From: Ryder Lee <ryder.lee@mediatek.com> To: Marc Zyngier <maz@kernel.org> Cc: <frank-w@public-files.de>, <linux-mediatek@lists.infradead.org>, "Thomas Gleixner" <tglx@linutronix.de>, Frank Wunderlich <linux@fw-web.de>, <linux-kernel@vger.kernel.org>, Matthias Brugger <matthias.bgg@gmail.com>, <linux-pci@vger.kernel.org>, Bjorn Helgaas <bhelgaas@google.com> Subject: Re: [PATCH] pci: mediatek: fix warning in msi.h Date: Mon, 2 Nov 2020 01:54:21 +0800 [thread overview] Message-ID: <1604253261.22363.0.camel@mtkswgap22> (raw) In-Reply-To: <87lfflti8q.wl-maz@kernel.org> On Sun, 2020-11-01 at 11:43 +0000, Marc Zyngier wrote: > On Sun, 01 Nov 2020 09:25:04 +0000, > Frank Wunderlich <frank-w@public-files.de> wrote: > > > > Am 31. Oktober 2020 22:49:14 MEZ schrieb Thomas Gleixner <tglx@linutronix.de>: > > > > >That's not a fix. It's just supressing the warning. > > > > Ok sorry > > > > >So it needs to be figured out why the domain association is not there. > > > > It looks like for mt7623 there is no msi domain setup (done via > > mtk_pcie_setup_irq callback + mtk_pcie_init_irq_domain) in mtk pcie > > driver. > > Does this mean that this SoC never handled MSIs the first place? Which > would explain the warning, as there is no MSI domain registered for > the device, and we end-up falling back to arch_setup_msi_irqs(). > > If this system truly is unable to handle MSIs, one potential > workaround would be to register a PCI-MSI domain that would always > fail its allocation with -ENOSPC. It is really ugly, but would keep > the horror localised. See the patchlet below, which I can't test. > > If this situation is more common than we expect, we may need something > in core code instead. > > M. > Yea, mt7623 (mtk_pcie_soc_v1) does not support MSI, so that's a way to handle it. @Frank, could you help to test it? Ryder > diff --git a/drivers/pci/controller/pcie-mediatek.c b/drivers/pci/controller/pcie-mediatek.c > index cf4c18f0c25a..52758b546d40 100644 > --- a/drivers/pci/controller/pcie-mediatek.c > +++ b/drivers/pci/controller/pcie-mediatek.c > @@ -151,6 +151,7 @@ struct mtk_pcie_port; > struct mtk_pcie_soc { > bool need_fix_class_id; > bool need_fix_device_id; > + bool no_msi; > unsigned int device_id; > struct pci_ops *ops; > int (*startup)(struct mtk_pcie_port *port); > @@ -435,6 +436,9 @@ static int mtk_pcie_irq_domain_alloc(struct irq_domain *domain, unsigned int vir > struct mtk_pcie_port *port = domain->host_data; > unsigned long bit; > > + if (port->pcie->soc->no_msi) > + return -ENOSPC; > + > WARN_ON(nr_irqs != 1); > mutex_lock(&port->lock); > > @@ -966,11 +970,13 @@ static int mtk_pcie_parse_port(struct mtk_pcie *pcie, > port->slot = slot; > port->pcie = pcie; > > - if (pcie->soc->setup_irq) { > + if (pcie->soc->setup_irq) > err = pcie->soc->setup_irq(port, node); > - if (err) > - return err; > - } > + else > + err = mtk_pcie_allocate_msi_domains(port); > + > + if (err) > + return err; > > INIT_LIST_HEAD(&port->list); > list_add_tail(&port->list, &pcie->ports); > @@ -1173,6 +1179,7 @@ static const struct dev_pm_ops mtk_pcie_pm_ops = { > }; > > static const struct mtk_pcie_soc mtk_pcie_soc_v1 = { > + .no_msi = true, > .ops = &mtk_pcie_ops, > .startup = mtk_pcie_startup_port, > }; >
WARNING: multiple messages have this Message-ID (diff)
From: Ryder Lee <ryder.lee@mediatek.com> To: Marc Zyngier <maz@kernel.org> Cc: frank-w@public-files.de, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>, linux-mediatek@lists.infradead.org, Matthias Brugger <matthias.bgg@gmail.com>, Thomas Gleixner <tglx@linutronix.de>, Frank Wunderlich <linux@fw-web.de> Subject: Re: [PATCH] pci: mediatek: fix warning in msi.h Date: Mon, 2 Nov 2020 01:54:21 +0800 [thread overview] Message-ID: <1604253261.22363.0.camel@mtkswgap22> (raw) In-Reply-To: <87lfflti8q.wl-maz@kernel.org> On Sun, 2020-11-01 at 11:43 +0000, Marc Zyngier wrote: > On Sun, 01 Nov 2020 09:25:04 +0000, > Frank Wunderlich <frank-w@public-files.de> wrote: > > > > Am 31. Oktober 2020 22:49:14 MEZ schrieb Thomas Gleixner <tglx@linutronix.de>: > > > > >That's not a fix. It's just supressing the warning. > > > > Ok sorry > > > > >So it needs to be figured out why the domain association is not there. > > > > It looks like for mt7623 there is no msi domain setup (done via > > mtk_pcie_setup_irq callback + mtk_pcie_init_irq_domain) in mtk pcie > > driver. > > Does this mean that this SoC never handled MSIs the first place? Which > would explain the warning, as there is no MSI domain registered for > the device, and we end-up falling back to arch_setup_msi_irqs(). > > If this system truly is unable to handle MSIs, one potential > workaround would be to register a PCI-MSI domain that would always > fail its allocation with -ENOSPC. It is really ugly, but would keep > the horror localised. See the patchlet below, which I can't test. > > If this situation is more common than we expect, we may need something > in core code instead. > > M. > Yea, mt7623 (mtk_pcie_soc_v1) does not support MSI, so that's a way to handle it. @Frank, could you help to test it? Ryder > diff --git a/drivers/pci/controller/pcie-mediatek.c b/drivers/pci/controller/pcie-mediatek.c > index cf4c18f0c25a..52758b546d40 100644 > --- a/drivers/pci/controller/pcie-mediatek.c > +++ b/drivers/pci/controller/pcie-mediatek.c > @@ -151,6 +151,7 @@ struct mtk_pcie_port; > struct mtk_pcie_soc { > bool need_fix_class_id; > bool need_fix_device_id; > + bool no_msi; > unsigned int device_id; > struct pci_ops *ops; > int (*startup)(struct mtk_pcie_port *port); > @@ -435,6 +436,9 @@ static int mtk_pcie_irq_domain_alloc(struct irq_domain *domain, unsigned int vir > struct mtk_pcie_port *port = domain->host_data; > unsigned long bit; > > + if (port->pcie->soc->no_msi) > + return -ENOSPC; > + > WARN_ON(nr_irqs != 1); > mutex_lock(&port->lock); > > @@ -966,11 +970,13 @@ static int mtk_pcie_parse_port(struct mtk_pcie *pcie, > port->slot = slot; > port->pcie = pcie; > > - if (pcie->soc->setup_irq) { > + if (pcie->soc->setup_irq) > err = pcie->soc->setup_irq(port, node); > - if (err) > - return err; > - } > + else > + err = mtk_pcie_allocate_msi_domains(port); > + > + if (err) > + return err; > > INIT_LIST_HEAD(&port->list); > list_add_tail(&port->list, &pcie->ports); > @@ -1173,6 +1179,7 @@ static const struct dev_pm_ops mtk_pcie_pm_ops = { > }; > > static const struct mtk_pcie_soc mtk_pcie_soc_v1 = { > + .no_msi = true, > .ops = &mtk_pcie_ops, > .startup = mtk_pcie_startup_port, > }; > _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek
next prev parent reply other threads:[~2020-11-01 17:54 UTC|newest] Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-10-31 14:03 [PATCH] pci: mediatek: fix warning in msi.h Frank Wunderlich 2020-10-31 14:03 ` Frank Wunderlich 2020-10-31 21:49 ` Thomas Gleixner 2020-10-31 21:49 ` Thomas Gleixner 2020-11-01 9:25 ` Frank Wunderlich 2020-11-01 9:25 ` Frank Wunderlich 2020-11-01 11:17 ` Thomas Gleixner 2020-11-01 11:17 ` Thomas Gleixner 2020-11-01 11:43 ` Marc Zyngier 2020-11-01 11:43 ` Marc Zyngier 2020-11-01 15:58 ` Aw: " Frank Wunderlich 2020-11-01 15:58 ` Frank Wunderlich 2020-11-01 17:54 ` Ryder Lee [this message] 2020-11-01 17:54 ` Ryder Lee 2020-11-01 18:27 ` Aw: " Frank Wunderlich 2020-11-01 18:27 ` Frank Wunderlich 2020-11-01 21:47 ` Marc Zyngier 2020-11-01 21:47 ` Marc Zyngier 2020-11-01 22:27 ` Thomas Gleixner 2020-11-01 22:27 ` Thomas Gleixner 2020-11-02 11:30 ` Marc Zyngier 2020-11-02 11:30 ` Marc Zyngier 2020-11-02 11:56 ` Aw: " Frank Wunderlich 2020-11-02 11:56 ` Frank Wunderlich 2020-11-02 13:58 ` Marc Zyngier 2020-11-02 13:58 ` Marc Zyngier 2020-11-02 14:27 ` Aw: " Frank Wunderlich 2020-11-02 14:27 ` Frank Wunderlich 2020-11-02 16:16 ` Aw: " Thomas Gleixner 2020-11-02 16:16 ` Thomas Gleixner 2020-11-02 22:18 ` Thomas Gleixner 2020-11-02 22:18 ` Thomas Gleixner 2020-11-03 9:54 ` Marc Zyngier 2020-11-03 9:54 ` Marc Zyngier 2020-11-03 10:16 ` Thomas Gleixner 2020-11-03 10:16 ` Thomas Gleixner 2020-11-03 10:29 ` Marc Zyngier 2020-11-03 10:29 ` Marc Zyngier 2020-11-04 16:49 ` Aw: " Frank Wunderlich 2020-11-04 16:49 ` Frank Wunderlich 2020-11-04 23:14 ` Thomas Gleixner 2020-11-04 23:14 ` Thomas Gleixner 2020-11-05 9:20 ` Marc Zyngier 2020-11-05 9:20 ` Marc Zyngier 2020-11-05 13:59 ` Aw: " Frank Wunderlich 2020-11-05 13:59 ` Frank Wunderlich 2020-11-05 23:00 ` Aw: " Thomas Gleixner 2020-11-05 23:00 ` Thomas Gleixner 2020-11-06 9:43 ` Marc Zyngier 2020-11-06 9:43 ` Marc Zyngier 2020-11-21 16:12 ` Aw: " Frank Wunderlich 2020-11-21 16:12 ` Frank Wunderlich 2021-01-03 13:08 ` Frank Wunderlich 2021-01-03 13:08 ` Frank Wunderlich 2021-02-02 16:21 ` Frank Wunderlich 2021-02-02 16:21 ` Frank Wunderlich 2020-11-03 10:31 ` Aw: " Thomas Gleixner 2020-11-03 10:31 ` Thomas Gleixner 2020-11-03 11:41 ` Marc Zyngier 2020-11-03 11:41 ` Marc Zyngier 2020-11-03 14:23 ` Thomas Gleixner 2020-11-03 14:23 ` Thomas Gleixner
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1604253261.22363.0.camel@mtkswgap22 \ --to=ryder.lee@mediatek.com \ --cc=bhelgaas@google.com \ --cc=frank-w@public-files.de \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mediatek@lists.infradead.org \ --cc=linux-pci@vger.kernel.org \ --cc=linux@fw-web.de \ --cc=matthias.bgg@gmail.com \ --cc=maz@kernel.org \ --cc=tglx@linutronix.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.