From d93318c4a382b314a17ae7462877dfc570cd0cec Mon Sep 17 00:00:00 2001 From: DjDeveloperr Date: Tue, 27 Oct 2026 03:40:05 -0400 Subject: [PATCH] soc: apple: clpc: hand the T8140 GPU floor back 100 ms after the PMP stops limiting The GPU floor stayed released for a second after the PMP last limited the DCS. Light GPU work that followed heavier work therefore ran without the floor for up to that second: on Neo, compute.light d1 took 148-151 us instead of 102.7 us for the first 0.5-0.75 s of a run, before the floor came back. Under sustained heavy rendering the PMP limits the DCS again within much less than that, so a 100 ms hold keeps the floor released there while the light work that follows gets it back almost at once. (cherry picked from commit 51350a0d50224a07399bc69fc85660f781538814) Signed-off-by: DjDeveloperr --- drivers/soc/apple/clpc.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/soc/apple/clpc.c b/drivers/soc/apple/clpc.c index bfbc687a8c27a9..cf477fd3c7c6a8 100644 --- a/drivers/soc/apple/clpc.c +++ b/drivers/soc/apple/clpc.c @@ -48,8 +48,13 @@ enum apple_clpc_rail { #define APPLE_CLPC_BUSY_PCT 50 /* Time a rail keeps its last request after demand stops */ #define APPLE_CLPC_HOLD_MS 32 -/* Time the GPU floor stays released after the PMP last limited the DCS */ -#define APPLE_CLPC_GPU_BACKOFF_MS 1000 +/* + * Time the GPU floor stays released after the PMP last limited the DCS. Under + * sustained heavy rendering the PMP limits the DCS again well within this, so + * the floor stays released; light submissions that follow get the floor back + * this long after the PMP stops limiting. + */ +#define APPLE_CLPC_GPU_BACKOFF_MS 100 /** * struct apple_clpc_hw - per-SoC CLPC parameters