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

Commit 974ca5d6 authored by Haritha Chintalapati's avatar Haritha Chintalapati Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: camera: isp: Choose appropriate WM for frame header" into camera-kernel.lnx.4.0

parents c1d9e460 b9e82668
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -6500,6 +6500,7 @@ static int cam_ife_mgr_prepare_hw_update(void *hw_mgr_priv,
			return rc;

		frame_header_enable = true;
		prepare_hw_data->frame_header_res_id = 0x0;
	}

	if (ctx->internal_cdm)
@@ -6605,6 +6606,14 @@ static int cam_ife_mgr_prepare_hw_update(void *hw_mgr_priv,
		}
	}

	/* Check if frame header was enabled for any WM */
	if ((ctx->custom_config & CAM_IFE_CUSTOM_CFG_FRAME_HEADER_TS) &&
		(prepare->num_out_map_entries) &&
		(!prepare_hw_data->frame_header_res_id)) {
		CAM_ERR(CAM_ISP, "Failed to configure frame header");
		goto end;
	}

	/*
	 * reg update will be done later for the initial configure.
	 * need to plus one to the op_code and only take the lower
+11 −6
Original line number Diff line number Diff line
@@ -700,6 +700,7 @@ int cam_isp_add_io_buffers(
			wm_update.num_buf   = plane_id;
			wm_update.io_cfg    = &io_cfg[i];
			wm_update.frame_header = 0;
			wm_update.fh_enabled = false;

			for (plane_id = 0; plane_id < CAM_PACKET_MAX_PLANES;
				plane_id++)
@@ -709,14 +710,8 @@ int cam_isp_add_io_buffers(
			if ((frame_header_info->frame_header_enable) &&
				!(frame_header_info->frame_header_res_id)) {
				wm_update.frame_header = iova_addr;
				frame_header_info->frame_header_res_id =
					res->res_id;
				wm_update.local_id =
					prepare->packet->header.request_id;
				CAM_DBG(CAM_ISP,
					"Frame header enabled for res: 0x%x iova: %pK",
					frame_header_info->frame_header_res_id,
					wm_update.frame_header);
			}

			update_buf.cmd.size = kmd_buf_remain_size;
@@ -736,6 +731,16 @@ int cam_isp_add_io_buffers(
				rc = -ENOMEM;
				return rc;
			}

			if (wm_update.fh_enabled) {
				frame_header_info->frame_header_res_id =
					res->res_id;
				CAM_DBG(CAM_ISP,
					"Frame header enabled for res: 0x%x iova: %pK",
					frame_header_info->frame_header_res_id,
					wm_update.frame_header);
			}

			io_cfg_used_bytes += update_buf.cmd.used_bytes;

			if (!out_map_entries) {
+2 −0
Original line number Diff line number Diff line
@@ -249,6 +249,7 @@ struct cam_isp_hw_cmd_buf_update {
 * @ image_buf_offset: image buffer address offset array
 * @ num_buf:          Number of buffers in the image_buf array
 * @ frame_header:     frame header iova
 * @ fh_enabled:       flag to indicate if this WM enables frame header
 * @ local_id:         local id for the wm
 * @ width:            width of scratch buffer
 * @ height:           height of scratch buffer
@@ -262,6 +263,7 @@ struct cam_isp_hw_get_wm_update {
	uint32_t                        image_buf_offset[CAM_PACKET_MAX_PLANES];
	uint32_t                        num_buf;
	uint64_t                        frame_header;
	bool                            fh_enabled;
	uint32_t                        local_id;
	uint32_t                        width;
	uint32_t                        height;
+0 −15
Original line number Diff line number Diff line
@@ -481,9 +481,6 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
			.image_cfg_1              = 0x0000AE10,
			.image_cfg_2              = 0x0000AE14,
			.packer_cfg               = 0x0000AE18,
			.frame_header_addr        = 0x0000AE20,
			.frame_header_incr        = 0x0000AE24,
			.frame_header_cfg         = 0x0000AE28,
			.line_done_cfg            = 0,
			.irq_subsample_period     = 0x0000AE30,
			.irq_subsample_pattern    = 0x0000AE34,
@@ -510,9 +507,6 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
			.image_cfg_1              = 0x0000AF10,
			.image_cfg_2              = 0x0000AF14,
			.packer_cfg               = 0x0000AF18,
			.frame_header_addr        = 0x0000AF20,
			.frame_header_incr        = 0x0000AF24,
			.frame_header_cfg         = 0x0000AF28,
			.line_done_cfg            = 0,
			.irq_subsample_period     = 0x0000AF30,
			.irq_subsample_pattern    = 0x0000AF34,
@@ -597,9 +591,6 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
			.image_cfg_1              = 0x0000B210,
			.image_cfg_2              = 0x0000B214,
			.packer_cfg               = 0x0000B218,
			.frame_header_addr        = 0x0000B220,
			.frame_header_incr        = 0x0000B224,
			.frame_header_cfg         = 0x0000B228,
			.line_done_cfg            = 0,
			.irq_subsample_period     = 0x0000B230,
			.irq_subsample_pattern    = 0x0000B234,
@@ -626,9 +617,6 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
			.image_cfg_1              = 0x0000B310,
			.image_cfg_2              = 0x0000B314,
			.packer_cfg               = 0x0000B318,
			.frame_header_addr        = 0x0000B320,
			.frame_header_incr        = 0x0000B324,
			.frame_header_cfg         = 0x0000B328,
			.line_done_cfg            = 0,
			.irq_subsample_period     = 0x0000B330,
			.irq_subsample_pattern    = 0x0000B334,
@@ -684,9 +672,6 @@ static struct cam_vfe_bus_ver3_hw_info vfe480_bus_hw_info = {
			.image_cfg_1              = 0x0000B510,
			.image_cfg_2              = 0x0000B514,
			.packer_cfg               = 0x0000B518,
			.frame_header_addr        = 0x0000B520,
			.frame_header_incr        = 0x0000B524,
			.frame_header_cfg         = 0x0000B528,
			.line_done_cfg            = 0,
			.irq_subsample_period     = 0x0000B530,
			.irq_subsample_pattern    = 0x0000B534,
+0 −15
Original line number Diff line number Diff line
@@ -280,9 +280,6 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = {
			.image_cfg_1              = 0x00001010,
			.image_cfg_2              = 0x00001014,
			.packer_cfg               = 0x00001018,
			.frame_header_addr        = 0x00001020,
			.frame_header_incr        = 0x00001024,
			.frame_header_cfg         = 0x00001028,
			.irq_subsample_period     = 0x00001030,
			.irq_subsample_pattern    = 0x00001034,
			.framedrop_period         = 0x00001038,
@@ -309,9 +306,6 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = {
			.image_cfg_1              = 0x00001110,
			.image_cfg_2              = 0x00001114,
			.packer_cfg               = 0x00001118,
			.frame_header_addr        = 0x00001120,
			.frame_header_incr        = 0x00001124,
			.frame_header_cfg         = 0x00001128,
			.irq_subsample_period     = 0x00001130,
			.irq_subsample_pattern    = 0x00001134,
			.framedrop_period         = 0x00001138,
@@ -396,9 +390,6 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = {
			.image_cfg_1              = 0x00001410,
			.image_cfg_2              = 0x00001414,
			.packer_cfg               = 0x00001418,
			.frame_header_addr        = 0x00001420,
			.frame_header_incr        = 0x00001424,
			.frame_header_cfg         = 0x00001428,
			.irq_subsample_period     = 0x00001430,
			.irq_subsample_pattern    = 0x00001434,
			.framedrop_period         = 0x00001438,
@@ -425,9 +416,6 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = {
			.image_cfg_1              = 0x00001510,
			.image_cfg_2              = 0x00001514,
			.packer_cfg               = 0x00001518,
			.frame_header_addr        = 0x00001520,
			.frame_header_incr        = 0x00001524,
			.frame_header_cfg         = 0x00001528,
			.irq_subsample_period     = 0x00001530,
			.irq_subsample_pattern    = 0x00001534,
			.framedrop_period         = 0x00001538,
@@ -483,9 +471,6 @@ static struct cam_vfe_bus_ver3_hw_info vfe680_bus_hw_info = {
			.image_cfg_1              = 0x00001710,
			.image_cfg_2              = 0x00001714,
			.packer_cfg               = 0x00001718,
			.frame_header_addr        = 0x00001720,
			.frame_header_incr        = 0x00001724,
			.frame_header_cfg         = 0x00001728,
			.irq_subsample_period     = 0x00001730,
			.irq_subsample_pattern    = 0x00001734,
			.framedrop_period         = 0x00001738,
Loading