From: Bjorn Helgaas <helgaas@kernel.org>
To: Lizhi Hou <lizhi.hou@amd.com>
Cc: linux-pci@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, robh@kernel.org, max.zhen@amd.com,
sonal.santan@amd.com, stefano.stabellini@xilinx.com
Subject: Re: [PATCH V9 2/5] PCI: Create device tree node for selected devices
Date: Mon, 26 Jun 2023 13:11:55 -0500 [thread overview]
Message-ID: <20230626181155.GA250405@bhelgaas> (raw)
In-Reply-To: <af9b6bb3-a98d-4fb6-b51e-b48bca61dada@amd.com>
On Mon, Jun 26, 2023 at 10:34:05AM -0700, Lizhi Hou wrote:
> On 6/21/23 13:22, Bjorn Helgaas wrote:
> Added an of_pci_make_dev_node() interface that can be used to create
> device tree node for PCI devices.
>
> Added a PCI_DYNAMIC_OF_NODES config option. When the option is turned
> on,
> the kernel will generate device tree nodes for PCI bridges
> unconditionally.
>
> Initially, the basic properties are added for the dynamically generated
> device tree nodes which include #address-cells, #size-cells,
> device_type,
> compatible, ranges, reg.
s/Added/Add/ (twice, mentioned before).
The commit log should say what the *patch* does, not what *you* did.
> > > @@ -501,8 +501,10 @@ static int of_irq_parse_pci(const struct pci_dev *pdev, struct of_phandle_args *
> > > * to rely on this function (you ship a firmware that doesn't
> > > * create device nodes for all PCI devices).
> > > */
> > > - if (ppnode)
> > > + if (ppnode && of_property_present(ppnode, "interrupt-map"))
> >
> > Maybe this deserves a comment? The connection between "interrupt-map"
> > and the rest of this patch isn't obvious to me.
> >
> > Also, it looks like this happens for *everybody*, regardless of
> > PCI_DYNAMIC_OF_NODES, which seems a little suspect. If it's an
> > unrelated bug fix it should be a different patch.
>
> This is not a bug fix. The check will distinguish between device tree nodes
> automatically created for pci bridges by this patch with those created by a
> DT based system. With this patch, device tree nodes are created for pci
> bridges, thus ppnode here will be non-zero and we will break out of the
> loop. In order to still use pci_swizzle_interrupt_pin(), checking
> “interrupt-map” for ppnode is added here.
>
> After thinking about this more, using “interrupt-map” property may not be
> correct for the cases where ppnode is not dynamically generated and it does
> not have “interrupt-map”. So, I would introduce a new property “dynamic” for
> pci bridge nodes generated dynamically. And change the code to: if (ppnode
> && of_property_present(ppnode, "dynamic")).
>
> Does this make sense?
Makes a lot more sense to me than relying on some unrelated and
undocumented property. Probably still would benefit from an #ifdef.
Rob might have an opinion on whether "dynamic" makes sense from a
DT perspective.
Bjorn
next prev parent reply other threads:[~2023-06-26 18:12 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-21 17:34 [PATCH V9 0/5] Generate device tree node for pci devices Lizhi Hou
2023-06-21 17:34 ` [PATCH V9 1/5] of: dynamic: Add interfaces for creating device node dynamically Lizhi Hou
2023-06-21 17:34 ` [PATCH V9 2/5] PCI: Create device tree node for selected devices Lizhi Hou
2023-06-21 20:22 ` Bjorn Helgaas
2023-06-21 20:27 ` Bjorn Helgaas
2023-06-26 17:34 ` Lizhi Hou
2023-06-26 18:11 ` Bjorn Helgaas [this message]
2023-06-21 17:34 ` [PATCH V9 3/5] PCI: Add PCI quirks to generate device tree node for Xilinx Alveo U50 Lizhi Hou
2023-06-21 20:25 ` Bjorn Helgaas
2023-06-21 17:34 ` [PATCH V9 4/5] of: overlay: Extend of_overlay_fdt_apply() to specify the target node Lizhi Hou
2023-06-21 17:34 ` [PATCH V9 5/5] of: unittest: Add pci_dt_testdrv pci driver Lizhi Hou
2023-06-22 10:27 ` Herve Codina
2023-06-26 16:51 ` Rob Herring
2023-06-28 18:14 ` Lizhi Hou
2023-06-21 20:23 ` [PATCH V9 0/5] Generate device tree node for pci devices Bjorn Helgaas
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=20230626181155.GA250405@bhelgaas \
--to=helgaas@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lizhi.hou@amd.com \
--cc=max.zhen@amd.com \
--cc=robh@kernel.org \
--cc=sonal.santan@amd.com \
--cc=stefano.stabellini@xilinx.com \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox