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.) BR, -R
