• Konrad Dybcio's avatar
    drm/msm/a6xx: Add A610 support · e7fc9398
    Konrad Dybcio authored
    A610 is one of (if not the) lowest-tier SKUs in the A6XX family. It
    features no GMU, as it's implemented solely on SoCs with SMD_RPM.
    What's more interesting is that it does not feature a VDDGX line
    either, being powered solely by VDDCX and has an unfortunate hardware
    quirk that makes its reset line broken - after a couple of assert/
    deassert cycles, it will hang for good and will not wake up again.
    
    This GPU requires mesa changes for proper rendering, and lots of them
    at that. The command streams are quite far away from any other A6XX
    GPU and hence it needs special care. This patch was validated both
    by running an (incomplete) downstream mesa with some hacks (frames
    rendered correctly, though some instructions made the GPU hangcheck
    which is expected - garbage in, garbage out) and by replaying RD
    traces captured with the downstream KGSL driver - no crashes there,
    ever.
    
    Add support for this GPU on the kernel side, which comes down to
    pretty simply adding A612 HWCG tables, altering a few values and
    adding a special case for handling the reset line.
    Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: default avatarKonrad Dybcio <konrad.dybcio@linaro.org>
    Patchwork: https://patchwork.freedesktop.org/patch/542779/Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
    e7fc9398
a6xx_gpu.c 76.9 KB