Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d766ad87 authored by Om Parkash's avatar Om Parkash
Browse files

msm: camera: Add 12 bit pix_format support in vfe fetch engine



Add 12 bit pix_format support in vfe fetch engine:
V4L2_PIX_FMT_P16BGGR12
V4L2_PIX_FMT_P16GBRG12
V4L2_PIX_FMT_P16GRBG12
V4L2_PIX_FMT_P16RGGB12.

Change-Id: I6e1673c3fd3b9b602aacab8dab2a767fb0aa016c
Signed-off-by: default avatarOm Parkash <oparkash@codeaurora.org>
parent bdd6da44
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
/* Copyright (c) 2013-2019, The Linux Foundation. All rights reserved.
/* Copyright (c) 2013-2020, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -1291,6 +1291,10 @@ void msm_vfe47_cfg_fetch_engine(struct vfe_device *vfe_dev,
		case V4L2_PIX_FMT_P16GBRG10:
		case V4L2_PIX_FMT_P16GRBG10:
		case V4L2_PIX_FMT_P16RGGB10:
		case V4L2_PIX_FMT_P16BGGR12:
		case V4L2_PIX_FMT_P16GBRG12:
		case V4L2_PIX_FMT_P16GRBG12:
		case V4L2_PIX_FMT_P16RGGB12:
			main_unpack_pattern = 0xB210;
			break;
		default:
+6 −4
Original line number Diff line number Diff line
/* Copyright (c) 2013-2019, The Linux Foundation. All rights reserved.
/* Copyright (c) 2013-2020, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -1021,6 +1021,8 @@ void msm_isp_increment_frame_id(struct vfe_device *vfe_dev,
				ISP_EVENT_REG_UPDATE_MISSING);
		}
	}
	vfe_dev->isp_page->kernel_sofid =
		vfe_dev->axi_data.src_info[frame_src].frame_id;
}

static void msm_isp_update_pd_stats_idx(struct vfe_device *vfe_dev,
@@ -2569,6 +2571,7 @@ static void msm_isp_input_enable(struct vfe_device *vfe_dev,
		if (axi_data->src_info[i].active)
			continue;
		/* activate the input since it is deactivated */
		if (!ext_read)
			axi_data->src_info[i].frame_id = 0;
		vfe_dev->irq_sof_id = 0;
		if (axi_data->src_info[i].input_mux != EXTERNAL_READ)
@@ -3780,8 +3783,7 @@ static int msm_isp_request_frame(struct vfe_device *vfe_dev,
		return 0;
	} else if ((vfe_dev->axi_data.src_info[frame_src].active && (frame_id !=
		vfe_dev->axi_data.src_info[frame_src].frame_id +
		vfe_dev->axi_data.src_info[frame_src].sof_counter_step)) ||
		((!vfe_dev->axi_data.src_info[frame_src].active))) {
		vfe_dev->axi_data.src_info[frame_src].sof_counter_step))) {
		pr_debug("%s:%d invalid frame id %d cur frame id %d pix %d\n",
			__func__, __LINE__, frame_id,
			vfe_dev->axi_data.src_info[frame_src].frame_id,