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

Commit d10a5e3a authored by Sridhar Gujje's avatar Sridhar Gujje
Browse files

Merge commit '9930e819' into msm-4.9 - PC136



* commit '9930e819':
  msm: camera: cpas: Rate-limit CPAS IRQ error message
  msm: camera: Avoid unwanted variable overwrite in i2c probe
  msm: camera: sensor: Support slave address for every reg setting
  ARM: dts: msm: Add actuator node for rear aux camera on SDM670

Change-Id: I0a85c011263972394524e72efda3eff60c93828e
Signed-off-by: default avatarSridhar Gujje <sgujje@codeaurora.org>
parents 34e1614a 9930e819
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -129,7 +129,7 @@
		rgltr-load-current = <0>;
	};

	actuator_front: qcom,actuator@1 {
	actuator_rear_aux: qcom,actuator@1 {
		cell-index = <1>;
		reg = <0x1>;
		compatible = "qcom,actuator";
@@ -142,6 +142,19 @@
		rgltr-load-current = <0>;
	};

	actuator_front: qcom,actuator@2 {
		cell-index = <2>;
		reg = <0x2>;
		compatible = "qcom,actuator";
		cci-master = <1>;
		cam_vaf-supply = <&actuator_regulator>;
		regulator-names = "cam_vaf";
		rgltr-cntrl-support;
		rgltr-min-voltage = <2800000>;
		rgltr-max-voltage = <2800000>;
		rgltr-load-current = <0>;
	};

	ois_rear: qcom,ois@0 {
		cell-index = <0>;
		reg = <0x0>;
@@ -316,10 +329,11 @@
		compatible = "qcom,cam-sensor";
		reg = <0x1>;
		csiphy-sd-index = <1>;
		sensor-position-roll = <90>;
		sensor-position-roll = <270>;
		sensor-position-pitch = <0>;
		sensor-position-yaw = <180>;
		led-flash-src = <&led_flash_rear_aux>;
		actuator-src = <&actuator_rear_aux>;
		eeprom-src = <&eeprom_rear_aux>;
		cam_vio-supply = <&camera_vio_ldo>;
		cam_vana-supply = <&camera_vana_ldo>;
+16 −2
Original line number Diff line number Diff line
@@ -129,7 +129,7 @@
		rgltr-load-current = <0>;
	};

	actuator_front: qcom,actuator@1 {
	actuator_rear_aux: qcom,actuator@1 {
		cell-index = <1>;
		reg = <0x1>;
		compatible = "qcom,actuator";
@@ -142,6 +142,19 @@
		rgltr-load-current = <0>;
	};

	actuator_front: qcom,actuator@2 {
		cell-index = <2>;
		reg = <0x2>;
		compatible = "qcom,actuator";
		cci-master = <1>;
		cam_vaf-supply = <&actuator_regulator>;
		regulator-names = "cam_vaf";
		rgltr-cntrl-support;
		rgltr-min-voltage = <2800000>;
		rgltr-max-voltage = <2800000>;
		rgltr-load-current = <0>;
	};

	ois_rear: qcom,ois@0 {
		cell-index = <0>;
		reg = <0x0>;
@@ -316,10 +329,11 @@
		compatible = "qcom,cam-sensor";
		reg = <0x1>;
		csiphy-sd-index = <1>;
		sensor-position-roll = <90>;
		sensor-position-roll = <270>;
		sensor-position-pitch = <0>;
		sensor-position-yaw = <180>;
		led-flash-src = <&led_flash_rear_aux>;
		actuator-src = <&actuator_rear_aux>;
		eeprom-src = <&eeprom_rear_aux>;
		cam_vio-supply = <&camera_vio_ldo>;
		cam_vana-supply = <&camera_vana_ldo>;
+2 −1
Original line number Diff line number Diff line
@@ -374,7 +374,8 @@ static void cam_cpastop_work(struct work_struct *work)
		if ((payload->irq_status & camnoc_info->irq_err[i].sbm_port) &&
			(camnoc_info->irq_err[i].enable)) {
			irq_type = camnoc_info->irq_err[i].irq_type;
			CAM_ERR(CAM_CPAS, "Error occurred, type=%d", irq_type);
			CAM_ERR_RATE_LIMIT(CAM_CPAS,
				"Error occurred, type=%d", irq_type);
			memset(&irq_data, 0x0, sizeof(irq_data));
			irq_data.irq_type = (enum cam_camnoc_irq_type)irq_type;

+7 −2
Original line number Diff line number Diff line
@@ -488,6 +488,7 @@ int32_t cam_actuator_i2c_pkt_parse(struct cam_actuator_ctrl_t *a_ctrl,
				i2c_reg_settings->request_id = 0;
				i2c_reg_settings->is_settings_valid = 1;
				rc = cam_sensor_i2c_command_parser(
					&a_ctrl->io_master_info,
					i2c_reg_settings,
					&cmd_desc[i], 1);
				if (rc < 0) {
@@ -544,7 +545,9 @@ int32_t cam_actuator_i2c_pkt_parse(struct cam_actuator_ctrl_t *a_ctrl,
		offset = (uint32_t *)&csl_packet->payload;
		offset += csl_packet->cmd_buf_offset / sizeof(uint32_t);
		cmd_desc = (struct cam_cmd_buf_desc *)(offset);
		rc = cam_sensor_i2c_command_parser(i2c_reg_settings,
		rc = cam_sensor_i2c_command_parser(
			&a_ctrl->io_master_info,
			i2c_reg_settings,
			cmd_desc, 1);
		if (rc < 0) {
			CAM_ERR(CAM_ACTUATOR,
@@ -570,7 +573,9 @@ int32_t cam_actuator_i2c_pkt_parse(struct cam_actuator_ctrl_t *a_ctrl,
		offset = (uint32_t *)&csl_packet->payload;
		offset += csl_packet->cmd_buf_offset / sizeof(uint32_t);
		cmd_desc = (struct cam_cmd_buf_desc *)(offset);
		rc = cam_sensor_i2c_command_parser(i2c_reg_settings,
		rc = cam_sensor_i2c_command_parser(
			&a_ctrl->io_master_info,
			i2c_reg_settings,
			cmd_desc, 1);
		if (rc < 0) {
			CAM_ERR(CAM_ACTUATOR,
+7 −5
Original line number Diff line number Diff line
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -69,6 +69,9 @@ int32_t cam_eeprom_update_i2c_info(struct cam_eeprom_ctrl_t *e_ctrl,
		cci_client->retries = 3;
		cci_client->id_map = 0;
		cci_client->i2c_freq_mode = i2c_info->i2c_freq_mode;
	} else if (e_ctrl->io_master_info.master_type == I2C_MASTER) {
		e_ctrl->io_master_info.client->addr = i2c_info->slave_addr;
		CAM_DBG(CAM_EEPROM, "Slave addr: 0x%x", i2c_info->slave_addr);
	}
	return 0;
}
@@ -188,6 +191,9 @@ static int cam_eeprom_i2c_driver_probe(struct i2c_client *client,
	e_ctrl->io_master_info.master_type = I2C_MASTER;
	e_ctrl->io_master_info.client = client;
	e_ctrl->eeprom_device_type = MSM_CAMERA_I2C_DEVICE;
	e_ctrl->cal_data.mapdata = NULL;
	e_ctrl->cal_data.map = NULL;
	e_ctrl->userspace_probe = false;

	rc = cam_eeprom_parse_dt(e_ctrl);
	if (rc) {
@@ -205,10 +211,6 @@ static int cam_eeprom_i2c_driver_probe(struct i2c_client *client,
	if (rc)
		goto free_soc;

	e_ctrl->cal_data.mapdata = NULL;
	e_ctrl->cal_data.map = NULL;
	e_ctrl->userspace_probe = false;

	if (soc_private->i2c_info.slave_addr != 0)
		e_ctrl->io_master_info.client->addr =
			soc_private->i2c_info.slave_addr;
Loading