msm: camera: common: Merge camera-kernel.3.1 changes in camera-kernel.4.0

msm: camera: cdm: Fix dangling pointer issue
msm: camera: cdm: change work record to atomic variable
msm: camera: utils: Adding device type to track device handles
msm: camera: tfe: Reduce stack footprint during bw vote
msm: camera: req_mgr: Thread switch delay detection mechanisms
msm: camera: cdm: Avoid submitting BL if FIFO is full
msm: camera: tfe: check cdm hang in the tfe config timeout
msm: camera: req_mgr: Delay detection mechanism
msm: camera: cdm: Debug info in case of cdm page fault
msm: camera: isp: Max context reduction for TFE in isp driver
msm: camera: ope: Maintain current clock value during acquire
msm: camera: req_mgr: Limit CAM_ERR log in case of no empty task
msm: camera: cdm: Decrement write-count only after Bl commit
msm: camera: isp: Added CSID recovery mechanism.

CRs-Fixed: 2792394
Change-Id: I1c7a903ae15b572acf3f6318cda7394cb6549c8d
Signed-off-by: Tejas Prajapati <tpraja@codeaurora.org>
Цей коміт міститься в:
Tejas Prajapati
2020-10-07 12:54:08 +05:30
джерело fabd1f7b0a
коміт 4574450a12
46 змінених файлів з 1134 додано та 256 видалено

Переглянути файл

@@ -848,6 +848,7 @@ int32_t cam_actuator_driver_cmd(struct cam_actuator_ctrl_t *a_ctrl,
bridge_params.v4l2_sub_dev_flag = 0;
bridge_params.media_entity_flag = 0;
bridge_params.priv = a_ctrl;
bridge_params.dev_id = CAM_ACTUATOR;
actuator_acq_dev.device_handle =
cam_create_device_hdl(&bridge_params);

Переглянути файл

@@ -6,6 +6,7 @@
#include <linux/module.h>
#include "cam_cci_core.h"
#include "cam_cci_dev.h"
#include "cam_req_mgr_workq.h"
static int32_t cam_cci_convert_type_to_num_bytes(
enum camera_sensor_i2c_type type)
@@ -1533,6 +1534,8 @@ static void cam_cci_write_async_helper(struct work_struct *work)
enum cci_i2c_master_t master;
struct cam_cci_master_info *cci_master_info;
cam_req_mgr_thread_switch_delay_detect(
write_async->workq_scheduled_ts);
cci_dev = write_async->cci_dev;
i2c_msg = &write_async->c_ctrl.cfg.cci_i2c_write_cfg;
master = write_async->c_ctrl.cci_info->cci_i2c_master;
@@ -1601,6 +1604,7 @@ static int32_t cam_cci_i2c_write_async(struct v4l2_subdev *sd,
cci_i2c_write_cfg_w->size = cci_i2c_write_cfg->size;
cci_i2c_write_cfg_w->delay = cci_i2c_write_cfg->delay;
write_async->workq_scheduled_ts = ktime_get();
queue_work(cci_dev->write_wq[write_async->queue], &write_async->work);
return rc;

Переглянути файл

@@ -31,6 +31,7 @@
#include "cam_cci_hwreg.h"
#include "cam_soc_util.h"
#include "cam_debug_util.h"
#include "cam_req_mgr_workq.h"
#define CCI_I2C_QUEUE_0_SIZE 128
#define CCI_I2C_QUEUE_1_SIZE 32
@@ -292,6 +293,7 @@ struct cci_write_async {
struct cam_cci_ctrl c_ctrl;
enum cci_i2c_queue_t queue;
struct work_struct work;
ktime_t workq_scheduled_ts;
enum cci_i2c_sync sync_en;
};

Переглянути файл

@@ -1110,6 +1110,7 @@ int32_t cam_csiphy_core_cfg(void *phy_dev,
bridge_params.v4l2_sub_dev_flag = 0;
bridge_params.media_entity_flag = 0;
bridge_params.priv = csiphy_dev;
bridge_params.dev_id = CAM_CSIPHY;
index = csiphy_dev->acquire_count;
csiphy_acq_dev.device_handle =
cam_create_device_hdl(&bridge_params);

Переглянути файл

@@ -351,6 +351,7 @@ static int32_t cam_eeprom_get_dev_handle(struct cam_eeprom_ctrl_t *e_ctrl,
bridge_params.v4l2_sub_dev_flag = 0;
bridge_params.media_entity_flag = 0;
bridge_params.priv = e_ctrl;
bridge_params.dev_id = CAM_EEPROM;
eeprom_acq_dev.device_handle =
cam_create_device_hdl(&bridge_params);

Переглянути файл

@@ -64,6 +64,7 @@ static int32_t cam_flash_driver_cmd(struct cam_flash_ctrl *fctrl,
bridge_params.v4l2_sub_dev_flag = 0;
bridge_params.media_entity_flag = 0;
bridge_params.priv = fctrl;
bridge_params.dev_id = CAM_FLASH;
flash_acq_dev.device_handle =
cam_create_device_hdl(&bridge_params);

Переглянути файл

@@ -82,6 +82,7 @@ static int cam_ois_get_dev_handle(struct cam_ois_ctrl_t *o_ctrl,
bridge_params.v4l2_sub_dev_flag = 0;
bridge_params.media_entity_flag = 0;
bridge_params.priv = o_ctrl;
bridge_params.dev_id = CAM_OIS;
ois_acq_dev.device_handle =
cam_create_device_hdl(&bridge_params);

Переглянути файл

@@ -835,6 +835,7 @@ int32_t cam_sensor_driver_cmd(struct cam_sensor_ctrl_t *s_ctrl,
bridge_params.v4l2_sub_dev_flag = 0;
bridge_params.media_entity_flag = 0;
bridge_params.priv = s_ctrl;
bridge_params.dev_id = CAM_SENSOR;
sensor_acq_dev.device_handle =
cam_create_device_hdl(&bridge_params);