Эх сурвалжийг харах

msm: camera: sensor: Use bubble packet for request reapply

Use bubble packet for request reapply for all scenarios
irrespective of mode switch. Bubble packet carries exposure
updates as well.

CRs-Fixed: 3689201
Change-Id: If2170fd77ea7fe88155ed7101fc053d13bd592a8
Signed-off-by: Karthik Anantha Ram <[email protected]>
(cherry picked from commit c0b8a1bad215c6ba71851897ad642611f085dfb3)
Karthik Anantha Ram 1 жил өмнө
parent
commit
6d725cc619

+ 7 - 13
drivers/cam_sensor_module/cam_sensor/cam_sensor_core.c

@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
  * Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
- * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #include <linux/module.h>
@@ -1965,18 +1965,12 @@ int32_t cam_sensor_apply_request(struct cam_req_mgr_apply_request *apply)
 	}
 
 	if ((apply->recovery) && (apply->request_id > 0)) {
-		curr_idx = apply->request_id % MAX_PER_FRAME_ARRAY;
-		last_applied_idx = s_ctrl->last_applied_req % MAX_PER_FRAME_ARRAY;
-
-		/*
-		 * If the sensor resolution index in current req isn't same with
-		 * last applied index, we should apply bubble update.
-		 */
-
-		if ((s_ctrl->sensor_res[curr_idx].res_index !=
-			s_ctrl->sensor_res[last_applied_idx].res_index) ||
-			(s_ctrl->sensor_res[curr_idx].feature_mask !=
-			s_ctrl->sensor_res[last_applied_idx].feature_mask)) {
+		if (apply->request_id <= s_ctrl->last_applied_req) {
+			/*
+			 * Use bubble update for request reapply
+			 */
+			curr_idx = apply->request_id % MAX_PER_FRAME_ARRAY;
+			last_applied_idx = s_ctrl->last_applied_req % MAX_PER_FRAME_ARRAY;
 			opcode = CAM_SENSOR_PACKET_OPCODE_SENSOR_BUBBLE_UPDATE;
 			CAM_INFO(CAM_REQ,
 				"Sensor[%d] update req id: %lld [last_applied: %lld] with opcode:%d recovery: %d last_applied_res_idx: %u current_res_idx: %u",