Loading Documentation/devicetree/bindings/gpu/adreno.txt +3 −0 Original line number Diff line number Diff line Loading @@ -191,6 +191,9 @@ GPU Quirks: - qcom,gpu-quirk-hfi-use-reg: Use registers to replace DCVS HFI message to avoid GMU failure to access system memory during IFPC - qcom,gpu-quirk-limit-uche-gbif-rw: Limit number of read and write transactions from UCHE block to GBIF to avoid possible deadlock between GBIF, SMMU and MEMNOC. KGSL Memory Pools: - qcom,gpu-mempools: Container for sets of GPU mempools.Multiple sets Loading drivers/gpu/msm/adreno.c +2 −0 Original line number Diff line number Diff line Loading @@ -946,6 +946,8 @@ static struct { "qcom,gpu-quirk-lmloadkill-disable" }, { ADRENO_QUIRK_HFI_USE_REG, "qcom,gpu-quirk-hfi-use-reg" }, { ADRENO_QUIRK_SECVID_SET_ONCE, "qcom,gpu-quirk-secvid-set-once" }, { ADRENO_QUIRK_LIMIT_UCHE_GBIF_RW, "qcom,gpu-quirk-limit-uche-gbif-rw" }, }; static int adreno_of_get_power(struct adreno_device *adreno_dev, Loading drivers/gpu/msm/adreno.h +6 −0 Original line number Diff line number Diff line Loading @@ -144,6 +144,12 @@ #define ADRENO_QUIRK_HFI_USE_REG BIT(6) /* Only set protected SECVID registers once */ #define ADRENO_QUIRK_SECVID_SET_ONCE BIT(7) /* * Limit number of read and write transactions from * UCHE block to GBIF to avoid possible deadlock * between GBIF, SMMU and MEMNOC. */ #define ADRENO_QUIRK_LIMIT_UCHE_GBIF_RW BIT(8) /* Flags to control command packet settings */ #define KGSL_CMD_FLAGS_NONE 0 Loading drivers/gpu/msm/adreno_a6xx.c +3 −1 Original line number Diff line number Diff line Loading @@ -55,7 +55,6 @@ static const struct adreno_vbif_data a630_vbif[] = { static const struct adreno_vbif_data a615_gbif[] = { {A6XX_RBBM_VBIF_CLIENT_QOS_CNTL, 0x3}, {A6XX_UCHE_GBIF_GX_CONFIG, 0x10200F9}, {0, 0}, }; Loading Loading @@ -670,6 +669,9 @@ static void a6xx_start(struct adreno_device *adreno_dev) adreno_vbif_start(adreno_dev, a6xx_vbif_platforms, ARRAY_SIZE(a6xx_vbif_platforms)); if (ADRENO_QUIRK(adreno_dev, ADRENO_QUIRK_LIMIT_UCHE_GBIF_RW)) kgsl_regwrite(device, A6XX_UCHE_GBIF_GX_CONFIG, 0x10200F9); /* Make all blocks contribute to the GPU BUSY perf counter */ kgsl_regwrite(device, A6XX_RBBM_PERFCTR_GPU_BUSY_MASKED, 0xFFFFFFFF); Loading Loading
Documentation/devicetree/bindings/gpu/adreno.txt +3 −0 Original line number Diff line number Diff line Loading @@ -191,6 +191,9 @@ GPU Quirks: - qcom,gpu-quirk-hfi-use-reg: Use registers to replace DCVS HFI message to avoid GMU failure to access system memory during IFPC - qcom,gpu-quirk-limit-uche-gbif-rw: Limit number of read and write transactions from UCHE block to GBIF to avoid possible deadlock between GBIF, SMMU and MEMNOC. KGSL Memory Pools: - qcom,gpu-mempools: Container for sets of GPU mempools.Multiple sets Loading
drivers/gpu/msm/adreno.c +2 −0 Original line number Diff line number Diff line Loading @@ -946,6 +946,8 @@ static struct { "qcom,gpu-quirk-lmloadkill-disable" }, { ADRENO_QUIRK_HFI_USE_REG, "qcom,gpu-quirk-hfi-use-reg" }, { ADRENO_QUIRK_SECVID_SET_ONCE, "qcom,gpu-quirk-secvid-set-once" }, { ADRENO_QUIRK_LIMIT_UCHE_GBIF_RW, "qcom,gpu-quirk-limit-uche-gbif-rw" }, }; static int adreno_of_get_power(struct adreno_device *adreno_dev, Loading
drivers/gpu/msm/adreno.h +6 −0 Original line number Diff line number Diff line Loading @@ -144,6 +144,12 @@ #define ADRENO_QUIRK_HFI_USE_REG BIT(6) /* Only set protected SECVID registers once */ #define ADRENO_QUIRK_SECVID_SET_ONCE BIT(7) /* * Limit number of read and write transactions from * UCHE block to GBIF to avoid possible deadlock * between GBIF, SMMU and MEMNOC. */ #define ADRENO_QUIRK_LIMIT_UCHE_GBIF_RW BIT(8) /* Flags to control command packet settings */ #define KGSL_CMD_FLAGS_NONE 0 Loading
drivers/gpu/msm/adreno_a6xx.c +3 −1 Original line number Diff line number Diff line Loading @@ -55,7 +55,6 @@ static const struct adreno_vbif_data a630_vbif[] = { static const struct adreno_vbif_data a615_gbif[] = { {A6XX_RBBM_VBIF_CLIENT_QOS_CNTL, 0x3}, {A6XX_UCHE_GBIF_GX_CONFIG, 0x10200F9}, {0, 0}, }; Loading Loading @@ -670,6 +669,9 @@ static void a6xx_start(struct adreno_device *adreno_dev) adreno_vbif_start(adreno_dev, a6xx_vbif_platforms, ARRAY_SIZE(a6xx_vbif_platforms)); if (ADRENO_QUIRK(adreno_dev, ADRENO_QUIRK_LIMIT_UCHE_GBIF_RW)) kgsl_regwrite(device, A6XX_UCHE_GBIF_GX_CONFIG, 0x10200F9); /* Make all blocks contribute to the GPU BUSY perf counter */ kgsl_regwrite(device, A6XX_RBBM_PERFCTR_GPU_BUSY_MASKED, 0xFFFFFFFF); Loading