File Index
Files and directories
Sign in
FILE

mtk_vcodec_dec_hw.h

File preview with syntax highlighting.

linux-6.19.14/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_hw.h C
 1/* SPDX-License-Identifier: GPL-2.0 */
 2/*
 3 * Copyright (c) 2021 MediaTek Inc.
 4 * Author: Yunfei Dong <yunfei.dong@mediatek.com>
 5 */
 6
 7#ifndef _MTK_VCODEC_DEC_HW_H_
 8#define _MTK_VCODEC_DEC_HW_H_
 9
10#include <linux/io.h>
11#include <linux/platform_device.h>
12
13#include "mtk_vcodec_dec_drv.h"
14
15#define VDEC_HW_ACTIVE_ADDR 0x0
16#define VDEC_HW_ACTIVE_MASK BIT(4)
17#define VDEC_IRQ_CFG 0x11
18#define VDEC_IRQ_CLR 0x10
19#define VDEC_IRQ_CFG_REG 0xa4
20
21#define IS_SUPPORT_VDEC_HW_IRQ(hw_idx) ((hw_idx) != MTK_VDEC_LAT_SOC)
22
23/**
24 * enum mtk_vdec_hw_reg_idx - subdev hardware register base index
25 * @VDEC_HW_SYS : vdec soc register index
26 * @VDEC_HW_MISC: vdec misc register index
27 * @VDEC_HW_MAX : vdec supported max register index
28 */
29enum mtk_vdec_hw_reg_idx {
30	VDEC_HW_SYS,
31	VDEC_HW_MISC,
32	VDEC_HW_MAX
33};
34
35/**
36 * struct mtk_vdec_hw_dev - vdec hardware driver data
37 * @plat_dev: platform device
38 * @main_dev: main device
39 * @reg_base: mapped address of MTK Vcodec registers.
40 *
41 * @curr_ctx: the context that is waiting for codec hardware
42 *
43 * @dec_irq : decoder irq resource
44 * @pm      : power management control
45 * @hw_idx  : each hardware index
46 */
47struct mtk_vdec_hw_dev {
48	struct platform_device *plat_dev;
49	struct mtk_vcodec_dec_dev *main_dev;
50	void __iomem *reg_base[VDEC_HW_MAX];
51
52	struct mtk_vcodec_dec_ctx *curr_ctx;
53
54	int dec_irq;
55	struct mtk_vcodec_pm pm;
56	int hw_idx;
57};
58
59#endif /* _MTK_VCODEC_DEC_HW_H_ */
~/ Read-only file preview.