From 2ca3aa523b0e477d22f9dca75cc6fb640a916171 Mon Sep 17 00:00:00 2001 From: Gaurav Jindal Date: Wed, 14 Apr 2021 14:40:01 +0530 Subject: [PATCH] msm: camera: isp: Add support for YUV422 10 bit Add support for YUV422 format 10 bit in CSID and bus drivers. CRs-Fixed: 2923254 Change-Id: Icecc367d88509b9ed08f5d0cab8c4da788886a0a Signed-off-by: Gaurav Jindal --- .../isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_core.c | 9 +++++++++ .../isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver3.c | 1 + include/uapi/camera/media/cam_defs.h | 5 +++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_core.c b/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_core.c index 91c9cabf0af4..1445bd098aa2 100644 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_core.c +++ b/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_core.c @@ -78,6 +78,7 @@ static int cam_ife_csid_is_ipp_ppp_format_supported( case CAM_FORMAT_DPCM_14_10_14: case CAM_FORMAT_DPCM_12_10_12: case CAM_FORMAT_YUV422: + case CAM_FORMAT_YUV422_10: rc = 0; break; default: @@ -260,6 +261,10 @@ static int cam_ife_csid_get_format_rdi( *decode_fmt = 0x1; *plain_fmt = 0x0; break; + case CAM_FORMAT_YUV422_10: + *decode_fmt = 0x2; + *plain_fmt = 0x1; + break; default: rc = -EINVAL; break; @@ -342,6 +347,10 @@ static int cam_ife_csid_get_format_ipp_ppp( *decode_fmt = 0x1; *plain_fmt = 0; break; + case CAM_FORMAT_YUV422_10: + *decode_fmt = 0x2; + *plain_fmt = 0x1; + break; default: CAM_ERR(CAM_ISP, "Unsupported format %d", in_format); diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver3.c b/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver3.c index b11a9e285ff7..3796f94bfe4d 100644 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver3.c +++ b/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver3.c @@ -1108,6 +1108,7 @@ static int cam_vfe_bus_ver3_acquire_wm( case CAM_FORMAT_PLAIN128: case CAM_FORMAT_PLAIN32_20: case CAM_FORMAT_YUV422: + case CAM_FORMAT_YUV422_10: rsrc_data->width = CAM_VFE_RDI_BUS_DEFAULT_WIDTH; rsrc_data->height = 0; rsrc_data->stride = CAM_VFE_RDI_BUS_DEFAULT_STRIDE; diff --git a/include/uapi/camera/media/cam_defs.h b/include/uapi/camera/media/cam_defs.h index 8716d1e7066c..9da3a636ab0e 100644 --- a/include/uapi/camera/media/cam_defs.h +++ b/include/uapi/camera/media/cam_defs.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ /* - * Copyright (c) 2016-2020, The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved. */ #ifndef __UAPI_CAM_DEFS_H__ @@ -179,7 +179,8 @@ struct cam_iommu_handle { #define CAM_FORMAT_PLAIN32 47 #define CAM_FORMAT_ARGB_16 48 #define CAM_FORMAT_PLAIN16_10_LSB 49 -#define CAM_FORMAT_MAX 50 +#define CAM_FORMAT_YUV422_10 50 +#define CAM_FORMAT_MAX 51 /* Pixel Patterns */ #define PIXEL_PATTERN_RGRGRG 0x0