blob: a6d4b0fdb9cadf95aa102e16b2df24e63be004d9 [file] [log] [blame]
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
#ifndef VIDEO_PROVIDER_HEADER_HH
#define VIDEO_PROVIDER_HEADER_HH
extern unsigned int dummy_video_log_level;
#define VP_VFM_POOL_SIZE 3
#define VP_LEVEL_DEBUG 1
#define VP_LEVEL_DEBUG2 2
#define VIDEO_PROVIDER_NAME "dummy_video"
#define VP_VFPATH_ID "dummy_video"
#define VP_VFPATH_CHAIN "dummy_video amvideo"
#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#define vp_info(fmt, ...) \
pr_info(fmt, ##__VA_ARGS__)
#define vp_err(fmt, ...) \
pr_err(fmt, ##__VA_ARGS__)
#define vp_dbg(fmt, ...) \
do { \
if (dummy_video_log_level >= VP_LEVEL_DEBUG) { \
pr_info(fmt, ##__VA_ARGS__); \
} \
} while (0)
#define vp_dbg2(fmt, ...) \
do { \
if (dummy_video_log_level >= VP_LEVEL_DEBUG2) { \
pr_info(fmt, ##__VA_ARGS__); \
} \
} while (0)
enum {
VP_FMT_NV21,
VP_FMT_NV12,
VP_FMT_RGB888,
VP_FMT_YUV444_PACKED
};
enum {
VP_MEM_ION,
VP_MEM_DMABUF,
};
enum {
VP_BIG_ENDIAN,
VP_LITTLE_ENDIAN
};
struct video_provider_device_s {
char name[20];
int major;
struct class *cla;
struct device *dev;
const struct vinfo_s *vinfo;
};
struct vp_frame_s {
int shared_fd;
int mem_type;
int width; /* frame width */
int height; /* frame height */
int format;
int endian;
};
struct vp_pool_s {
struct vframe_s vfm;
int used;
};
#define VIDEO_PROVIDER_IOC_MAGIC 'V'
#define VIDEO_PROVIDER_IOCTL_RENDER _IOW(VIDEO_PROVIDER_IOC_MAGIC, 0x00, \
struct vp_frame_s)
#define VIDEO_PROVIDER_IOCTL_POST _IO(VIDEO_PROVIDER_IOC_MAGIC, 0x01)
#endif