linux/drivers/media/platform/qcom/venus/hfi_platform.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2020, The Linux Foundation. All rights reserved.
 */

#ifndef __HFI_PLATFORM_H__
#define __HFI_PLATFORM_H__

#include <linux/types.h>
#include <linux/videodev2.h>

#include "hfi.h"
#include "hfi_plat_bufs.h"
#include "hfi_helper.h"

#define MAX_PLANES
#define MAX_FMT_ENTRIES
#define MAX_CAP_ENTRIES
#define MAX_ALLOC_MODE_ENTRIES
#define MAX_CODEC_NUM
#define MAX_SESSIONS

struct raw_formats {};

struct hfi_plat_caps {};

struct hfi_platform_codec_freq_data {};

struct hfi_platform {};

extern const struct hfi_platform hfi_plat_v4;
extern const struct hfi_platform hfi_plat_v6;

const struct hfi_platform *hfi_platform_get(enum hfi_version version);
unsigned long hfi_platform_get_codec_vpp_freq(enum hfi_version version, u32 codec,
					      u32 session_type);
unsigned long hfi_platform_get_codec_vsp_freq(enum hfi_version version, u32 codec,
					      u32 session_type);
unsigned long hfi_platform_get_codec_lp_freq(enum hfi_version version, u32 codec,
					     u32 session_type);
int hfi_platform_get_codecs(struct venus_core *core, u32 *enc_codecs, u32 *dec_codecs,
			    u32 *count);
#endif