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

Commit 83496279 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: cvp: Support handling cp camera buffer"

parents ccffb23b 3dc3967b
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
 * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
 */

#include <asm/memory.h>
@@ -78,6 +78,13 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
		.buf_num = HFI_PERSIST_BUF_NUM,
		.resp = HAL_SESSION_PERSIST_SET_DONE,
	},
	{
		.size = 0xffffffff,
		.type = HFI_CMD_SESSION_CVP_SET_FD_CHROMA_BUFFER,
		.buf_offset = 0,
		.buf_num = 0,
		.resp = HAL_SESSION_CHROMA_SET_DONE,
	},
	{
		.size = 0xffffffff,
		.type = HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS,
@@ -85,6 +92,13 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
		.buf_num = 0,
		.resp = HAL_SESSION_PERSIST_REL_DONE,
	},
	{
		.size = 0xffffffff,
		.type = HFI_CMD_SESSION_CVP_RELEASE_FD_CHROMA_BUFFER,
		.buf_offset = 0,
		.buf_num = 0,
		.resp = HAL_SESSION_CHROMA_REL_DONE,
	},
	{
		.size = HFI_DS_CMD_SIZE,
		.type = HFI_CMD_SESSION_CVP_DS,
@@ -2934,6 +2948,8 @@ static void **get_session_id(struct msm_cvp_cb_info *info)
	case HAL_SESSION_FD_FRAME_CMD_DONE:
	case HAL_SESSION_PERSIST_SET_DONE:
	case HAL_SESSION_PERSIST_REL_DONE:
	case HAL_SESSION_CHROMA_SET_DONE:
	case HAL_SESSION_CHROMA_REL_DONE:
	case HAL_SESSION_FD_CONFIG_CMD_DONE:
	case HAL_SESSION_MODEL_BUF_CMD_DONE:
	case HAL_SESSION_PROPERTY_INFO:
+10 −1
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
 * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
 */

#ifndef __H_CVP_HFI_H__
@@ -106,6 +106,15 @@
#define  HFI_CMD_SESSION_CVP_ICA_CONFIG\
	(HFI_CMD_SESSION_CVP_START + 0x101)

#define  HFI_CMD_SESSION_CVP_SET_FD_CHROMA_BUFFER\
	(HFI_CMD_SESSION_CVP_START + 0x058)
#define  HFI_CMD_SESSION_CVP_RELEASE_FD_CHROMA_BUFFER\
	(HFI_CMD_SESSION_CVP_START + 0x059)

#define  HFI_MSG_SESSION_CVP_SET_FD_CHROMA_BUFFER\
	(HFI_MSG_SESSION_CVP_START + 0x03B)
#define  HFI_MSG_SESSION_CVP_RELEASE_FD_CHROMA_BUFFER\
	(HFI_MSG_SESSION_CVP_START + 0x03C)

#define HFI_MSG_SESSION_CVP_START	\
	(HFI_DOMAIN_BASE_CVP + HFI_ARCH_COMMON_OFFSET +	\
+3 −1
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
 * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
 */

#ifndef __CVP_HFI_API_H__
@@ -231,6 +231,8 @@ enum hal_command_response {
	HAL_SESSION_ICA_FRAME_CMD_DONE,
	HAL_SESSION_FD_FRAME_CMD_DONE,
	HAL_SESSION_PROPERTY_INFO,
	HAL_SESSION_CHROMA_SET_DONE,
	HAL_SESSION_CHROMA_REL_DONE,
	HAL_SESSION_ERROR,
	HAL_RESPONSE_UNUSED = 0x10000000,
};
+9 −1
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
 * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
 */

#include <linux/bitops.h>
@@ -429,6 +429,12 @@ static int hfi_process_session_cvp_operation_config(u32 device_id,
	else if (pkt->packet_type == HFI_MSG_SESSION_CVP_SET_MODEL_BUFFERS)
		signal = get_signal_from_pkt_type(
				HFI_CMD_SESSION_CVP_SET_MODEL_BUFFERS);
	else if (pkt->packet_type == HFI_MSG_SESSION_CVP_SET_FD_CHROMA_BUFFER)
		signal = get_signal_from_pkt_type(
				HFI_CMD_SESSION_CVP_SET_FD_CHROMA_BUFFER);
	else if (pkt->packet_type == HFI_MSG_SESSION_CVP_RELEASE_FD_CHROMA_BUFFER)
		signal = get_signal_from_pkt_type(
				HFI_CMD_SESSION_CVP_RELEASE_FD_CHROMA_BUFFER);
	else
		signal = get_signal_from_pkt_type(conf_id);

@@ -656,6 +662,8 @@ int cvp_hfi_process_msg_packet(u32 device_id, void *hdr,
	case HFI_MSG_SESSION_CVP_OPERATION_CONFIG:
	case HFI_MSG_SESSION_CVP_SET_PERSIST_BUFFERS:
	case HFI_MSG_SESSION_CVP_RELEASE_PERSIST_BUFFERS:
	case HFI_MSG_SESSION_CVP_SET_FD_CHROMA_BUFFER:
	case HFI_MSG_SESSION_CVP_RELEASE_FD_CHROMA_BUFFER:
	case HFI_MSG_SESSION_CVP_SET_MODEL_BUFFERS:
		pkt_func =
			(pkt_func_def)hfi_process_session_cvp_operation_config;
+7 −4
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
 * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
 */

#include "msm_cvp.h"
@@ -211,9 +211,11 @@ static int msm_cvp_session_process_hfi(
	}
	pkt_type = in_pkt->pkt_data[1];
	if (pkt_type == HFI_CMD_SESSION_CVP_SET_PERSIST_BUFFERS ||
		pkt_type == HFI_CMD_SESSION_CVP_SET_MODEL_BUFFERS)
		pkt_type == HFI_CMD_SESSION_CVP_SET_MODEL_BUFFERS ||
		pkt_type == HFI_CMD_SESSION_CVP_SET_FD_CHROMA_BUFFER)
		rc = msm_cvp_map_user_persist(inst, in_pkt, offset, buf_num);
	else if (pkt_type == HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS)
	else if (pkt_type == HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS ||
		pkt_type == HFI_CMD_SESSION_CVP_RELEASE_FD_CHROMA_BUFFER)
		rc = msm_cvp_mark_user_persist(inst, in_pkt, offset, buf_num);
	else
		rc = msm_cvp_map_frame(inst, in_pkt, offset, buf_num);
@@ -240,7 +242,8 @@ static int msm_cvp_session_process_hfi(
				signal);
			goto exit;
		}
		if (pkt_type == HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS)
		if (pkt_type == HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS ||
		pkt_type == HFI_CMD_SESSION_CVP_RELEASE_FD_CHROMA_BUFFER)
			rc = msm_cvp_unmap_user_persist(inst, in_pkt,
					offset, buf_num);

Loading