Merge "msm: camera: sensor: Change regulator get,put to devres entry" into camera-kernel.lnx.5.0
This commit is contained in:

committato da
Gerrit - the friendly Code Review server

commit
f55270528c
@@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/of.h>
|
||||
@@ -15,7 +15,7 @@
|
||||
int32_t cam_actuator_parse_dt(struct cam_actuator_ctrl_t *a_ctrl,
|
||||
struct device *dev)
|
||||
{
|
||||
int32_t rc = 0;
|
||||
int32_t i, rc = 0;
|
||||
struct cam_hw_soc_info *soc_info = &a_ctrl->soc_info;
|
||||
struct cam_actuator_soc_private *soc_private =
|
||||
(struct cam_actuator_soc_private *)a_ctrl->soc_info.soc_private;
|
||||
@@ -56,6 +56,20 @@ int32_t cam_actuator_parse_dt(struct cam_actuator_ctrl_t *a_ctrl,
|
||||
CAM_DBG(CAM_ACTUATOR, "cci-device %d", a_ctrl->cci_num);
|
||||
}
|
||||
|
||||
/* Initialize regulators to default parameters */
|
||||
for (i = 0; i < soc_info->num_rgltr; i++) {
|
||||
soc_info->rgltr[i] = devm_regulator_get(soc_info->dev,
|
||||
soc_info->rgltr_name[i]);
|
||||
if (IS_ERR_OR_NULL(soc_info->rgltr[i])) {
|
||||
rc = PTR_ERR(soc_info->rgltr[i]);
|
||||
rc = rc ? rc : -EINVAL;
|
||||
CAM_ERR(CAM_ACTUATOR, "get failed for regulator %s %d",
|
||||
soc_info->rgltr_name[i], rc);
|
||||
return rc;
|
||||
}
|
||||
CAM_DBG(CAM_ACTUATOR, "get for regulator %s",
|
||||
soc_info->rgltr_name[i]);
|
||||
}
|
||||
if (!soc_info->gpio_data) {
|
||||
CAM_DBG(CAM_ACTUATOR, "No GPIO found");
|
||||
rc = 0;
|
||||
|
@@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/of.h>
|
||||
@@ -380,5 +380,20 @@ int cam_eeprom_parse_dt(struct cam_eeprom_ctrl_t *e_ctrl)
|
||||
}
|
||||
}
|
||||
|
||||
/* Initialize regulators to default parameters */
|
||||
for (i = 0; i < soc_info->num_rgltr; i++) {
|
||||
soc_info->rgltr[i] = devm_regulator_get(soc_info->dev,
|
||||
soc_info->rgltr_name[i]);
|
||||
if (IS_ERR_OR_NULL(soc_info->rgltr[i])) {
|
||||
rc = PTR_ERR(soc_info->rgltr[i]);
|
||||
rc = rc ? rc : -EINVAL;
|
||||
CAM_ERR(CAM_EEPROM, "get failed for regulator %s",
|
||||
soc_info->rgltr_name[i]);
|
||||
return rc;
|
||||
}
|
||||
CAM_DBG(CAM_EEPROM, "get for regulator %s",
|
||||
soc_info->rgltr_name[i]);
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/of.h>
|
||||
@@ -41,6 +41,21 @@ static int cam_ois_get_dt_data(struct cam_ois_ctrl_t *o_ctrl)
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* Initialize regulators to default parameters */
|
||||
for (i = 0; i < soc_info->num_rgltr; i++) {
|
||||
soc_info->rgltr[i] = devm_regulator_get(soc_info->dev,
|
||||
soc_info->rgltr_name[i]);
|
||||
if (IS_ERR_OR_NULL(soc_info->rgltr[i])) {
|
||||
rc = PTR_ERR(soc_info->rgltr[i]);
|
||||
rc = rc ? rc : -EINVAL;
|
||||
CAM_ERR(CAM_OIS, "get failed for regulator %s",
|
||||
soc_info->rgltr_name[i]);
|
||||
return rc;
|
||||
}
|
||||
CAM_DBG(CAM_OIS, "get for regulator %s",
|
||||
soc_info->rgltr_name[i]);
|
||||
}
|
||||
|
||||
if (!soc_info->gpio_data) {
|
||||
CAM_INFO(CAM_OIS, "No GPIO found");
|
||||
return 0;
|
||||
|
@@ -280,6 +280,21 @@ int32_t cam_sensor_parse_dt(struct cam_sensor_ctrl_t *s_ctrl)
|
||||
return rc;
|
||||
}
|
||||
}
|
||||
/* Initialize regulators to default parameters */
|
||||
for (i = 0; i < soc_info->num_rgltr; i++) {
|
||||
soc_info->rgltr[i] = devm_regulator_get(soc_info->dev,
|
||||
soc_info->rgltr_name[i]);
|
||||
if (IS_ERR_OR_NULL(soc_info->rgltr[i])) {
|
||||
rc = PTR_ERR(soc_info->rgltr[i]);
|
||||
rc = rc ? rc : -EINVAL;
|
||||
CAM_ERR(CAM_SENSOR, "get failed for regulator %s",
|
||||
soc_info->rgltr_name[i]);
|
||||
return rc;
|
||||
}
|
||||
CAM_DBG(CAM_SENSOR, "get for regulator %s",
|
||||
soc_info->rgltr_name[i]);
|
||||
}
|
||||
|
||||
rc = msm_sensor_init_default_params(s_ctrl);
|
||||
if (rc < 0) {
|
||||
CAM_ERR(CAM_SENSOR,
|
||||
|
@@ -1974,10 +1974,6 @@ static int cam_config_mclk_reg(struct cam_sensor_power_ctrl_t *ctrl,
|
||||
|
||||
ps->data[0] =
|
||||
soc_info->rgltr[j];
|
||||
|
||||
regulator_put(
|
||||
soc_info->rgltr[j]);
|
||||
soc_info->rgltr[j] = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2057,11 +2053,6 @@ int cam_sensor_core_power_up(struct cam_sensor_power_ctrl_t *ctrl,
|
||||
CAM_DBG(CAM_SENSOR,
|
||||
"Enable cam_clk: %d", j);
|
||||
|
||||
soc_info->rgltr[j] =
|
||||
regulator_get(
|
||||
soc_info->dev,
|
||||
soc_info->rgltr_name[j]);
|
||||
|
||||
if (IS_ERR_OR_NULL(
|
||||
soc_info->rgltr[j])) {
|
||||
rc = PTR_ERR(
|
||||
@@ -2156,9 +2147,6 @@ int cam_sensor_core_power_up(struct cam_sensor_power_ctrl_t *ctrl,
|
||||
CAM_DBG(CAM_SENSOR, "Enable Regulator");
|
||||
vreg_idx = power_setting->seq_val;
|
||||
|
||||
soc_info->rgltr[vreg_idx] =
|
||||
regulator_get(soc_info->dev,
|
||||
soc_info->rgltr_name[vreg_idx]);
|
||||
if (IS_ERR_OR_NULL(
|
||||
soc_info->rgltr[vreg_idx])) {
|
||||
rc = PTR_ERR(soc_info->rgltr[vreg_idx]);
|
||||
@@ -2281,8 +2269,6 @@ power_up_failed:
|
||||
power_setting->data[0] =
|
||||
soc_info->rgltr[vreg_idx];
|
||||
|
||||
regulator_put(soc_info->rgltr[vreg_idx]);
|
||||
soc_info->rgltr[vreg_idx] = NULL;
|
||||
} else {
|
||||
CAM_ERR(CAM_SENSOR, "seq_val:%d > num_vreg: %d",
|
||||
power_setting->seq_val, num_vreg);
|
||||
@@ -2449,9 +2435,6 @@ int cam_sensor_util_power_down(struct cam_sensor_power_ctrl_t *ctrl,
|
||||
}
|
||||
ps->data[0] =
|
||||
soc_info->rgltr[ps->seq_val];
|
||||
regulator_put(
|
||||
soc_info->rgltr[ps->seq_val]);
|
||||
soc_info->rgltr[ps->seq_val] = NULL;
|
||||
} else {
|
||||
CAM_ERR(CAM_SENSOR,
|
||||
"seq_val:%d > num_vreg: %d",
|
||||
|
Fai riferimento in un nuovo problema
Block a user