msm: camera: tfe: Add support for TFE BW limiter

Add blob to allow userland to configure BW limter for TFE WMs.

CRs-Fixed: 3505174
Change-Id: I5c671cbcfa5557082c4ae5302471a2ece45294ab
Signed-off-by: Dharmender Sharma <quic_dharshar@quicinc.com>
Signed-off-by: Yash Upadhyay <quic_yupadhya@quicinc.com>
This commit is contained in:
Yash Upadhyay
2023-06-12 14:41:38 +05:30
committed by Camera Software Integration
parent 033efcbed0
commit c98bea4b04
8 changed files with 329 additions and 15 deletions

View File

@@ -1,6 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
/*
* Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
*/
#ifndef __UAPI_CAM_TFE_H__
@@ -71,6 +72,7 @@
#define CAM_ISP_TFE_GENERIC_BLOB_TYPE_CLOCK_CONFIG 1
#define CAM_ISP_TFE_GENERIC_BLOB_TYPE_BW_CONFIG_V2 2
#define CAM_ISP_TFE_GENERIC_BLOB_TYPE_CSID_CLOCK_CONFIG 3
#define CAM_ISP_TFE_GENERIC_BLOB_TYPE_BW_LIMITER_CFG 16
/* DSP mode */
#define CAM_ISP_TFE_DSP_MODE_NONE 0
@@ -473,6 +475,36 @@ struct cam_isp_tfe_acquire_hw_info {
__u64 data;
};
/**
* struct cam_isp_tfe_wm_bw_limiter_config - ISP TFE write master
* BW limter config
*
*
* @res_type : output resource type defined in file cam_isp_tfe.h
* @enable_limiter : 0 for disable else enabled
* @counter_limit : Max counter value
*/
struct cam_isp_tfe_wm_bw_limiter_config {
__u32 res_type;
__u32 enable_limiter;
__u32 counter_limit[CAM_PACKET_MAX_PLANES];
};
/**
* struct cam_isp_tfe_out_rsrc_bw_limiter_config - ISP TFE out rsrc BW limiter config
*
* Configure BW limiter for ISP TFE WMs
*
* @version : Version field
* @num_ports : Number of ports
* @bw_limit_config : WM BW limiter config
*/
struct cam_isp_tfe_out_rsrc_bw_limiter_config {
__u32 version;
__u32 num_ports;
struct cam_isp_tfe_wm_bw_limiter_config bw_limiter_config[1];
};
#define CAM_TFE_ACQUIRE_COMMON_VER0 0x1000
#define CAM_TFE_ACQUIRE_COMMON_SIZE_VER0 0x0