Loading drivers/gpu/msm/adreno-gpulist.h +1 −1 Original line number Diff line number Diff line Loading @@ -254,7 +254,7 @@ static const struct adreno_gpu_core adreno_gpulist[] = { .gmem_size = SZ_1M, .num_protected_regs = 0x20, .busy_mask = 0xFFFFFFFE, .gpmufw_name = "a540v1_gpmu.fw2", .gpmufw_name = "a540_gpmu.fw2", .gpmu_major = 3, .gpmu_minor = 0, .gpmu_tsens = 0x000C000D, Loading drivers/gpu/msm/adreno_a5xx.c +33 −29 Original line number Diff line number Diff line Loading @@ -1802,14 +1802,14 @@ static void a540_lm_init(struct adreno_device *adreno_dev) { struct kgsl_device *device = KGSL_DEVICE(adreno_dev); uint32_t agc_lm_config = AGC_LM_CONFIG_ENABLE_GPMU_ADAPTIVE | AGC_THROTTLE_SEL_DCS; ((ADRENO_CHIPID_PATCH(adreno_dev->chipid) | 0x3) << AGC_GPU_VERSION_SHIFT); unsigned int r, i; if (!lm_on(adreno_dev)) return; agc_lm_config |= ((ADRENO_CHIPID_PATCH(adreno_dev->chipid) | 0x3) << AGC_GPU_VERSION_SHIFT); if (lm_on(adreno_dev)) { agc_lm_config |= AGC_LM_CONFIG_ENABLE_GPMU_ADAPTIVE | AGC_THROTTLE_SEL_DCS; kgsl_regread(device, A5XX_GPMU_TEMP_SENSOR_CONFIG, &r); if (r & GPMU_BCL_ENABLED) Loading @@ -1819,7 +1819,8 @@ static void a540_lm_init(struct adreno_device *adreno_dev) agc_lm_config |= AGC_LLM_ENABLED; if ((r & GPMU_ISENSE_STATUS) == GPMU_ISENSE_END_POINT_CAL_ERR) { KGSL_CORE_ERR("GPMU: ISENSE end point calibration failure\n"); KGSL_CORE_ERR( "GPMU: ISENSE end point calibration failure\n"); agc_lm_config |= AGC_LM_CONFIG_ENABLE_ERROR; goto start_agc; } Loading @@ -1829,16 +1830,18 @@ static void a540_lm_init(struct adreno_device *adreno_dev) goto start_agc; } for (i = 0; i < AMP_CALIBRATION_RETRY_CNT; i++) for (i = 0; i < AMP_CALIBRATION_RETRY_CNT; i++) { if (isense_cot(adreno_dev)) cpu_relax(); else break; } if (i == AMP_CALIBRATION_RETRY_CNT) { KGSL_CORE_ERR("GPMU: ISENSE cold trimming failure\n"); agc_lm_config |= AGC_LM_CONFIG_ENABLE_ERROR; } } start_agc: kgsl_regwrite(device, AGC_MSG_STATE, 0x80000001); Loading @@ -1859,6 +1862,7 @@ start_agc: kgsl_regwrite(device, A5XX_GPMU_GPMU_PWR_THRESHOLD, PWR_THRESHOLD_VALID | lm_limit(adreno_dev)); if (lm_on(adreno_dev)) wake_llm(adreno_dev); } Loading Loading
drivers/gpu/msm/adreno-gpulist.h +1 −1 Original line number Diff line number Diff line Loading @@ -254,7 +254,7 @@ static const struct adreno_gpu_core adreno_gpulist[] = { .gmem_size = SZ_1M, .num_protected_regs = 0x20, .busy_mask = 0xFFFFFFFE, .gpmufw_name = "a540v1_gpmu.fw2", .gpmufw_name = "a540_gpmu.fw2", .gpmu_major = 3, .gpmu_minor = 0, .gpmu_tsens = 0x000C000D, Loading
drivers/gpu/msm/adreno_a5xx.c +33 −29 Original line number Diff line number Diff line Loading @@ -1802,14 +1802,14 @@ static void a540_lm_init(struct adreno_device *adreno_dev) { struct kgsl_device *device = KGSL_DEVICE(adreno_dev); uint32_t agc_lm_config = AGC_LM_CONFIG_ENABLE_GPMU_ADAPTIVE | AGC_THROTTLE_SEL_DCS; ((ADRENO_CHIPID_PATCH(adreno_dev->chipid) | 0x3) << AGC_GPU_VERSION_SHIFT); unsigned int r, i; if (!lm_on(adreno_dev)) return; agc_lm_config |= ((ADRENO_CHIPID_PATCH(adreno_dev->chipid) | 0x3) << AGC_GPU_VERSION_SHIFT); if (lm_on(adreno_dev)) { agc_lm_config |= AGC_LM_CONFIG_ENABLE_GPMU_ADAPTIVE | AGC_THROTTLE_SEL_DCS; kgsl_regread(device, A5XX_GPMU_TEMP_SENSOR_CONFIG, &r); if (r & GPMU_BCL_ENABLED) Loading @@ -1819,7 +1819,8 @@ static void a540_lm_init(struct adreno_device *adreno_dev) agc_lm_config |= AGC_LLM_ENABLED; if ((r & GPMU_ISENSE_STATUS) == GPMU_ISENSE_END_POINT_CAL_ERR) { KGSL_CORE_ERR("GPMU: ISENSE end point calibration failure\n"); KGSL_CORE_ERR( "GPMU: ISENSE end point calibration failure\n"); agc_lm_config |= AGC_LM_CONFIG_ENABLE_ERROR; goto start_agc; } Loading @@ -1829,16 +1830,18 @@ static void a540_lm_init(struct adreno_device *adreno_dev) goto start_agc; } for (i = 0; i < AMP_CALIBRATION_RETRY_CNT; i++) for (i = 0; i < AMP_CALIBRATION_RETRY_CNT; i++) { if (isense_cot(adreno_dev)) cpu_relax(); else break; } if (i == AMP_CALIBRATION_RETRY_CNT) { KGSL_CORE_ERR("GPMU: ISENSE cold trimming failure\n"); agc_lm_config |= AGC_LM_CONFIG_ENABLE_ERROR; } } start_agc: kgsl_regwrite(device, AGC_MSG_STATE, 0x80000001); Loading @@ -1859,6 +1862,7 @@ start_agc: kgsl_regwrite(device, A5XX_GPMU_GPMU_PWR_THRESHOLD, PWR_THRESHOLD_VALID | lm_limit(adreno_dev)); if (lm_on(adreno_dev)) wake_llm(adreno_dev); } Loading