mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Val Packett <val@packett.cool>
To: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>,
	Bjorn Andersson <andersson@kernel.org>
Cc: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
	Will Deacon <will@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	Joerg Roedel <joro@8bytes.org>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Konrad Dybcio <konradybcio@kernel.org>,
	Rob Clark <robin.clark@oss.qualcomm.com>,
	linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH v3 3/6] arm64: dts: qcom: kodiak: Add GEM_NOC interconnect for adreno SMMU
Date: Fri, 13 Nov 2026 15:46:40 -0300	[thread overview]
Message-ID: <4ce436ed-63b7-4764-afc5-dc5ffa4f0ba1@packett.cool> (raw)
In-Reply-To: <2c21041d-f84c-4fa7-a977-555f9203d8b5@oss.qualcomm.com>

Hi,

On 7/17/26 8:40 AM, Bibek Kumar Patro wrote:
>
>
> On 7/8/2026 8:56 PM, Bjorn Andersson wrote:
>> On Wed, Jul 08, 2026 at 03:31:07PM +0530, Bibek Kumar Patro wrote:
>>>
>>>
>>> On 7/7/2026 10:14 PM, Dmitry Baryshkov wrote:
>>>> On Tue, Jul 07, 2026 at 06:37:24PM +0530, Bibek Kumar Patro wrote:
>>>>>
>>>>>
>>>>> On 7/6/2026 11:12 PM, Dmitry Baryshkov wrote:
>>>>>> On Mon, Jul 06, 2026 at 10:26:36PM +0530, Bibek Kumar Patro wrote:
>>>>>>> On Kodiak platforms, the Adreno SMMU requires a bandwidth vote on
>>>>>>> the GEM_NOC path (MASTER_GPU_TCU -> SLAVE_EBI1) before its 
>>>>>>> registers
>>>>>>> are accessible. Without this vote, the SMMU may become unreachable,
>>>>>>> leading to intermittent probe failures and runtime issues.
>>>>>>>
>>>>>>> Add the required interconnect to ensure reliable register access.
>>>>>>>
>>>>>>> Signed-off-by: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>
>>>>>>> ---
>>>>>>>     arch/arm64/boot/dts/qcom/kodiak.dtsi | 2 ++
>>>>>>>     1 file changed, 2 insertions(+)
>>>>>>>
>>>>>>> diff --git a/arch/arm64/boot/dts/qcom/kodiak.dtsi 
>>>>>>> b/arch/arm64/boot/dts/qcom/kodiak.dtsi
>>>>>>> index 90e50c245c0c..721526f023dd 100644
>>>>>>> --- a/arch/arm64/boot/dts/qcom/kodiak.dtsi
>>>>>>> +++ b/arch/arm64/boot/dts/qcom/kodiak.dtsi
>>>>>>> @@ -3389,6 +3389,8 @@ adreno_smmu: iommu@3da0000 {
>>>>>>>                 power-domains = <&gpucc GPU_CC_CX_GDSC>;
>>>>>>>                 dma-coherent;
>>>>>>> +            interconnects = <&gem_noc MASTER_GPU_TCU 
>>>>>>> QCOM_ICC_TAG_ALWAYS
>>>>>>> +                     &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
>>>>>>
>>>>>> Why is it ALWAYS? Would it be better to declare it as ACTIVE_ONLY 
>>>>>> and
>>>>>
>>>>> Added QCOM_ICC_TAG_ALWAYS, to hold the vote in SLEEP bucket as well
>>>>> preventing gem_noc going to sleep when icc_set_bw is being called.
>>>>
>>>> _why_?
>>>>
>>>
>>> Now when i think of where we implemented the hooks, ALWAYS is not 
>>> needed. We
>>> should keep it ACTIVE_ONLY since we are already voting it
>>> back in resume pah. I'll fix it in next revision.
>>>
>>
>> The path is between the SMMU and DDR, so clearly it has to do with the
>> TCU's ability to fetch things from DDR.
>>
>
> Yes as you rightly mentioned, this series is helping to resolve the 
> race in TCU DDR clink
>
>> ACTIVE_ONLY states that the vote should only be applied when the
>> application subsystem (CPUSS) is not in low-power mode (CPU is active).
>>
>> So, are you saying that in all cases that cpuidle might select such
>> low-power state the GPU TCU is "stopped", and does not need to perform
>> any memory transactions?
>>
>
> I rechecked the architectural block diagram, GPU TCU is
> independent of the CPUSS, unlike system TCU.
>
> This means CPUSS can be powered down while the GPU TCU remains voted 
> up. While this series was intended to avoid a DDR voting race between the
> GPU TCU and its clients, using ACTIVE_ONLY could have possibly
> introduced a race between CPUSS and the GPU TCU itself.
>
> Thanks for catching this in my reply Bjorn.
>
> ACTIVE_ONLY would have been suitable for system TCU (apps_smmu)
> for which the interconnect field is anyways not needed, but
> unsuitable for GPU TCU.
>
>>
>> To me these two are orthogonal and TAG_ALWAYS is logically correct, but
>> perhaps there's some practical dependency that I'm missing?
>>
>
> We can ignore my acknowledgment [1] on previous response, Dmitry.
> ALWAYS TAG is correct here instead of ACTIVE_ONLY in the interconnect 
> field for adreno SMMU. 


This series seems to help with a really annoying bug on Kodiak phones 
like sm7325-motorola-dubai where often boot would hang when initializing 
the display panel (so it took a few reboots to successfully boot the 
device).

And indeed it only helps with the ALWAYS tag..

I've had this patch applied for a while (without even realizing that it 
fixed that!! thought the issue was gone because of something else) and 
today I went around kodiak.dtsi trying to remove unnecessary ALWAYS 
votes… first boot after changing this tag to ACTIVE_ONLY and boom, hang.


Tested-by: Val Packett <val@packett.cool> # sm7325-motorola-dubai

(for patch 2 i.e. the driver code as well)


Thanks,
~val


  reply	other threads:[~2026-11-13 18:46 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-06 16:56 [PATCH v3 0/6] iommu/arm-smmu: Add interconnect bandwidth voting support Bibek Kumar Patro
2026-07-06 16:56 ` [PATCH v3 1/6] dt-bindings: iommu: arm,smmu: Document interconnects property Bibek Kumar Patro
2026-07-06 17:39   ` Dmitry Baryshkov
2026-07-07 12:36     ` Bibek Kumar Patro
2026-07-07 16:42       ` Dmitry Baryshkov
2026-07-08 14:52         ` Bibek Kumar Patro
2026-07-08 15:18           ` Bjorn Andersson
2026-07-20 14:11             ` Bibek Kumar Patro
2026-07-20 14:40               ` Dmitry Baryshkov
2026-08-11 15:09                 ` Bibek Kumar Patro
2026-08-18  0:23                   ` Dmitry Baryshkov
2026-08-19 12:51                     ` Bibek Kumar Patro
2026-07-06 16:56 ` [PATCH v3 2/6] iommu/arm-smmu: Add interconnect bandwidth voting support Bibek Kumar Patro
2026-07-06 17:40   ` Dmitry Baryshkov
2026-07-07 12:43     ` Bibek Kumar Patro
2026-07-06 16:56 ` [PATCH v3 3/6] arm64: dts: qcom: kodiak: Add GEM_NOC interconnect for adreno SMMU Bibek Kumar Patro
2026-07-06 17:42   ` Dmitry Baryshkov
2026-07-07 13:07     ` Bibek Kumar Patro
2026-07-07 16:44       ` Dmitry Baryshkov
2026-07-08 10:01         ` Bibek Kumar Patro
2026-07-08 15:26           ` Bjorn Andersson
2026-07-17 11:40             ` Bibek Kumar Patro
2026-11-13 18:46               ` Val Packett [this message]
2026-07-06 16:56 ` [PATCH v3 4/6] arm64: dts: qcom: lemans: " Bibek Kumar Patro
2026-07-06 16:56 ` [PATCH v3 5/6] arm64: dts: qcom: monaco: " Bibek Kumar Patro
2026-07-06 16:56 ` [PATCH v3 6/6] arm64: dts: qcom: talos: " Bibek Kumar Patro

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=4ce436ed-63b7-4764-afc5-dc5ffa4f0ba1@packett.cool \
    --to=val@packett.cool \
    --cc=andersson@kernel.org \
    --cc=bibek.patro@oss.qualcomm.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.baryshkov@oss.qualcomm.com \
    --cc=iommu@lists.linux.dev \
    --cc=joro@8bytes.org \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robh@kernel.org \
    --cc=robin.clark@oss.qualcomm.com \
    --cc=robin.murphy@arm.com \
    --cc=will@kernel.org \
    /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®