1 #ifndef _GOOGLE_VP9_H_ 2 #define _GOOGLE_VP9_H_ 3 4 enum IOCTL_CMD { 5 VP9_IOCTL_UNKNOWN = 0x100, 6 VP9_IOCTL_GET_ENV_INFO, 7 VP9_IOCTL_WAIT_INTERRUPT, 8 VP9_IOCTL_RESET, 9 VP9_IOCTL_SET_FREQ, 10 VP9_IOCTL_SET_HIGH_PERF_MSG, 11 12 VP9_IOCTL_ENGINE_REQ, 13 VP9_IOCTL_ENGINE_REL, 14 15 /*for iommu*/ 16 IOCTL_GET_IOMMU_ADDR, 17 IOCTL_FREE_IOMMU_ADDR, 18 }; 19 20 struct vp9_env_information { 21 unsigned int phymem_start; 22 int phymem_total_size; 23 unsigned long address_macc; 24 }; 25 26 struct __vp9_task { 27 int task_prio; 28 int ID; 29 unsigned long timeout; 30 unsigned int frametime; 31 unsigned int block_mode; 32 }; 33 34 struct vp9_engine_task { 35 struct __vp9_task t; 36 struct list_head list; 37 struct task_struct *task_handle; 38 unsigned int status; 39 unsigned int running; 40 unsigned int is_first_task; 41 }; 42 43 struct vp9_regop { 44 unsigned long addr; 45 unsigned int value; 46 }; 47 48 struct vp9_env_information_compat { 49 unsigned int phymem_start; 50 int phymem_total_size; 51 u32 address_macc; 52 }; 53 54 struct vp9_regop_compat { 55 u32 addr; 56 unsigned int value; 57 }; 58 59 /*--------------------------------------------------------------*/ 60 61 MODULE_AUTHOR("jilinglin"); 62 MODULE_DESCRIPTION("User mode GOOGLE VP9/AV1 device interface"); 63 MODULE_LICENSE("GPL"); 64 MODULE_VERSION(DRV_VERSION); 65 MODULE_ALIAS("platform:cedarx-sunxi"); 66 67 #endif 68