android_kernel_asus_sm8350/include/linux/fastcvpd.h
Laisheng Hu b7a199ae9f msm: cvp: Add snapshot of fastcvpd driver
Add fastcvp driver, which exposes APIs to video driver
to share HFI command queue address to CDSP and
handle errors to exit gracefully in case video and
cdsp subsystems restart.
This snapshot was taken as of msm-4.14 with commit
5704525974fc1f3cb3f14d922d4987f35f2dc278.

Change-Id: I2b75e01f88d4bc5a267942e63cab79094ef327b9
Signed-off-by: Laisheng Hu <laisheng@codeaurora.org>
2021-02-02 10:23:26 -08:00

82 lines
1.7 KiB
C

/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
*/
#ifndef FASTCVPD_H
#define FASTCVPD_H
#include <linux/types.h>
#define FASTCVPD_GLINK_GUID "fastcvpd-glink-apps-dsp"
#define FASTCVPD_SMD_GUID "fastcvpd-smd-apps-dsp"
#define FASTCVPD_DEVICE_NAME "fastcvpd-smd"
#ifdef CONFIG_MSM_FASTCVPD
/*
* API for Video driver to send physical address to FastCVP driver
* @param phys_addr
* Physical address of command message queue
* that needs to be mapped to CDSP.
* It should be allocated from CMA adsp_mem region.
*
* @param size_in_bytes
* Size in bytes of command message queue
*/
int fastcvpd_video_send_cmd_hfi_queue(phys_addr_t *phys_addr,
uint32_t size_in_bytes);
/*
* API for Video driver to suspend CVP session during
* power collapse
*
* @param session_flag
* Flag to share details of session.
*/
int fastcvpd_video_suspend(uint32_t session_flag);
/*
* API for Video driver to resume CVP session during
* power collapse
*
* @param session_flag
* Flag to share details of session.
*/
int fastcvpd_video_resume(uint32_t session_flag);
/*
* API for Video driver to shutdown CVP session during
* video subsystem error.
*
* @param session_flag
* Flag to share details of session.
*/
int fastcvpd_video_shutdown(uint32_t session_flag);
#else
static inline int fastcvpd_video_send_cmd_hfi_queue(
phys_addr_t *phys_addr,
uint32_t size_in_bytes)
{
return -ENODEV;
}
static inline int fastcvpd_video_shutdown(uint32_t session_flag)
{
return -ENODEV;
}
static inline int fastcvpd_video_suspend(uint32_t session_flag)
{
return -ENODEV;
}
static inline int fastcvpd_video_resume(uint32_t session_flag)
{
return -ENODEV;
}
#endif // CONFIG_FASTCVPD
#endif // FASTCVPD_H