jpu.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #ifndef __JPU_DRV_H__
  2. #define __JPU_DRV_H__
  3. #include <linux/fs.h>
  4. #include <linux/types.h>
  5. #define JDI_IOCTL_MAGIC 'J'
  6. #define JDI_IOCTL_ALLOCATE_PHYSICAL_MEMORY _IO(JDI_IOCTL_MAGIC, 0)
  7. #define JDI_IOCTL_FREE_PHYSICALMEMORY _IO(JDI_IOCTL_MAGIC, 1)
  8. #define JDI_IOCTL_WAIT_INTERRUPT _IO(JDI_IOCTL_MAGIC, 2)
  9. #define JDI_IOCTL_SET_CLOCK_GATE _IO(JDI_IOCTL_MAGIC, 3)
  10. #define JDI_IOCTL_RESET _IO(JDI_IOCTL_MAGIC, 4)
  11. #define JDI_IOCTL_GET_INSTANCE_POOL _IO(JDI_IOCTL_MAGIC, 5)
  12. #define JDI_IOCTL_GET_RESERVED_VIDEO_MEMORY_INFO _IO(JDI_IOCTL_MAGIC, 6)
  13. #define JDI_IOCTL_GET_REGISTER_INFO _IO(JDI_IOCTL_MAGIC, 7)
  14. #define JDI_IOCTL_OPEN_INSTANCE _IO(JDI_IOCTL_MAGIC, 8)
  15. #define JDI_IOCTL_CLOSE_INSTANCE _IO(JDI_IOCTL_MAGIC, 9)
  16. #define JDI_IOCTL_GET_INSTANCE_NUM _IO(JDI_IOCTL_MAGIC, 10)
  17. #define JDI_IOCTL_FLUSH_DCACHE _IO(JDI_IOCTL_MAGIC, 11)
  18. #define JDI_IOCTL_GET_PHYSICAL_MEMORY _IO(JDI_IOCTL_MAGIC, 12)
  19. #define MEM2SYS(addr) ((addr) > 0x40000000 && (addr) < 0x240000000 ? ((addr)+0x400000000):(addr))
  20. typedef struct jpudrv_flush_cache_t {
  21. unsigned long start;
  22. unsigned long size;
  23. unsigned char flag;
  24. } jpudrv_flush_cache_t;
  25. typedef struct jpudrv_buffer_t {
  26. unsigned int size;
  27. unsigned long phys_addr;
  28. unsigned long base; /* kernel logical address in use kernel */
  29. unsigned long virt_addr; /* virtual user space address */
  30. } jpudrv_buffer_t;
  31. typedef struct jpudrv_inst_info_t {
  32. unsigned int inst_idx;
  33. int inst_open_count; /* for output only*/
  34. } jpudrv_inst_info_t;
  35. typedef struct jpudrv_intr_info_t {
  36. unsigned int timeout;
  37. int intr_reason;
  38. unsigned int inst_idx;
  39. } jpudrv_intr_info_t;
  40. #endif