On 02/11/2023 14:15, AngeloGioacchino Del Regno wrote: > The layout of the registers {TILER,SHADER,L2}_PWROFF_LO, used to request > powering off cores, is the same as the {TILER,SHADER,L2}_PWRON_LO ones: > this means that in order to request poweroff of cores, we are supposed > to write a bitmask of cores that should be powered off! > This means that the panfrost_gpu_power_off() function has always been > doing nothing. > > Fix powering off the GPU by writing a bitmask of the cores to poweroff > to the relevant PWROFF_LO registers and then check that the transition > (from ON to OFF) has finished by polling the relevant PWRTRANS_LO > registers. > > While at it, in order to avoid code duplication, move the core mask > logic from panfrost_gpu_power_on() to a new panfrost_get_core_mask() > function, used in both poweron and poweroff. > > Fixes: f3ba91228e8e ("drm/panfrost: Add initial panfrost driver") > Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx> Reviewed-by: Steven Price <steven.price@xxxxxxx> Thanks, Steve