On 10/24/25 4:23 PM, Akhil P Oommen wrote: > On 10/24/2025 6:46 PM, Rob Clark wrote: >> On Fri, Oct 24, 2025 at 12:55 AM Konrad Dybcio >> <[email protected]> wrote: >>> >>> On 10/24/25 12:57 AM, Akhil P Oommen wrote: >>>> On 10/22/2025 8:43 PM, Konrad Dybcio wrote: >>>>> On 10/17/25 7:08 PM, Akhil P Oommen wrote: >>>>>> From: Jie Zhang <[email protected]> >>>>>> >>>>>> Add support for Adreno 612 GPU found in SM6150/QCS615 chipsets. >>>>>> A612 falls under ADRENO_6XX_GEN1 family and is a cut down version >>>>>> of A615 GPU. >>>>>> >>>>>> A612 has a new IP called Reduced Graphics Management Unit or RGMU >>>>>> which is a small state machine which helps to toggle GX GDSC >>>>>> (connected to CX rail) to implement IFPC feature. It doesn't support >>>>>> any other features of a full fledged GMU like clock control, resource >>>>>> voting to rpmh etc. So we need linux clock driver support like other >>>>>> gmu-wrapper implementations to control gpu core clock and gpu GX gdsc. >>>>>> This patch skips RGMU core initialization and act more like a >>>>>> gmu-wrapper case. >>>>>> >>>>>> Co-developed-by: Akhil P Oommen <[email protected]> >>>>>> Signed-off-by: Jie Zhang <[email protected]> >>>>>> Signed-off-by: Akhil P Oommen <[email protected]> >>>>>> --- >>>>> >>>>> [...] >>>>> >>>>>> @@ -350,12 +350,18 @@ static const struct a6xx_gmu_oob_bits >>>>>> a6xx_gmu_oob_bits[] = { >>>>>> /* Trigger a OOB (out of band) request to the GMU */ >>>>>> int a6xx_gmu_set_oob(struct a6xx_gmu *gmu, enum a6xx_gmu_oob_state >>>>>> state) >>>>>> { >>>>>> + struct a6xx_gpu *a6xx_gpu = container_of(gmu, struct a6xx_gpu, gmu); >>>>>> + struct adreno_gpu *adreno_gpu = &a6xx_gpu->base; >>>>>> int ret; >>>>>> u32 val; >>>>>> int request, ack; >>>>>> >>>>>> WARN_ON_ONCE(!mutex_is_locked(&gmu->lock)); >>>>>> >>>>>> + /* Skip OOB calls since RGMU is not enabled */ >>>>> >>>>> "RGMU doesn't handle OOB calls" >>>> >>>> Technically RGMU can handle OOB calls. But we are not initializing rgmu. >>> >>> Oh, I glossed over that.. >>> >>> IIRC the reason we delayed 612 support in the past was to make sure >>> that the RGMU FW is consumed, so that runtime requirements don't >>> suddenly change one day. >>> >>> If you have no interest/way in getting it wholly supported right now, >>> can you at least make sure that the driver requests the firmware and >>> exits if it's absent? >> >> adreno_load_gpu() calls adreno_load_fw() first thing, and will bail if >> gmu fw is missing. (zap fw is a bit more awkward since that could >> come from dt or device table.) > > Correct. And RGMU firmware is available in linux-firmware repo.
Thanks! Konrad
