msm: camera: common: Enhance seamless switch support

Mode switch delay is an inherent property of a sensor.
Similarly IFE has a static switch delay of 1. For sensors
with switch delay > 1 need special handling on certain
occasions. It is possible that switch settings was applied
to sensor, and on the next frame if there is a flash inject
delay or a packet delay, sensor & IFE are bound to go out of sync.
To address such cases, IFE will decide if it needs to apply
MUP on a dropped frame or not, along with any corresponding
IQ settings.

CRs-Fixed: 3320774
Change-Id: I355fa0f8b767d44bd3fb87c91b3cbf56fb9c3933
Signed-off-by: Karthik Anantha Ram <quic_kartanan@quicinc.com>
此提交包含在:
Karthik Anantha Ram
2022-10-26 17:13:36 -07:00
提交者 Camera Software Integration
父節點 06142d3894
當前提交 a5b60b58b2
共有 11 個檔案被更改,包括 240 行新增45 行删除

查看文件

@@ -303,6 +303,15 @@ struct cam_isp_context_event_record {
* @last_applied_jiffies: Record the jiffiest of last applied req
* @vfe_bus_comp_grp: Vfe bus comp group record
* @sfe_bus_comp_grp: Sfe bus comp group record
* @mswitch_default_apply_delay_max_cnt: Max mode switch delay among all devices connected
* on the same link as this ISP context
* @mswitch_default_apply_delay_ref_cnt: Ref cnt for this context to decide when to apply
* mode switch settings
* @handle_mswitch: Indicates if IFE needs to explicitly handle mode switch
* on frame skip callback from request manager.
* This is decided based on the max mode switch delay published
* by other devices on the link as part of link setup
* @mode_switch_en: Indicates if mode switch is enabled
*
*/
struct cam_isp_context {
@@ -366,6 +375,10 @@ struct cam_isp_context {
uint64_t last_applied_jiffies;
struct cam_isp_context_comp_record *vfe_bus_comp_grp;
struct cam_isp_context_comp_record *sfe_bus_comp_grp;
int32_t mswitch_default_apply_delay_max_cnt;
atomic_t mswitch_default_apply_delay_ref_cnt;
bool handle_mswitch;
bool mode_switch_en;
};
/**