vpu.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #ifndef __VPU_DRV_H__
  2. #define __VPU_DRV_H__
  3. #include <linux/fs.h>
  4. #include <linux/types.h>
  5. #include "../../../vpuapi/vpuconfig.h"
  6. #define USE_VMALLOC_FOR_INSTANCE_POOL_MEMORY
  7. #define VDI_IOCTL_MAGIC 'V'
  8. #define VDI_IOCTL_ALLOCATE_PHYSICAL_MEMORY _IO(VDI_IOCTL_MAGIC, 0)
  9. #define VDI_IOCTL_FREE_PHYSICALMEMORY _IO(VDI_IOCTL_MAGIC, 1)
  10. #define VDI_IOCTL_WAIT_INTERRUPT _IO(VDI_IOCTL_MAGIC, 2)
  11. #define VDI_IOCTL_SET_CLOCK_GATE _IO(VDI_IOCTL_MAGIC, 3)
  12. #define VDI_IOCTL_RESET _IO(VDI_IOCTL_MAGIC, 4)
  13. #define VDI_IOCTL_GET_INSTANCE_POOL _IO(VDI_IOCTL_MAGIC, 5)
  14. #define VDI_IOCTL_GET_COMMON_MEMORY _IO(VDI_IOCTL_MAGIC, 6)
  15. #define VDI_IOCTL_GET_RESERVED_VIDEO_MEMORY_INFO _IO(VDI_IOCTL_MAGIC, 8)
  16. #define VDI_IOCTL_OPEN_INSTANCE _IO(VDI_IOCTL_MAGIC, 9)
  17. #define VDI_IOCTL_CLOSE_INSTANCE _IO(VDI_IOCTL_MAGIC, 10)
  18. #define VDI_IOCTL_GET_INSTANCE_NUM _IO(VDI_IOCTL_MAGIC, 11)
  19. #define VDI_IOCTL_GET_REGISTER_INFO _IO(VDI_IOCTL_MAGIC, 12)
  20. #define VDI_IOCTL_GET_FREE_MEM_SIZE _IO(VDI_IOCTL_MAGIC, 13)
  21. #define VDI_IOCTL_FLUSH_DCACHE _IO(VDI_IOCTL_MAGIC, 14)
  22. #define VDI_IOCTL_GET_PHYSICAL_MEMORY _IO(VDI_IOCTL_MAGIC, 15)
  23. #define DRAM_MEM2SYS(addr) ((addr) > 0x40000000 && (addr) < 0x43FFFFFFF ? ((addr)+0x400000000):(addr))
  24. #define ioremap_nocache ioremap
  25. typedef struct vpudrv_flush_cache_t {
  26. unsigned long start;
  27. unsigned long size;
  28. unsigned char flag;
  29. } vpudrv_flush_cache_t;
  30. typedef struct vpudrv_buffer_t {
  31. unsigned int size;
  32. unsigned long phys_addr;
  33. unsigned long base; /* kernel logical address in use kernel */
  34. unsigned long virt_addr; /* virtual user space address */
  35. } vpudrv_buffer_t;
  36. typedef struct vpu_bit_firmware_info_t {
  37. unsigned int size; /* size of this structure*/
  38. unsigned int core_idx;
  39. unsigned long reg_base_offset;
  40. unsigned short bit_code[512];
  41. } vpu_bit_firmware_info_t;
  42. typedef struct vpudrv_inst_info_t {
  43. unsigned int core_idx;
  44. unsigned int inst_idx;
  45. int inst_open_count; /* for output only*/
  46. } vpudrv_inst_info_t;
  47. typedef struct vpudrv_intr_info_t {
  48. unsigned int timeout;
  49. int intr_reason;
  50. #ifdef SUPPORT_MULTI_INST_INTR
  51. int intr_inst_index;
  52. #endif
  53. } vpudrv_intr_info_t;
  54. #endif