From: sashiko-bot@kernel.org
To: "Neil Armstrong" <neil.armstrong@linaro.org>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 1/2] drm/msm/a6xx: Add CX AO Counter registers used for a750 GPUs
Date: Tue, 08 Sep 2026 13:38:00 +0000 [thread overview]
Message-ID: <20260908133800.F13291F00ACA@smtp.kernel.org> (raw)
In-Reply-To: <20260908-topic-sm8650-gmu-a750-timestamp-reg-v1-1-284880d6e68b@linaro.org>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Swapped _H and _L register offsets for GMU_CX_AO_COUNTER cause incorrect timestamp calculation and potential infinite loop.
--
commit 6a7904eb81671357880e41c095c0516fdc10e669
Author: Neil Armstrong <neil.armstrong@linaro.org>
drm/msm/a6xx: Add CX AO Counter registers used for a750 GPUs
This commit adds the CX AO Counters to the a6xx GMU XML definitions for
use on a750 GPUs. These replace the GMU_ALWAYS_ON_COUNTER register used
on other A6xx and A7xx variants.
> diff --git a/drivers/gpu/drm/msm/registers/adreno/a6xx_gmu.xml b/drivers/gpu/drm/msm/registers/adreno/a6xx_gmu.xml
> index 33404eb18fd02..3fe7bc3ea93d1 100644
> --- a/drivers/gpu/drm/msm/registers/adreno/a6xx_gmu.xml
> +++ b/drivers/gpu/drm/msm/registers/adreno/a6xx_gmu.xml
> @@ -141,6 +141,8 @@ xsi:schemaLocation="https://gitlab.freedesktop.org/freedreno/ rules-fd.xsd">
> <reg32 offset="0x1f9f0" name="GMU_BOOT_KMD_LM_HANDSHAKE"/>
> <reg32 offset="0x1f957" name="GMU_LLM_GLM_SLEEP_CTRL"/>
> <reg32 offset="0x1f958" name="GMU_LLM_GLM_SLEEP_STATUS"/>
> + <reg32 offset="0x1f880" name="GMU_CX_AO_COUNTER_H" variants="A7XX"/>
> + <reg32 offset="0x1f881" name="GMU_CX_AO_COUNTER_L" variants="A7XX"/>
[Severity: High]
Are the offsets for GMU_CX_AO_COUNTER_H and GMU_CX_AO_COUNTER_L swapped
here?
Usually, standard little-endian hardware counters place the lower 32 bits
(_L) at the lower offset (0x1f880) and the upper 32 bits (_H) at the higher
offset (0x1f881).
If GMU_CX_AO_COUNTER_H points to the fast-changing lower 32 bits of the
counter, it could cause an infinite loop in a6xx_gmu_get_timestamp(). That
function relies on a read-retry loop to ensure the high bits haven't rolled
over:
do {
count_hi = read(_H);
count_lo = read(_L);
temp = read(_H);
} while (unlikely(count_hi != temp));
If _H is mapped to the lower bits, which increment rapidly at 19.2 MHz, the
two reads of _H will almost always yield different values due to MMIO
latency. This would cause the loop to spin indefinitely and potentially lock
up the CPU, returning corrupted timestamps if it ever manages to exit.
> <reg32 offset="0x1f888" name="GMU_ALWAYS_ON_COUNTER_L" variants="A6XX-A7XX"/>
> <reg32 offset="0x1f840" name="GMU_ALWAYS_ON_COUNTER_L" variants="A8XX-"/>
> <reg32 offset="0x1f889" name="GMU_ALWAYS_ON_COUNTER_H" variants="A6XX-A7XX"/>
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260908-topic-sm8650-gmu-a750-timestamp-reg-v1-0-284880d6e68b@linaro.org?part=1
next prev parent reply other threads:[~2026-09-08 13:38 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-08 13:24 [PATCH 0/2] drm/msm/a6xx: use correct timestamp counter on A750 GPU Neil Armstrong
2026-09-08 13:24 ` [PATCH 1/2] drm/msm/a6xx: Add CX AO Counter registers used for a750 GPUs Neil Armstrong
2026-09-08 13:38 ` sashiko-bot [this message]
2026-09-08 13:39 ` Neil Armstrong
2026-09-08 13:24 ` [PATCH 2/2] drm/msm/a6xx: Use CX AO Counter register for timestamp on " Neil Armstrong
2026-09-08 13:37 ` sashiko-bot
2026-09-09 9:06 ` Konrad Dybcio
2026-09-09 9:32 ` Neil Armstrong
2026-09-09 13:24 ` Connor Abbott
2026-09-09 14:29 ` Neil Armstrong
2026-09-09 14:31 ` Connor Abbott
2026-09-09 18:31 ` Akhil P Oommen
2026-09-10 6:57 ` Neil Armstrong
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=20260908133800.F13291F00ACA@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=neil.armstrong@linaro.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.