msm: camera: isp: Add new WM port for VFE880

Add output port for STATS_ALSC for VFE880 and update all mappings
associated with the port.

CRs-Fixed: 3168484
Change-Id: I0a674e7d2d6fe5fa5a51ff31e22f066fa222e5b7
Signed-off-by: Anand Ravi <quic_ananravi@quicinc.com>
This commit is contained in:
Anand Ravi
2022-02-25 09:58:16 -08:00
committed by Camera Software Integration
parent 4b474624a1
commit 2dc1ecbc90
5 changed files with 15 additions and 1 deletions

View File

@@ -1037,6 +1037,7 @@ static char *__cam_isp_ife_sfe_resource_handle_id_to_type(
case CAM_ISP_IFE_OUT_RES_STATS_CAF: return "IFE_STATS_CAF"; case CAM_ISP_IFE_OUT_RES_STATS_CAF: return "IFE_STATS_CAF";
case CAM_ISP_IFE_OUT_RES_STATS_BAYER_RS: return "IFE_STATS_BAYER_RS"; case CAM_ISP_IFE_OUT_RES_STATS_BAYER_RS: return "IFE_STATS_BAYER_RS";
case CAM_ISP_IFE_OUT_RES_PDAF_PARSED_DATA: return "IFE_PDAF_PARSED_DATA"; case CAM_ISP_IFE_OUT_RES_PDAF_PARSED_DATA: return "IFE_PDAF_PARSED_DATA";
case CAM_ISP_IFE_OUT_RES_STATS_ALSC: return "IFE_STATS_ALSC";
/* SFE output ports */ /* SFE output ports */
case CAM_ISP_SFE_OUT_RES_RDI_0: return "SFE_RDI_0"; case CAM_ISP_SFE_OUT_RES_RDI_0: return "SFE_RDI_0";
case CAM_ISP_SFE_OUT_RES_RDI_1: return "SFE_RDI_1"; case CAM_ISP_SFE_OUT_RES_RDI_1: return "SFE_RDI_1";

View File

@@ -1,6 +1,7 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
/* /*
* Copyright (c) 2017-2021, The Linux Foundation. All rights reserved. * Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*/ */
#include <linux/module.h> #include <linux/module.h>

View File

@@ -323,6 +323,7 @@ static bool cam_vfe_bus_ver3_can_be_secure(uint32_t out_type)
case CAM_VFE_BUS_VER3_VFE_OUT_STATS_IHIST: case CAM_VFE_BUS_VER3_VFE_OUT_STATS_IHIST:
case CAM_VFE_BUS_VER3_VFE_OUT_STATS_CAF: case CAM_VFE_BUS_VER3_VFE_OUT_STATS_CAF:
case CAM_VFE_BUS_VER3_VFE_OUT_STATS_BAYER_RS: case CAM_VFE_BUS_VER3_VFE_OUT_STATS_BAYER_RS:
case CAM_VFE_BUS_VER3_VFE_OUT_STATS_ALSC:
default: default:
return false; return false;
} }
@@ -438,6 +439,9 @@ static enum cam_vfe_bus_ver3_vfe_out_type
case CAM_ISP_IFE_OUT_RES_PDAF_PARSED_DATA: case CAM_ISP_IFE_OUT_RES_PDAF_PARSED_DATA:
vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_PDAF_PARSED; vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_PDAF_PARSED;
break; break;
case CAM_ISP_IFE_OUT_RES_STATS_ALSC:
vfe_out_type = CAM_VFE_BUS_VER3_VFE_OUT_STATS_ALSC;
break;
default: default:
CAM_WARN(CAM_ISP, "Invalid isp res id: %d , assigning max", CAM_WARN(CAM_ISP, "Invalid isp res id: %d , assigning max",
res_type); res_type);
@@ -560,6 +564,9 @@ static int cam_vfe_bus_ver3_get_comp_vfe_out_res_id_list(
if (comp_mask & (BIT_ULL(CAM_VFE_BUS_VER3_VFE_OUT_PDAF_PARSED))) if (comp_mask & (BIT_ULL(CAM_VFE_BUS_VER3_VFE_OUT_PDAF_PARSED)))
out_list[count++] = CAM_ISP_IFE_OUT_RES_PDAF_PARSED_DATA; out_list[count++] = CAM_ISP_IFE_OUT_RES_PDAF_PARSED_DATA;
if (comp_mask & (BIT_ULL(CAM_VFE_BUS_VER3_VFE_OUT_STATS_ALSC)))
out_list[count++] = CAM_ISP_IFE_OUT_RES_STATS_ALSC;
*num_out = count; *num_out = count;
return 0; return 0;
} }
@@ -1220,7 +1227,8 @@ static int cam_vfe_bus_ver3_acquire_wm(
rsrc_data->width = rsrc_data->width / 2; rsrc_data->width = rsrc_data->width / 2;
rsrc_data->en_cfg = 0x1; rsrc_data->en_cfg = 0x1;
} else if (vfe_out_res_id == CAM_VFE_BUS_VER3_VFE_OUT_AWB_BFW) { } else if ((vfe_out_res_id == CAM_VFE_BUS_VER3_VFE_OUT_AWB_BFW) ||
(vfe_out_res_id == CAM_VFE_BUS_VER3_VFE_OUT_STATS_ALSC)) {
switch (rsrc_data->format) { switch (rsrc_data->format) {
case CAM_FORMAT_PLAIN64: case CAM_FORMAT_PLAIN64:
rsrc_data->width = 0; rsrc_data->width = 0;

View File

@@ -1,6 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */
/* /*
* Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*/ */
@@ -88,6 +89,7 @@ enum cam_vfe_bus_ver3_vfe_out_type {
CAM_VFE_BUS_VER3_VFE_OUT_STATS_CAF, CAM_VFE_BUS_VER3_VFE_OUT_STATS_CAF,
CAM_VFE_BUS_VER3_VFE_OUT_STATS_BAYER_RS, CAM_VFE_BUS_VER3_VFE_OUT_STATS_BAYER_RS,
CAM_VFE_BUS_VER3_VFE_OUT_PDAF_PARSED, CAM_VFE_BUS_VER3_VFE_OUT_PDAF_PARSED,
CAM_VFE_BUS_VER3_VFE_OUT_STATS_ALSC,
CAM_VFE_BUS_VER3_VFE_OUT_MAX, CAM_VFE_BUS_VER3_VFE_OUT_MAX,
}; };

View File

@@ -1,6 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
/* /*
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved. * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*/ */
#ifndef __UAPI_CAM_ISP_IFE_H__ #ifndef __UAPI_CAM_ISP_IFE_H__
@@ -45,6 +46,7 @@
#define CAM_ISP_IFE_OUT_RES_STATS_CAF (CAM_ISP_IFE_OUT_RES_BASE + 33) #define CAM_ISP_IFE_OUT_RES_STATS_CAF (CAM_ISP_IFE_OUT_RES_BASE + 33)
#define CAM_ISP_IFE_OUT_RES_STATS_BAYER_RS (CAM_ISP_IFE_OUT_RES_BASE + 34) #define CAM_ISP_IFE_OUT_RES_STATS_BAYER_RS (CAM_ISP_IFE_OUT_RES_BASE + 34)
#define CAM_ISP_IFE_OUT_RES_PDAF_PARSED_DATA (CAM_ISP_IFE_OUT_RES_BASE + 35) #define CAM_ISP_IFE_OUT_RES_PDAF_PARSED_DATA (CAM_ISP_IFE_OUT_RES_BASE + 35)
#define CAM_ISP_IFE_OUT_RES_STATS_ALSC (CAM_ISP_IFE_OUT_RES_BASE + 36)
/* IFE input port resource type (global unique) */ /* IFE input port resource type (global unique) */
#define CAM_ISP_IFE_IN_RES_BASE 0x4000 #define CAM_ISP_IFE_IN_RES_BASE 0x4000