From: Jeffy Chen <jeffy.chen@rock-chips.com>
Currently we are considering the first irq as the PCI interrupt pin,
but a PCI device may have multiple interrupts(e.g. PCIe WAKE# pin).
Only parse the PCI interrupt pin when the irq is unnamed or named as
"pci".
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Manikanta Maddireddy <mmaddireddy@nvidia.com>
---
Changes in v14:
Address Rob's comment on using of_property_match_string().
Changes in v13: None
Changes in v12: None
Changes in v11:
Address Brian's comments.
Changes in v10: None
Changes in v9: None
Changes in v8: None
Changes in v7: None
Changes in v6: None
Changes in v5: None
Changes in v3: None
Changes in v2: None
drivers/pci/of.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/of.c b/drivers/pci/of.c
index 196834ed44fe..ff897c40ed71 100644
--- a/drivers/pci/of.c
+++ b/drivers/pci/of.c
@@ -429,9 +429,17 @@ static int of_irq_parse_pci(const struct pci_dev *pdev, struct of_phandle_args *
*/
dn = pci_device_to_OF_node(pdev);
if (dn) {
- rc = of_irq_parse_one(dn, 0, out_irq);
- if (!rc)
- return rc;
+ int index = 0;
+
+ index = of_property_match_string(dn, "interrupt-names", "pci");
+ if (index == -EINVAL) /* Property doesn't exist */
+ index = 0;
+
+ if (index >= 0) {
+ rc = of_irq_parse_one(dn, index, out_irq);
+ if (!rc)
+ return rc;
+ }
}
/*
--
2.25.1
On Wed, Feb 08, 2023 at 04:46:42PM +0530, Manikanta Maddireddy wrote: > From: Jeffy Chen <jeffy.chen@rock-chips.com> > > Currently we are considering the first irq as the PCI interrupt pin, > but a PCI device may have multiple interrupts(e.g. PCIe WAKE# pin). > > Only parse the PCI interrupt pin when the irq is unnamed or named as > "pci". > > Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> > Signed-off-by: Manikanta Maddireddy <mmaddireddy@nvidia.com> > --- > > Changes in v14: > Address Rob's comment on using of_property_match_string(). > > Changes in v13: None > Changes in v12: None > Changes in v11: > Address Brian's comments. > > Changes in v10: None > Changes in v9: None > Changes in v8: None > Changes in v7: None > Changes in v6: None > Changes in v5: None > Changes in v3: None > Changes in v2: None > > drivers/pci/of.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/drivers/pci/of.c b/drivers/pci/of.c > index 196834ed44fe..ff897c40ed71 100644 > --- a/drivers/pci/of.c > +++ b/drivers/pci/of.c > @@ -429,9 +429,17 @@ static int of_irq_parse_pci(const struct pci_dev *pdev, struct of_phandle_args * > */ > dn = pci_device_to_OF_node(pdev); > if (dn) { > - rc = of_irq_parse_one(dn, 0, out_irq); > - if (!rc) > - return rc; > + int index = 0; No need to initialize to 0 here since you're assigning to it immediately below. Otherwise, looks good, so with that initialization dropped, this is: Reviewed-by: Thierry Reding <treding@nvidia.com>
On 2/8/2023 5:14 PM, Thierry Reding wrote: > On Wed, Feb 08, 2023 at 04:46:42PM +0530, Manikanta Maddireddy wrote: >> From: Jeffy Chen <jeffy.chen@rock-chips.com> >> >> Currently we are considering the first irq as the PCI interrupt pin, >> but a PCI device may have multiple interrupts(e.g. PCIe WAKE# pin). >> >> Only parse the PCI interrupt pin when the irq is unnamed or named as >> "pci". >> >> Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> >> Signed-off-by: Manikanta Maddireddy <mmaddireddy@nvidia.com> >> --- >> >> Changes in v14: >> Address Rob's comment on using of_property_match_string(). >> >> Changes in v13: None >> Changes in v12: None >> Changes in v11: >> Address Brian's comments. >> >> Changes in v10: None >> Changes in v9: None >> Changes in v8: None >> Changes in v7: None >> Changes in v6: None >> Changes in v5: None >> Changes in v3: None >> Changes in v2: None >> >> drivers/pci/of.c | 14 +++++++++++--- >> 1 file changed, 11 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/pci/of.c b/drivers/pci/of.c >> index 196834ed44fe..ff897c40ed71 100644 >> --- a/drivers/pci/of.c >> +++ b/drivers/pci/of.c >> @@ -429,9 +429,17 @@ static int of_irq_parse_pci(const struct pci_dev *pdev, struct of_phandle_args * >> */ >> dn = pci_device_to_OF_node(pdev); >> if (dn) { >> - rc = of_irq_parse_one(dn, 0, out_irq); >> - if (!rc) >> - return rc; >> + int index = 0; > No need to initialize to 0 here since you're assigning to it immediately > below. > > Otherwise, looks good, so with that initialization dropped, this is: > > Reviewed-by: Thierry Reding <treding@nvidia.com> Ack, I will take care of it next version. Manikanta
© 2016 - 2025 Red Hat, Inc.