msm: camera: cdm: Remove Kernel Internal Buffer for Gen IRQ

Currently we allocate the memory for CDM GENIRQ command
within the Kernel on every stream on. Presil framework
do not have an ability to transfer the kernel only buffers
to the user daemon. For that reason we need to add support
to use the user allocated command buffer instead of the
kernel generated memory to add the GenIRQ cdm command
while submitting BLs. This change also helps to reduce
the stream on and stream off latency by not having to
allocate and free the GENIRQ memory on every stream on and
stream off respectively.

CRs-Fixed: 3115399
Change-Id: Ic159efd56fb9c4480ed1eb25cf2c058cbb914332
Signed-off-by: Jigar Agrawal <quic_jigar@quicinc.com>
This commit is contained in:
Jigar Agrawal
2022-01-12 09:33:42 -08:00
committed by Camera Software Integration
부모 4767d2ccb1
커밋 3c8d5b58ea
12개의 변경된 파일252개의 추가작업 그리고 306개의 파일을 삭제

파일 보기

@@ -1,6 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#ifndef _CAM_CDM_API_H_
@@ -9,6 +10,7 @@
#include <media/cam_defs.h>
#include "cam_cdm_util.h"
#include "cam_soc_util.h"
#include "cam_packet_util.h"
#define CAM_CDM_BL_CMD_MAX 25
@@ -139,6 +141,7 @@ struct cam_cdm_bl_cmd {
* @type : type of the submitted bl cmd address.
* @cmd_arrary_count : Input number of BL commands to be submitted to CDM
* @cookie : Cookie if the callback is gen irq status
* @avail_buff_size: Available buffer size in bytes
* @bl_cmd_array : Input payload holding the BL cmd's arrary
* to be sumbitted.
*
@@ -149,6 +152,7 @@ struct cam_cdm_bl_request {
void *userdata;
enum cam_cdm_bl_cmd_addr_type type;
uint32_t cmd_arrary_count;
struct cam_kmd_buf_info *genirq_buff;
uint64_t cookie;
struct cam_cdm_bl_cmd cmd[1];
};