From: Alex Elder <elder@riscstar.com>
To: sashiko-reviews@lists.linux.dev
Cc: linux-pci@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org,
devicetree@vger.kernel.org
Subject: Re: [PATCH v4 2/3] misc: tc9564: introduce base PCI driver
Date: Fri, 18 Sep 2026 11:02:30 -0500 [thread overview]
Message-ID: <0762c249-ceed-4b06-8a39-990d92a97ebf@riscstar.com> (raw)
In-Reply-To: <20260918154230.E8C2B1F000FF@smtp.kernel.org>
On 9/18/26 10:42 AM, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
> - [High] pci: of_pci_make_dev_node quirk fails to update ranges of existing DT node
This series depends on another series that affects the
code that is the subject of the above report.
https://lore.kernel.org/sashiko-reviews/ed783639-05ed-4ad9-b881-d1689a8b2418@riscstar.com/
> - [Medium] kconfig: TC9564_PCI selects PCI_DYNAMIC_OF_NODES without inheriting OF_IRQ dependency
I attempted to include this but wound up with a report of a circular
dependency when configuring the kernel.
A bit more below.
> --
>
> commit d693efad7a099f6326c4b836ade779f0f07366be
> Author: Alex Elder <elder@riscstar.com>
>
> misc: tc9564: introduce base PCI driver
>
> The Toshiba TC9564 is small and highly-specialized SoC that implements
> a PCIe switch as well as an Ethernet AVB/TSN bridge. Create a new PCI
> driver under drivers/misc that binds with the embedded PCI endpoint
> functions within the TC9564 SoC. Use the PCI quirks mechanism to update
> endpoint device nodes dynamically.
>
>> diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
>> index 7364931dad3a1..9c5b1e9d672e8 100644
>> --- a/drivers/misc/Kconfig
>> +++ b/drivers/misc/Kconfig
>
> [ ... ]
>
>> @@ -568,6 +568,21 @@ config MCHP_LAN966X_PCI
>> - lan966x-miim (MDIO_MSCC_MIIM)
>> - lan966x-switch (LAN966X_SWITCH)
>>
>> +config TC9564_PCI
>> + tristate "Toshiba TC9564 PCI function support"
>> + depends on OF
>> + depends on PCI
>> + select PCI_DYNAMIC_OF_NODES
>
> [Severity: Medium]
> Can this cause a Kconfig unmet direct dependency warning?
>
> PCI_DYNAMIC_OF_NODES explicitly defines 'depends on OF_IRQ' in
> drivers/pci/Kconfig. Selecting it here without inheriting its dependencies
> could cause unmet direct dependency warnings and potential build failures on
> architectures lacking OF_IRQ support.
I attempted to include "depends on OF_IRQ", but that led to
a circular dependency, so I simply left it out.
>
>> + select PCI_QUIRKS
>> + default m
>> + help
>
> [ ... ]
>
>> diff --git a/drivers/misc/tc9564-pci.c b/drivers/misc/tc9564-pci.c
>> index 0000000000000..e4d00dfecfca9 100644
>> --- /dev/null
>> +++ b/drivers/misc/tc9564-pci.c
>
> [ ... ]
>
>> + /* Scan for pci-ep-bus (simple-bus) nodes and probe their sub-devices */
>> + ret = of_platform_default_populate(np, NULL, dev);
>
> [ ... ]
>
>> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
>> index de9bbccda21fd..54e310c4153df 100644
>> --- a/drivers/pci/quirks.c
>> +++ b/drivers/pci/quirks.c
>> @@ -6391,6 +6391,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_XILINX, 0x5020, of_pci_make_dev_node);
>> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_XILINX, 0x5021, of_pci_make_dev_node);
>> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_REDHAT, 0x0005, of_pci_make_dev_node);
>> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_EFAR, 0x9660, of_pci_make_dev_node);
>> +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_TOSHIBA, 0x0220, of_pci_make_dev_node);
>
> [Severity: High]
> Will this quirk successfully update the ranges property of the existing
> devicetree node?
>
> Because the tc9564 device has a static device tree node, pci_set_of_node()
> attaches the static node to pdev->dev.of_node before this fixup runs.
>
> Inside of_pci_make_dev_node(), the early check for an existing node:
>
> if (pci_device_to_OF_node(pdev))
> return;
>
> evaluates to true, causing it to return immediately. Consequently,
> of_pci_prop_ranges() is never executed.
The series mentioned above changes this exact code so that instead
of returning immediately, it first checks to see if a non-bridge node
has a pci-ep-bus sub-node. If it does, it generates a new ranges
property for the endpoint and updates the devicetree to use it.
-Alex
>
> This means endpoint platform devices populated by of_platform_default_populate()
> in tc9564_function_probe() will fail to map their MMIO addresses correctly,
> translating addresses using the placeholder static 'ranges' property rather
> than dynamically assigned PCI BAR addresses.
>
next prev parent reply other threads:[~2026-09-18 16:02 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-18 15:26 [PATCH v4 0/3] PCI: introduce TC9564 misc driver Alex Elder
2026-09-18 15:26 ` [PATCH v4 1/3] dt-bindings: misc: introduce pci1179,0220.yaml Alex Elder
2026-09-18 15:31 ` sashiko-bot
2026-09-28 19:40 ` Rob Herring (Arm)
2026-09-18 15:26 ` [PATCH v4 2/3] misc: tc9564: introduce base PCI driver Alex Elder
2026-09-18 15:42 ` sashiko-bot
2026-09-18 16:02 ` Alex Elder [this message]
2026-09-18 17:30 ` Bjorn Helgaas
2026-09-18 17:49 ` Alex Elder
2026-09-24 15:56 ` Herve Codina
2026-09-25 2:15 ` Alex Elder
2026-09-18 15:26 ` [PATCH v4 3/3] arm64: dts: qcom: qcs6490-rb3gen2: add endpoint buses Alex Elder
2026-09-18 15:39 ` sashiko-bot
2026-09-18 16:02 ` Alex Elder
2026-10-01 12:06 ` Greg KH
2026-10-01 19:19 ` Alex Elder
2026-10-02 6:16 ` Greg KH
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=0762c249-ceed-4b06-8a39-990d92a97ebf@riscstar.com \
--to=elder@riscstar.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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