5800571960
-----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>
89 lines
2.6 KiB
C
89 lines
2.6 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (c) 2016 MediaTek Inc.
|
|
* Author: PC Chen <pc.chen@mediatek.com>
|
|
*/
|
|
|
|
#ifndef _VDEC_VPU_IF_H_
|
|
#define _VDEC_VPU_IF_H_
|
|
|
|
#include "mtk_vpu.h"
|
|
|
|
/**
|
|
* struct vdec_vpu_inst - VPU instance for video codec
|
|
* @ipi_id : ipi id for each decoder
|
|
* @vsi : driver structure allocated by VPU side and shared to AP side
|
|
* for control and info share
|
|
* @failure : VPU execution result status, 0: success, others: fail
|
|
* @inst_addr : VPU decoder instance address
|
|
* @signaled : 1 - Host has received ack message from VPU, 0 - not received
|
|
* @ctx : context for v4l2 layer integration
|
|
* @dev : platform device of VPU
|
|
* @wq : wait queue to wait VPU message ack
|
|
* @handler : ipi handler for each decoder
|
|
*/
|
|
struct vdec_vpu_inst {
|
|
enum ipi_id id;
|
|
void *vsi;
|
|
int32_t failure;
|
|
uint32_t inst_addr;
|
|
unsigned int signaled;
|
|
struct mtk_vcodec_ctx *ctx;
|
|
struct platform_device *dev;
|
|
wait_queue_head_t wq;
|
|
ipi_handler_t handler;
|
|
};
|
|
|
|
/**
|
|
* vpu_dec_init - init decoder instance and allocate required resource in VPU.
|
|
*
|
|
* @vpu: instance for vdec_vpu_inst
|
|
*/
|
|
int vpu_dec_init(struct vdec_vpu_inst *vpu);
|
|
|
|
/**
|
|
* vpu_dec_start - start decoding, basically the function will be invoked once
|
|
* every frame.
|
|
*
|
|
* @vpu : instance for vdec_vpu_inst
|
|
* @data: meta data to pass bitstream info to VPU decoder
|
|
* @len : meta data length
|
|
*/
|
|
int vpu_dec_start(struct vdec_vpu_inst *vpu, uint32_t *data, unsigned int len);
|
|
|
|
/**
|
|
* vpu_dec_end - end decoding, basically the function will be invoked once
|
|
* when HW decoding done interrupt received successfully. The
|
|
* decoder in VPU will continue to do reference frame management
|
|
* and check if there is a new decoded frame available to display.
|
|
*
|
|
* @vpu : instance for vdec_vpu_inst
|
|
*/
|
|
int vpu_dec_end(struct vdec_vpu_inst *vpu);
|
|
|
|
/**
|
|
* vpu_dec_deinit - deinit decoder instance and resource freed in VPU.
|
|
*
|
|
* @vpu: instance for vdec_vpu_inst
|
|
*/
|
|
int vpu_dec_deinit(struct vdec_vpu_inst *vpu);
|
|
|
|
/**
|
|
* vpu_dec_reset - reset decoder, use for flush decoder when end of stream or
|
|
* seek. Remainig non displayed frame will be pushed to display.
|
|
*
|
|
* @vpu: instance for vdec_vpu_inst
|
|
*/
|
|
int vpu_dec_reset(struct vdec_vpu_inst *vpu);
|
|
|
|
/**
|
|
* vpu_dec_ipi_handler - Handler for VPU ipi message.
|
|
*
|
|
* @data: ipi message
|
|
* @len : length of ipi message
|
|
* @priv: callback private data which is passed by decoder when register.
|
|
*/
|
|
void vpu_dec_ipi_handler(void *data, unsigned int len, void *priv);
|
|
|
|
#endif
|