![Mauro Carvalho Chehab](/assets/img/avatar_default.png)
-----BEGIN PGP SIGNATURE----- iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAlz8fAYeHHRvcnZhbGRz QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiG1asH/3ySguxqtqL1MCBa 4/SZ37PHeWKMerfX6ZyJdgEqK3B+PWlmuLiOMNK5h2bPLzeQQQAmHU/mfKmpXqgB dHwUbG9yNnyUtTfsfRqAnCA6vpuw9Yb1oIzTCVQrgJLSWD0j7scBBvmzYqguOkto ThwigLUq3AILr8EfR4rh+GM+5Dn9OTEFAxwil9fPHQo7QoczwZxpURhScT6Co9TB DqLA3fvXbBvLs/CZy/S5vKM9hKzC+p39ApFTURvFPrelUVnythAM0dPDJg3pIn5u g+/+gDxDFa+7ANxvxO2ng1sJPDqJMeY/xmjJYlYyLpA33B7zLNk2vDHhAP06VTtr XCMhQ9s= =cb80 -----END PGP SIGNATURE----- Merge tag 'v5.2-rc4' into media/master There are some conflicts due to SPDX changes. We also have more patches being merged via media tree touching them. So, let's merge back from upstream and address those. Linux 5.2-rc4 * tag 'v5.2-rc4': (767 commits) Linux 5.2-rc4 MAINTAINERS: Karthikeyan Ramasubramanian is MIA i2c: xiic: Add max_read_len quirk lockref: Limit number of cmpxchg loop retries uaccess: add noop untagged_addr definition x86/insn-eval: Fix use-after-free access to LDT entry kbuild: use more portable 'command -v' for cc-cross-prefix s390/unwind: correct stack switching during unwind block, bfq: add weight symlink to the bfq.weight cgroup parameter cgroup: let a symlink too be created with a cftype file drm/nouveau/secboot/gp10[2467]: support newer FW to fix SEC2 failures on some boards drm/nouveau/secboot: enable loading of versioned LS PMU/SEC2 ACR msgqueue FW drm/nouveau/secboot: split out FW version-specific LS function pointers drm/nouveau/secboot: pass max supported FW version to LS load funcs drm/nouveau/core: support versioned firmware loading drm/nouveau/core: pass subdev into nvkm_firmware_get, rather than device block: free sched's request pool in blk_cleanup_queue pktgen: do not sleep with the thread lock held. net: mvpp2: Use strscpy to handle stat strings net: rds: fix memory leak in rds_ib_flush_mr_pool ... Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
81 lines
2.3 KiB
C
81 lines
2.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (c) 2016 MediaTek Inc.
|
|
* Author: PC Chen <pc.chen@mediatek.com>
|
|
* Tiffany Lin <tiffany.lin@mediatek.com>
|
|
*/
|
|
|
|
#ifndef _MTK_VCODEC_DEC_H_
|
|
#define _MTK_VCODEC_DEC_H_
|
|
|
|
#include <media/videobuf2-core.h>
|
|
#include <media/videobuf2-v4l2.h>
|
|
|
|
#define VCODEC_CAPABILITY_4K_DISABLED 0x10
|
|
#define VCODEC_DEC_4K_CODED_WIDTH 4096U
|
|
#define VCODEC_DEC_4K_CODED_HEIGHT 2304U
|
|
#define MTK_VDEC_MAX_W 2048U
|
|
#define MTK_VDEC_MAX_H 1088U
|
|
|
|
#define MTK_VDEC_IRQ_STATUS_DEC_SUCCESS 0x10000
|
|
|
|
/**
|
|
* struct vdec_fb - decoder frame buffer
|
|
* @base_y : Y plane memory info
|
|
* @base_c : C plane memory info
|
|
* @status : frame buffer status (vdec_fb_status)
|
|
*/
|
|
struct vdec_fb {
|
|
struct mtk_vcodec_mem base_y;
|
|
struct mtk_vcodec_mem base_c;
|
|
unsigned int status;
|
|
};
|
|
|
|
/**
|
|
* struct mtk_video_dec_buf - Private data related to each VB2 buffer.
|
|
* @b: VB2 buffer
|
|
* @list: link list
|
|
* @used: Capture buffer contain decoded frame data and keep in
|
|
* codec data structure
|
|
* @queued_in_vb2: Capture buffer is queue in vb2
|
|
* @queued_in_v4l2: Capture buffer is in v4l2 driver, but not in vb2
|
|
* queue yet
|
|
* @lastframe: Intput buffer is last buffer - EOS
|
|
* @error: An unrecoverable error occurs on this buffer.
|
|
* @frame_buffer: Decode status, and buffer information of Capture buffer
|
|
*
|
|
* Note : These status information help us track and debug buffer state
|
|
*/
|
|
struct mtk_video_dec_buf {
|
|
struct vb2_v4l2_buffer vb;
|
|
struct list_head list;
|
|
|
|
bool used;
|
|
bool queued_in_vb2;
|
|
bool queued_in_v4l2;
|
|
bool lastframe;
|
|
bool error;
|
|
struct vdec_fb frame_buffer;
|
|
};
|
|
|
|
extern const struct v4l2_ioctl_ops mtk_vdec_ioctl_ops;
|
|
extern const struct v4l2_m2m_ops mtk_vdec_m2m_ops;
|
|
|
|
|
|
/*
|
|
* mtk_vdec_lock/mtk_vdec_unlock are for ctx instance to
|
|
* get/release lock before/after access decoder hw.
|
|
* mtk_vdec_lock get decoder hw lock and set curr_ctx
|
|
* to ctx instance that get lock
|
|
*/
|
|
void mtk_vdec_unlock(struct mtk_vcodec_ctx *ctx);
|
|
void mtk_vdec_lock(struct mtk_vcodec_ctx *ctx);
|
|
int mtk_vcodec_dec_queue_init(void *priv, struct vb2_queue *src_vq,
|
|
struct vb2_queue *dst_vq);
|
|
void mtk_vcodec_dec_set_default_params(struct mtk_vcodec_ctx *ctx);
|
|
void mtk_vcodec_dec_release(struct mtk_vcodec_ctx *ctx);
|
|
int mtk_vcodec_dec_ctrls_setup(struct mtk_vcodec_ctx *ctx);
|
|
|
|
|
|
#endif /* _MTK_VCODEC_DEC_H_ */
|