cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

vpu_v4l2.h (2029B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * Copyright 2020-2021 NXP
      4 */
      5
      6#ifndef _AMPHION_VPU_V4L2_H
      7#define _AMPHION_VPU_V4L2_H
      8
      9#include <linux/videodev2.h>
     10
     11void vpu_inst_lock(struct vpu_inst *inst);
     12void vpu_inst_unlock(struct vpu_inst *inst);
     13void vpu_set_buffer_state(struct vb2_v4l2_buffer *vbuf, unsigned int state);
     14unsigned int vpu_get_buffer_state(struct vb2_v4l2_buffer *vbuf);
     15
     16int vpu_v4l2_open(struct file *file, struct vpu_inst *inst);
     17int vpu_v4l2_close(struct file *file);
     18
     19const struct vpu_format *vpu_try_fmt_common(struct vpu_inst *inst, struct v4l2_format *f);
     20int vpu_process_output_buffer(struct vpu_inst *inst);
     21int vpu_process_capture_buffer(struct vpu_inst *inst);
     22struct vb2_v4l2_buffer *vpu_next_src_buf(struct vpu_inst *inst);
     23void vpu_skip_frame(struct vpu_inst *inst, int count);
     24struct vb2_v4l2_buffer *vpu_find_buf_by_sequence(struct vpu_inst *inst, u32 type, u32 sequence);
     25struct vb2_v4l2_buffer *vpu_find_buf_by_idx(struct vpu_inst *inst, u32 type, u32 idx);
     26void vpu_v4l2_set_error(struct vpu_inst *inst);
     27int vpu_notify_eos(struct vpu_inst *inst);
     28int vpu_notify_source_change(struct vpu_inst *inst);
     29int vpu_set_last_buffer_dequeued(struct vpu_inst *inst);
     30void vpu_vb2_buffers_return(struct vpu_inst *inst, unsigned int type, enum vb2_buffer_state state);
     31int vpu_get_num_buffers(struct vpu_inst *inst, u32 type);
     32bool vpu_is_source_empty(struct vpu_inst *inst);
     33
     34dma_addr_t vpu_get_vb_phy_addr(struct vb2_buffer *vb, u32 plane_no);
     35unsigned int vpu_get_vb_length(struct vb2_buffer *vb, u32 plane_no);
     36static inline struct vpu_format *vpu_get_format(struct vpu_inst *inst, u32 type)
     37{
     38	if (V4L2_TYPE_IS_OUTPUT(type))
     39		return &inst->out_format;
     40	else
     41		return &inst->cap_format;
     42}
     43
     44static inline char *vpu_type_name(u32 type)
     45{
     46	return V4L2_TYPE_IS_OUTPUT(type) ? "output" : "capture";
     47}
     48
     49static inline int vpu_vb_is_codecconfig(struct vb2_v4l2_buffer *vbuf)
     50{
     51#ifdef V4L2_BUF_FLAG_CODECCONFIG
     52	return (vbuf->flags & V4L2_BUF_FLAG_CODECCONFIG) ? 1 : 0;
     53#else
     54	return 0;
     55#endif
     56}
     57
     58#endif