浏览代码

msm: camera: sensor: update aon_camera_id to uint32 value

Change aon_camera_id to uint32 to read correct value from dtsi
Since more than one aon cameras are present.

CRs-Fixed: 3355901
Change-Id: I2a7723fa5b4f6c3a9a27d7119bdab2c65c4e620d
Signed-off-by: Ridhi Shah  <[email protected]>
Ridhi Shah 2 年之前
父节点
当前提交
5abce6f5c7

+ 1 - 1
drivers/cam_sensor_module/cam_sensor/cam_sensor_dev.h

@@ -144,7 +144,7 @@ struct cam_sensor_ctrl_t {
 	uint16_t                       pipeline_delay;
 	uint16_t                       modeswitch_delay;
 	char                           sensor_name[CAM_SENSOR_NAME_MAX_SIZE];
-	uint8_t                        aon_camera_id;
+	uint32_t                       aon_camera_id;
 	int64_t                        last_updated_req;
 	int64_t                        last_applied_req;
 	bool                           is_stopped_by_user;

+ 19 - 2
drivers/cam_sensor_module/cam_sensor/cam_sensor_soc.c

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
  * Copyright (c) 2017-2019, 2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #include <linux/of.h>
@@ -255,9 +255,26 @@ static int32_t cam_sensor_driver_get_dt_data(struct cam_sensor_ctrl_t *s_ctrl)
 		sensordata->pos_yaw = 360;
 	}
 
-	if (of_property_read_u8(of_node, "aon-camera-id", &s_ctrl->aon_camera_id)) {
+	if (of_property_read_u32(of_node, "aon-camera-id", &s_ctrl->aon_camera_id)) {
 		CAM_DBG(CAM_SENSOR, "cell_idx: %d is not used for AON usecase", soc_info->index);
 		s_ctrl->aon_camera_id = NOT_AON_CAM;
+	} else {
+		CAM_INFO(CAM_SENSOR,
+			"AON Sensor detected in cell_idx: %d aon_camera_id: %d phy_index: %d",
+			soc_info->index, s_ctrl->aon_camera_id,
+			s_ctrl->sensordata->subdev_id[SUB_MODULE_CSIPHY]);
+		if ((s_ctrl->sensordata->subdev_id[SUB_MODULE_CSIPHY] == 2) &&
+			(s_ctrl->aon_camera_id != AON_CAM2)) {
+			CAM_ERR(CAM_SENSOR, "Incorrect AON camera id for cphy_index %d",
+				s_ctrl->sensordata->subdev_id[SUB_MODULE_CSIPHY]);
+			s_ctrl->aon_camera_id = NOT_AON_CAM;
+		}
+		if ((s_ctrl->sensordata->subdev_id[SUB_MODULE_CSIPHY] == 4) &&
+			(s_ctrl->aon_camera_id != AON_CAM1)) {
+			CAM_ERR(CAM_SENSOR, "Incorrect AON camera id for cphy_index %d",
+				s_ctrl->sensordata->subdev_id[SUB_MODULE_CSIPHY]);
+			s_ctrl->aon_camera_id = NOT_AON_CAM;
+		}
 	}
 
 	rc = cam_sensor_util_aon_registration(