From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
To: Qiang Yu <qiang.yu@oss.qualcomm.com>
Cc: Bjorn Andersson <andersson@kernel.org>,
Pankaj Patil <pankaj.patil@oss.qualcomm.com>,
Konrad Dybcio <konradybcio@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>,
Jyothi Kumar Seerapu <jyothi.seerapu@oss.qualcomm.com>,
Maulik Shah <maulik.shah@oss.qualcomm.com>,
Sibi Sankar <sibi.sankar@oss.qualcomm.com>,
Taniya Das <taniya.das@oss.qualcomm.com>,
Kamal Wadhwa <kamal.wadhwa@oss.qualcomm.com>,
Manaf Meethalavalappu Pallikunhi
<manaf.pallikunhi@oss.qualcomm.com>,
Jishnu Prakash <jishnu.prakash@oss.qualcomm.com>,
Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
Abel Vesa <abelvesa@kernel.org>
Subject: Re: [PATCH v6 0/4] arm64: dts: qcom: Introduce Glymur SoC dtsi and Glymur CRD dts
Date: Tue, 3 Feb 2026 10:50:26 +0100 [thread overview]
Message-ID: <7a79bcc2-42d5-4a4a-ab7a-ab02b2605cfa@oss.qualcomm.com> (raw)
In-Reply-To: <aYB6pS4EQVP4w0O9@hu-qianyu-lv.qualcomm.com>
On 2/2/26 11:21 AM, Qiang Yu wrote:
> On Mon, Feb 02, 2026 at 10:49:10AM +0100, Konrad Dybcio wrote:
>> On 2/2/26 6:21 AM, Qiang Yu wrote:
>>> On Thu, Jan 29, 2026 at 01:07:08PM +0100, Konrad Dybcio wrote:
>>>> On 1/29/26 1:05 PM, Qiang Yu wrote:
>>>>> On Wed, Jan 28, 2026 at 07:21:04PM -0600, Bjorn Andersson wrote:
>>>>>> On Thu, Jan 22, 2026 at 08:53:57PM +0530, Pankaj Patil wrote:
>>>>>>> Introduce dt-bindings and initial device tree support for Glymur,
>>>>>>> Qualcomm's next-generation compute SoC and it's associated
>>>>>>> Compute Reference Device (CRD) platform.
>>>>>>>
>>>>>>> https://www.qualcomm.com/products/mobile/snapdragon/laptops-and-tablets/snapdragon-x2-elite
>>>>>>> https://www.qualcomm.com/news/releases/2025/09/new-snapdragon-x2-elite-extreme-and-snapdragon-x2-elite-are-the-
>>>>>>>
>>>>>>> The base support enables booting to shell with rootfs on NVMe,
>>>>>>> demonstrating functionality for PCIe and NVMe subsystems.
>>>>>>> DCVS is also enabled, allowing dynamic frequency scaling for the CPUs.
>>>>>>> TSENS (Thermal Sensors) enabled for monitoring SoC temperature and
>>>>>>> thermal management. The platform is capable of booting kernel at EL2
>>>>>>> with kvm-unit tests performed on it for sanity.
>>>>>>>
>>>>>>> Added dtsi files for the PMIC's enabled PMH0101, PMK8850, PMCX0102,
>>>>>>> SMB2370, PMH0104, PMH0110 along with temp-alarm and GPIO nodeS.
>>>>>>>
>>>>>>> For CPU compatible naming, there is one discussion which is not specific
>>>>>>> to Glymur, Kaanapali and Glymur use the same Oryon cores.
>>>>>>> https://lore.kernel.org/all/20251119-oryon-binding-v1-1-f79a101b0391@oss.qualcomm.com/
>>>>>>> We've kept the "qcom,oryon" compatible
>>>>>>>
>>>>>>> Features enabled in this patchset:
>>>>>>> 1. NVMe storage support
>>>>>>> 2. PCIe controller and PCIe PHY
>>>>>>> 3. RPMH Regulators
>>>>>>> 4. Clocks and reset controllers - GCC, TCSRCC, DISPCC, RPMHCC
>>>>>>> 5. Interrupt controller
>>>>>>> 6. TLMM (Top-Level Mode Multiplexer)
>>>>>>> 7. QUP Block
>>>>>>> 8. Reserved memory regions
>>>>>>> 9. PMIC support with regulators
>>>>>>> 10. CPU Power Domains
>>>>>>> 11. TSENS (Thermal Sensors)
>>>>>>> 12. DCVS: CPU DCVS with scmi perf protocol
>>>>>>>
>>>>>>> Dependencies:
>>>>>>>
>>>>>>> dt-bindings:
>>>>>>> 1. https://lore.kernel.org/all/20260121-glymur-pmic-mfd-v1-1-2aab4f21e79c@oss.qualcomm.com/
>>>>>>> 2. https://lore.kernel.org/all/20251215-knp-pmic-leds-v3-2-5e583f68b0e5@oss.qualcomm.com/
>>>>>>> 3. https://lore.kernel.org/all/20260121110828.2267061-1-pankaj.patil@oss.qualcomm.com/
>>>>>>> 4. https://lore.kernel.org/all/20260111155234.5829-1-pankaj.patil@oss.qualcomm.com/
>>>>>>>
>>>>>>> Linux-next based tree with Glymur patches is available at:
>>>>>>> https://git.codelinaro.org/clo/linux-kernel/kernel-qcom/-/tree/b4/v6_glymur_introduction
>>>>>>>
>>>>>>
>>>>>> FWIW, I applied these patches onto next-20260128 to see if things has
>>>>>> improved since Rob's report and I get:
>>>>>>
>>>>>> $ make qcom/glymur-crd.dtb CHECK_DTBS=1
>>>>>> DTC [C] arch/arm64/boot/dts/qcom/glymur-crd.dtb
>>>>>> qcom/glymur-crd.dtb: dma-controller@800000 (qcom,glymur-gpi-dma): interrupts: [[0, 588, 4], [0, 589, 4], [0, 590, 4], [0, 591, 4], [0, 592, 4], [0, 593, 4], [0, 594, 4], [0, 595, 4], [0, 596, 4], [0, 597, 4], [0, 598, 4], [0, 599, 4], [2, 129, 4], [2, 130, 4], [2, 131, 4], [2, 132, 4]] is too long
>>>>>> from schema $id: http://devicetree.org/schemas/dma/qcom,gpi.yaml#
>>>>>> qcom/glymur-crd.dtb: dma-controller@a00000 (qcom,glymur-gpi-dma): interrupts: [[0, 279, 4], [0, 280, 4], [0, 281, 4], [0, 282, 4], [0, 283, 4], [0, 284, 4], [0, 293, 4], [0, 294, 4], [0, 295, 4], [0, 296, 4], [0, 297, 4], [0, 298, 4], [2, 124, 4], [2, 125, 4], [2, 126, 4], [2, 127, 4]] is too long
>>>>>> from schema $id: http://devicetree.org/schemas/dma/qcom,gpi.yaml#
>>>>>> qcom/glymur-crd.dtb: dma-controller@b00000 (qcom,glymur-gpi-dma): interrupts: [[2, 76, 4], [2, 77, 4], [2, 78, 4], [2, 79, 4], [2, 80, 4], [2, 81, 4], [2, 82, 4], [2, 83, 4], [2, 84, 4], [2, 85, 4], [2, 86, 4], [2, 87, 4], [2, 88, 4], [2, 89, 4], [2, 90, 4], [2, 91, 4]] is too long
>>>>>> from schema $id: http://devicetree.org/schemas/dma/qcom,gpi.yaml#
>>>>>> qcom/glymur-crd.dtb: pmic@1 (qcom,pmh0101): led-controller@ee00:compatible:0: 'qcom,pmh0101-flash-led' is not one of ['qcom,pm6150l-flash-led', 'qcom,pm660l-flash-led', 'qcom,pm7550-flash-led', 'qcom,pm8150c-flash-led', 'qcom,pm8150l-flash-led', 'qcom,pm8350c-flash-led', 'qcom,pm8550-flash-led', 'qcom,pmi8998-flash-led']
>>>>>> from schema $id: http://devicetree.org/schemas/mfd/qcom,spmi-pmic.yaml#
>>>>>> qcom/glymur-crd.dtb: pmic@1 (qcom,pmh0101): pwm:compatible: 'oneOf' conditional failed, one must be fixed:
>>>>>> ['qcom,pmh0101-pwm', 'qcom,pm8350c-pwm'] is too long
>>>>>> 'qcom,pmh0101-pwm' is not one of ['qcom,pm660l-lpg', 'qcom,pm8150b-lpg', 'qcom,pm8150l-lpg', 'qcom,pm8350c-pwm', 'qcom,pm8916-pwm', 'qcom,pm8941-lpg', 'qcom,pm8994-lpg', 'qcom,pmc8180c-lpg', 'qcom,pmi632-lpg', 'qcom,pmi8950-pwm', 'qcom,pmi8994-lpg', 'qcom,pmi8998-lpg', 'qcom,pmk8550-pwm']
>>>>>> 'qcom,pmh0101-pwm' is not one of ['qcom,pm6150l-lpg']
>>>>>> 'qcom,pmh0101-pwm' is not one of ['qcom,pm8550-pwm']
>>>>>> 'qcom,pmh0101-pwm' is not one of ['qcom,pm8937-pwm']
>>>>>> 'qcom,pm8150l-lpg' was expected
>>>>>> 'qcom,pm8916-pwm' was expected
>>>>>> from schema $id: http://devicetree.org/schemas/mfd/qcom,spmi-pmic.yaml#
>>>>>> qcom/glymur-crd.dtb: led-controller@ee00 (qcom,pmh0101-flash-led): compatible:0: 'qcom,pmh0101-flash-led' is not one of ['qcom,pm6150l-flash-led', 'qcom,pm660l-flash-led', 'qcom,pm7550-flash-led', 'qcom,pm8150c-flash-led', 'qcom,pm8150l-flash-led', 'qcom,pm8350c-flash-led', 'qcom,pm8550-flash-led', 'qcom,pmi8998-flash-led']
>>>>>> from schema $id: http://devicetree.org/schemas/leds/qcom,spmi-flash-led.yaml#
>>>>>> qcom/glymur-crd.dtb: /soc@0/arbiter@c400000/spmi@c426000/pmic@1/led-controller@ee00: failed to match any schema with compatible: ['qcom,pmh0101-flash-led', 'qcom,spmi-flash-led']
>>>>>> qcom/glymur-crd.dtb: pwm (qcom,pmh0101-pwm): compatible: 'oneOf' conditional failed, one must be fixed:
>>>>>> ['qcom,pmh0101-pwm', 'qcom,pm8350c-pwm'] is too long
>>>>>> 'qcom,pmh0101-pwm' is not one of ['qcom,pm660l-lpg', 'qcom,pm8150b-lpg', 'qcom,pm8150l-lpg', 'qcom,pm8350c-pwm', 'qcom,pm8916-pwm', 'qcom,pm8941-lpg', 'qcom,pm8994-lpg', 'qcom,pmc8180c-lpg', 'qcom,pmi632-lpg', 'qcom,pmi8950-pwm', 'qcom,pmi8994-lpg', 'qcom,pmi8998-lpg', 'qcom,pmk8550-pwm']
>>>>>> 'qcom,pmh0101-pwm' is not one of ['qcom,pm6150l-lpg']
>>>>>> 'qcom,pmh0101-pwm' is not one of ['qcom,pm8550-pwm']
>>>>>> 'qcom,pmh0101-pwm' is not one of ['qcom,pm8937-pwm']
>>>>>> 'qcom,pm8150l-lpg' was expected
>>>>>> 'qcom,pm8916-pwm' was expected
>>>>>> from schema $id: http://devicetree.org/schemas/leds/leds-qcom-lpg.yaml#
>>>>>> qcom/glymur-crd.dtb: /soc@0/arbiter@c400000/spmi@c426000/pmic@1/pwm: failed to match any schema with compatible: ['qcom,pmh0101-pwm', 'qcom,pm8350c-pwm']
>>>>>>
>>>>>> So, we're still missing a few dependencies.
>>>>>>
>>>>>>
>>>>>> Booting the system I get a ton of errors from PCIe in the kernel log:
>>>>>>
>>>>>> debugfs: 'opp:5000000' already exists in 'soc@0-1c00000.pci'
>>>>>>
>>>>>> # dmesg | grep -E 'debugfs: .+ already exists' |wc -l
>>>>>> 508
>>>>>>
>>>>>> The system does eventually boot, and I was happy to see that we do end
>>>>>> up finding the PCIe devices after all.
>>>>>>
>>>>> I enabled dynamic debug logs and observed that each PCIe platform device
>>>>> probe was deferred approximately 10 times. The probe deferrals resulted in
>>>>> additional OPP debugfs warnings being printed.
>>>>>
>>>>> The PCIe platform device probe was deferred because the PHY driver was not
>>>>> ready - either because the PHY driver was not yet loaded, or because the
>>>>> PHY driver's own probe was also deferred due to its dependency (e.g.,
>>>>> 1fd5000.clock-controller) not being ready. This is normal behavior,
>>>>> correct? I also observed that other driver probes were deferred.
>>>>>
>>>>> But I'm not sure why there are more than 300 times probe deferrals on
>>>>> your setup.
>>>>
>>>> I think Bjorn is trying to say that the driver is wrong, because it
>>>> effectively seems to call devm_pm_opp_of_add_table repeatedly
>>>>
>>> Okay, to avoid PCIe driver probe deferrals and the resulting increased OPP
>>> debugfs warnings caused by these deferrals, we plan to move the PHY
>>> properties back from the root port node to the controller device tree
>>> node.
>>
>> Would (roughly) this solve your problems without messing with the DT?
>
> This change cannot fix the OPP warning. The warning occurs because the OPP
> subsystem creates debugfs nodes using "op-hz" as the name, which is not
> unique for PCIe OPP tables. Mani posted a patch to fix this issue:
> https://lore.kernel.org/all/20260130071940.6949-1-manivannan.sadhasivam@oss.qualcomm.com/
>
> Our goal is to prevent probe deferrals from occurring in our driver.
Right, I would assume that was previously aided by devlink taking
into account 'phys', but since they're no longer part of the PCIe
device node directly, that logic fails.
Still, modifying the DT to fit Linux behavior generally indicated that
Linux is not super good at doing that particular thing.. In this
instance I think we should extend drivers/of/property.c to maybe check
for supplier dependencies under subnodes of nodes that have
device_type="pci"?
Konrad
next prev parent reply other threads:[~2026-02-03 9:50 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-22 15:23 Pankaj Patil
2026-01-22 15:23 ` [PATCH v6 1/4] dt-bindings: arm: qcom: Document Glymur SoC and board Pankaj Patil
2026-01-22 15:23 ` [PATCH v6 2/4] arm64: defconfig: Enable Glymur configs for boot to shell Pankaj Patil
2026-01-22 15:24 ` [PATCH v6 3/4] arm64: dts: qcom: Introduce Glymur base dtsi Pankaj Patil
2026-01-22 20:45 ` Konrad Dybcio
2026-01-30 21:44 ` Abel Vesa
2026-01-30 22:00 ` Abel Vesa
2026-02-02 4:38 ` Pankaj Patil
2026-02-04 1:14 ` Dmitry Baryshkov
2026-01-22 15:24 ` [PATCH v6 4/4] arm64: dts: qcom: glymur: Enable Glymur CRD board support Pankaj Patil
2026-01-22 20:42 ` Konrad Dybcio
2026-02-02 5:04 ` Qiang Yu
2026-01-22 18:07 ` [PATCH v6 0/4] arm64: dts: qcom: Introduce Glymur SoC dtsi and Glymur CRD dts Rob Herring
2026-01-22 20:40 ` Konrad Dybcio
2026-01-22 23:00 ` Rob Herring
2026-01-29 1:21 ` Bjorn Andersson
2026-01-29 5:18 ` Qiang Yu
2026-01-29 6:30 ` Pankaj Patil
2026-01-29 12:05 ` Qiang Yu
2026-01-29 12:07 ` Konrad Dybcio
2026-01-29 16:32 ` Manivannan Sadhasivam
2026-01-30 9:27 ` Konrad Dybcio
2026-02-02 5:21 ` Qiang Yu
2026-02-02 9:49 ` Konrad Dybcio
2026-02-02 10:21 ` Qiang Yu
2026-02-03 9:50 ` Konrad Dybcio [this message]
2026-02-04 12:54 ` Manivannan Sadhasivam
2026-01-29 16:29 ` Manivannan Sadhasivam
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=7a79bcc2-42d5-4a4a-ab7a-ab02b2605cfa@oss.qualcomm.com \
--to=konrad.dybcio@oss.qualcomm.com \
--cc=abelvesa@kernel.org \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=jishnu.prakash@oss.qualcomm.com \
--cc=jyothi.seerapu@oss.qualcomm.com \
--cc=kamal.wadhwa@oss.qualcomm.com \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=krzysztof.kozlowski@oss.qualcomm.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=manaf.pallikunhi@oss.qualcomm.com \
--cc=maulik.shah@oss.qualcomm.com \
--cc=pankaj.patil@oss.qualcomm.com \
--cc=qiang.yu@oss.qualcomm.com \
--cc=robh@kernel.org \
--cc=sibi.sankar@oss.qualcomm.com \
--cc=taniya.das@oss.qualcomm.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
all inboxes | Powered by JetHome®