mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 05:39:54 -04:00
The probability of sarsensor not being mounted
1.modify the problem of null pointer 2.PMIC supply 3.test result:pass the test results of 50 verifications of primary and secondary sar Change-Id: I94d4855ddcdb90ce9f8d2660f7d07f44b96aa14e Signed-off-by: tin_bingtai.zou_tmp <tinno60@motorola.com> Reviewed-on: https://gerrit.mot.com/2586600 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: <yangyi31@motorola.com> Reviewed-by: Yuchang Guo <guoyc1@lenovo.com> Reviewed-by: Xiangpo Zhao <zhaoxp3@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
2a71b6e13c
commit
be0aa66192
1 changed files with 13 additions and 14 deletions
|
|
@ -18,6 +18,8 @@
|
|||
#define AW_SAR_CH_MAX (20)
|
||||
#define AW_POWER_ON_SYSFS_DELAY_MS (5000)
|
||||
#define AW_SAR_OFFSET_LEN (15)
|
||||
#define AW_SAR_VCC_MIN_UV (1700000)
|
||||
#define AW_SAR_VCC_MAX_UV (3600000)
|
||||
|
||||
static struct mutex aw_sar_lock;
|
||||
|
||||
|
|
@ -1569,12 +1571,10 @@ static int32_t aw_sar_regulator_power_init(struct aw_sar *p_sar)
|
|||
|
||||
AWLOGD(p_sar->dev, "aw_sar power init enter");
|
||||
|
||||
if (p_sar->p_sar_para->p_platform_config->p_regulator_config == NULL) {
|
||||
return AW_INVALID_PARA;
|
||||
}
|
||||
// if (p_sar->p_sar_para->p_platform_config->p_regulator_config == NULL)
|
||||
// return AW_INVALID_PARA;
|
||||
|
||||
snprintf(vcc_name, sizeof(vcc_name), "%s%d",
|
||||
p_sar->p_sar_para->p_platform_config->p_regulator_config->vcc_name,
|
||||
snprintf(vcc_name, sizeof(vcc_name), "vcc%d",
|
||||
p_sar->dts_info.sar_num);
|
||||
AWLOGD(p_sar->dev, "vcc_name = %s", vcc_name);
|
||||
|
||||
|
|
@ -1582,13 +1582,13 @@ static int32_t aw_sar_regulator_power_init(struct aw_sar *p_sar)
|
|||
if (IS_ERR(p_sar->vcc)) {
|
||||
rc = PTR_ERR(p_sar->vcc);
|
||||
AWLOGE(p_sar->dev, "regulator get failed vcc rc = %d", rc);
|
||||
return rc;
|
||||
return AW_ERR;
|
||||
}
|
||||
|
||||
if (regulator_count_voltages(p_sar->vcc) > 0) {
|
||||
rc = regulator_set_voltage(p_sar->vcc,
|
||||
p_sar->p_sar_para->p_platform_config->p_regulator_config->min_uV,
|
||||
p_sar->p_sar_para->p_platform_config->p_regulator_config->max_uV);
|
||||
AW_SAR_VCC_MIN_UV,
|
||||
AW_SAR_VCC_MAX_UV);
|
||||
if (rc) {
|
||||
AWLOGE(p_sar->dev,
|
||||
"regulator set vol failed rc = %d", rc);
|
||||
|
|
@ -1596,11 +1596,11 @@ static int32_t aw_sar_regulator_power_init(struct aw_sar *p_sar)
|
|||
}
|
||||
}
|
||||
|
||||
return rc;
|
||||
return AW_OK;
|
||||
|
||||
reg_vcc_put:
|
||||
regulator_put(p_sar->vcc);
|
||||
return rc;
|
||||
return AW_ERR;
|
||||
}
|
||||
|
||||
static void aw_sar_power_deinit(struct aw_sar *p_sar)
|
||||
|
|
@ -1650,7 +1650,7 @@ static int32_t regulator_is_get_voltage(struct aw_sar *p_sar)
|
|||
while(cnt--) {
|
||||
voltage_val = regulator_get_voltage(p_sar->vcc);
|
||||
AWLOGD(p_sar->dev, "aw_sar voltage is : %d uv", voltage_val);
|
||||
if (voltage_val >= p_sar->p_sar_para->p_platform_config->p_regulator_config->min_uV) {
|
||||
if (voltage_val >= AW_SAR_VCC_MIN_UV){
|
||||
return AW_OK;
|
||||
}
|
||||
mdelay(1);
|
||||
|
|
@ -1936,11 +1936,10 @@ static int32_t aw_sar_regulator_power(struct aw_sar *p_sar)
|
|||
//Configure the use of regulator power supply in DTS
|
||||
if (p_sar->dts_info.use_regulator_flag == true) {
|
||||
ret = aw_sar_regulator_power_init(p_sar);
|
||||
if (ret) {
|
||||
if (ret != AW_OK)
|
||||
AWLOGE(p_sar->dev, "power init failed");
|
||||
} else {
|
||||
else
|
||||
aw_sar_power_enable(p_sar, AW_TRUE);
|
||||
}
|
||||
ret = regulator_is_get_voltage(p_sar);
|
||||
if (ret != AW_OK) {
|
||||
AWLOGE(p_sar->dev, "get_voltage failed");
|
||||
|
|
|
|||
Loading…
Reference in a new issue