Loading drivers/gpu/msm/a5xx_reg.h +1 −0 Original line number Diff line number Diff line Loading @@ -907,5 +907,6 @@ #define A5XX_GPU_CS_AMP_CALIBRATION_STATUS1_4 0xC421 #define A5XX_GPU_CS_ENABLE_REG 0xC520 #define A5XX_GPU_CS_AMP_CALIBRATION_CONTROL1 0xC557 #define A5XX_GPU_CS_AMP_CALIBRATION_DONE 0xC565 #endif /* _A5XX_REG_H */ drivers/gpu/msm/adreno_a5xx.c +9 −3 Original line number Diff line number Diff line Loading @@ -1665,9 +1665,12 @@ static int isense_cot(struct adreno_device *adreno_dev) unsigned int r, ret; struct kgsl_device *device = KGSL_DEVICE(adreno_dev); kgsl_regwrite(device, A5XX_GPU_CS_AMP_CALIBRATION_CONTROL1, AMP_SW_TRIM_START); kgsl_regrmw(device, A5XX_GPU_CS_AMP_CALIBRATION_DONE, SW_OPAMP_CAL_DONE, 0); kgsl_regrmw(device, A5XX_GPU_CS_AMP_CALIBRATION_CONTROL1, AMP_SW_TRIM_START, 0); kgsl_regrmw(device, A5XX_GPU_CS_AMP_CALIBRATION_CONTROL1, AMP_SW_TRIM_START, AMP_SW_TRIM_START); for (ret = 0; ret < AMP_CALIBRATION_TIMEOUT; ret++) { kgsl_regread(device, A5XX_GPU_CS_SENSOR_GENERAL_STATUS, &r); Loading @@ -1694,6 +1697,9 @@ static int isense_cot(struct adreno_device *adreno_dev) if (r & AMP_CALIBRATION_ERR) return -EIO; kgsl_regrmw(device, A5XX_GPU_CS_AMP_CALIBRATION_DONE, SW_OPAMP_CAL_DONE, 1); return 0; } Loading drivers/gpu/msm/adreno_a5xx.h +3 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,9 @@ void a5xx_hwcg_set(struct adreno_device *adreno_dev, bool on); #define AMP_OFFSET_CHECK_MAX_ERR BIT(2) #define AMP_OFFSET_CHECK_MIN_ERR BIT(1) /* A5XX_GPU_CS_AMP_CALIBRATION_DONE */ #define SW_OPAMP_CAL_DONE BIT(0) #define AMP_CALIBRATION_ERR (AMP_OFFSET_CHECK_MIN_ERR | \ AMP_OFFSET_CHECK_MAX_ERR | AMP_OUT_OF_RANGE_ERR) Loading Loading
drivers/gpu/msm/a5xx_reg.h +1 −0 Original line number Diff line number Diff line Loading @@ -907,5 +907,6 @@ #define A5XX_GPU_CS_AMP_CALIBRATION_STATUS1_4 0xC421 #define A5XX_GPU_CS_ENABLE_REG 0xC520 #define A5XX_GPU_CS_AMP_CALIBRATION_CONTROL1 0xC557 #define A5XX_GPU_CS_AMP_CALIBRATION_DONE 0xC565 #endif /* _A5XX_REG_H */
drivers/gpu/msm/adreno_a5xx.c +9 −3 Original line number Diff line number Diff line Loading @@ -1665,9 +1665,12 @@ static int isense_cot(struct adreno_device *adreno_dev) unsigned int r, ret; struct kgsl_device *device = KGSL_DEVICE(adreno_dev); kgsl_regwrite(device, A5XX_GPU_CS_AMP_CALIBRATION_CONTROL1, AMP_SW_TRIM_START); kgsl_regrmw(device, A5XX_GPU_CS_AMP_CALIBRATION_DONE, SW_OPAMP_CAL_DONE, 0); kgsl_regrmw(device, A5XX_GPU_CS_AMP_CALIBRATION_CONTROL1, AMP_SW_TRIM_START, 0); kgsl_regrmw(device, A5XX_GPU_CS_AMP_CALIBRATION_CONTROL1, AMP_SW_TRIM_START, AMP_SW_TRIM_START); for (ret = 0; ret < AMP_CALIBRATION_TIMEOUT; ret++) { kgsl_regread(device, A5XX_GPU_CS_SENSOR_GENERAL_STATUS, &r); Loading @@ -1694,6 +1697,9 @@ static int isense_cot(struct adreno_device *adreno_dev) if (r & AMP_CALIBRATION_ERR) return -EIO; kgsl_regrmw(device, A5XX_GPU_CS_AMP_CALIBRATION_DONE, SW_OPAMP_CAL_DONE, 1); return 0; } Loading
drivers/gpu/msm/adreno_a5xx.h +3 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,9 @@ void a5xx_hwcg_set(struct adreno_device *adreno_dev, bool on); #define AMP_OFFSET_CHECK_MAX_ERR BIT(2) #define AMP_OFFSET_CHECK_MIN_ERR BIT(1) /* A5XX_GPU_CS_AMP_CALIBRATION_DONE */ #define SW_OPAMP_CAL_DONE BIT(0) #define AMP_CALIBRATION_ERR (AMP_OFFSET_CHECK_MIN_ERR | \ AMP_OFFSET_CHECK_MAX_ERR | AMP_OUT_OF_RANGE_ERR) Loading