Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf293b92 authored by frankcheng's avatar frankcheng Committed by frankcheng(168744)
Browse files

Camera Module Rear 2nd Source Backward Compatibility

Change-Id: Id3c60baca8581ea92e8fb73d44d4f7a8a8194bc8
(cherry picked from commit 081cba344c4b8dbe16bb6a3e8ec2ed8caa414f80)
parent 60009652
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
@@ -31,6 +31,8 @@ DEFINE_MSM_MUTEX(msm_actuator_mutex);
#define PARK_LENS_SMALL_STEP 3
#define MAX_QVALUE 4096

extern int nActuatorAK7374;

static struct v4l2_file_operations msm_actuator_v4l2_subdev_fops;
static int32_t msm_actuator_power_up(struct msm_actuator_ctrl_t *a_ctrl);
static int32_t msm_actuator_power_down(struct msm_actuator_ctrl_t *a_ctrl);
@@ -119,7 +121,18 @@ static void msm_actuator_parse_i2c_params(struct msm_actuator_ctrl_t *a_ctrl,
				((hw_dword & write_arr[i].hw_mask) >>
				write_arr[i].hw_shift);
//[Camera] Modify for IMX363 module AF Person Liu 20190509 S
<<<<<<< HEAD   (600096 msm: adsprpc: maintain local copy of rpra offloaded to DSP)
				value = abs(1023-value);
=======
//[Camera] Modify for IMX363 module AF Frank Cheng 20191225 S
// temporary skip
				pr_err("%s:%d nActuatorAK7374: %d\n",
  				__func__, __LINE__,
  				nActuatorAK7374);

				if(nActuatorAK7374 == 0)value = abs(1023-value);
//[Camera] Modify for IMX363 module AF Frank Cheng 20191225 S
>>>>>>> CHANGE (081cba Camera Module Rear 2nd Source Backward Compatibility)
//[Camera] Modify for IMX363 module AF Person Liu 20190509 S
			if (write_arr[i].reg_addr != 0xFFFF) {
				i2c_byte1 = write_arr[i].reg_addr;
@@ -1578,6 +1591,7 @@ static int msm_actuator_close(struct v4l2_subdev *sd,
		return -EINVAL;
	}
	mutex_lock(a_ctrl->actuator_mutex);
<<<<<<< HEAD   (600096 msm: adsprpc: maintain local copy of rpra offloaded to DSP)
	if (a_ctrl->act_device_type == MSM_CAMERA_PLATFORM_DEVICE &&
		a_ctrl->actuator_state != ACT_DISABLE_STATE) {
		rc = a_ctrl->i2c_client.i2c_func_tbl->i2c_util(
@@ -1585,6 +1599,25 @@ static int msm_actuator_close(struct v4l2_subdev *sd,
		if (rc < 0)
			pr_err("cci_init failed\n");
	}
=======
//[Camera] Modify for IMX363 module AF Frank Cheng 20191225 S
// temporary skip
//				pr_err("%s:%d nActuatorAK7374: %d\n",
//  				__func__, __LINE__,
//  				nActuatorAK7374);

				
        if(nActuatorAK7374 == 0){
                if (a_ctrl->act_device_type == MSM_CAMERA_PLATFORM_DEVICE &&
                        a_ctrl->actuator_state != ACT_DISABLE_STATE) {
                        rc = a_ctrl->i2c_client.i2c_func_tbl->i2c_util(
                                &a_ctrl->i2c_client, MSM_CCI_RELEASE);
                        if (rc < 0)
                                pr_err("cci_init failed\n");
                }
        }
//[Camera] Modify for IMX363 module AF Frank Cheng 20191225 S
>>>>>>> CHANGE (081cba Camera Module Rear 2nd Source Backward Compatibility)
	kfree(a_ctrl->i2c_reg_tbl);
	a_ctrl->i2c_reg_tbl = NULL;
	a_ctrl->actuator_state = ACT_DISABLE_STATE;
+13 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
#include "msm_cci.h"
#include "msm_camera_dt_util.h"
#include "msm_sensor_driver.h"
#include "../actuator/msm_actuator.h"

/* Logging macro */
#undef CDBG
@@ -25,6 +26,8 @@

#define SENSOR_MAX_MOUNTANGLE (360)

int nActuatorAK7374 = 0;

static struct v4l2_file_operations msm_sensor_v4l2_subdev_fops;
static int32_t msm_sensor_driver_platform_probe(struct platform_device *pdev);

@@ -187,6 +190,7 @@ static int32_t msm_sensor_fill_eeprom_subdevid_by_name(
	if (eeprom_name_len >= MAX_SENSOR_NAME)
		return -EINVAL;


	sensor_info = s_ctrl->sensordata->sensor_info;
	eeprom_subdev_id = &sensor_info->subdev_id[SUB_MODULE_EEPROM];
	/*
@@ -1136,7 +1140,16 @@ int32_t msm_sensor_driver_probe(void *setting,
		goto free_camera_info;
	}

	pr_err("%s:%d s_ctrl->sensordata->actuator_name: %s\n",
  				__func__, __LINE__,
  				s_ctrl->sensordata->actuator_name);
	if(strcmp(s_ctrl->sensordata->actuator_name, "ak7374") == 0)nActuatorAK7374 = 1;
				pr_err("%s:%d nActuatorAK7374: %d\n",
  				__func__, __LINE__,
  				nActuatorAK7374);
  
	pr_err("%s probe succeeded", slave_info->sensor_name);
	if(strcmp(slave_info->sensor_name, "imx363") == 0)pr_err("imx363 compare success");

	s_ctrl->bypass_video_node_creation =
		slave_info->bypass_video_node_creation;