external_display.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. #ifndef _EXTD_DDP_H_
  2. #define _EXTD_DDP_H_
  3. #include "ddp_hal.h"
  4. #include "ddp_manager.h"
  5. #define ALIGN_TO(x, n) (((x) + ((n) - 1)) & ~((n) - 1))
  6. enum EXT_DISP_PATH_MODE {
  7. EXTD_DIRECT_LINK_MODE,
  8. EXTD_DECOUPLE_MODE,
  9. EXTD_SINGLE_LAYER_MODE,
  10. EXTD_RDMA_DPI_MODE
  11. };
  12. enum EXT_DISP_STATUS {
  13. EXT_DISP_STATUS_OK = 0,
  14. EXT_DISP_STATUS_NOT_IMPLEMENTED,
  15. EXT_DISP_STATUS_ALREADY_SET,
  16. EXT_DISP_STATUS_ERROR
  17. };
  18. enum EXTD_POWER_STATE {
  19. EXTD_DEINIT = 0,
  20. EXTD_INIT,
  21. EXTD_RESUME,
  22. EXTD_SUSPEND
  23. };
  24. enum EXTD_OVL_REQ_STATUS {
  25. EXTD_OVL_NO_REQ = 0,
  26. EXTD_OVL_REQUSTING_REQ,
  27. EXTD_OVL_IDLE_REQ,
  28. EXTD_OVL_SUB_REQ,
  29. EXTD_OVL_REMOVE_REQ,
  30. EXTD_OVL_REMOVING,
  31. EXTD_OVL_REMOVED,
  32. EXTD_OVL_INSERT_REQ,
  33. EXTD_OVL_INSERTED
  34. };
  35. struct ext_disp_input_config {
  36. unsigned int layer;
  37. unsigned int layer_en;
  38. unsigned int buff_source;
  39. unsigned int fmt;
  40. unsigned long addr;
  41. unsigned long addr_sub_u;
  42. unsigned long addr_sub_v;
  43. unsigned long vaddr;
  44. unsigned int src_x;
  45. unsigned int src_y;
  46. unsigned int src_w;
  47. unsigned int src_h;
  48. unsigned int src_pitch;
  49. unsigned int dst_x;
  50. unsigned int dst_y;
  51. unsigned int dst_w;
  52. unsigned int dst_h; /* clip region */
  53. unsigned int keyEn;
  54. unsigned int key;
  55. unsigned int aen;
  56. unsigned char alpha;
  57. unsigned int sur_aen;
  58. unsigned int src_alpha;
  59. unsigned int dst_alpha;
  60. unsigned int isTdshp;
  61. unsigned int isDirty;
  62. unsigned int buff_idx;
  63. unsigned int identity;
  64. unsigned int connected_type;
  65. unsigned int security;
  66. unsigned int dirty;
  67. };
  68. void ext_disp_probe(void);
  69. int ext_disp_init(char *lcm_name, unsigned int session);
  70. int ext_disp_deinit(unsigned int session);
  71. int ext_disp_suspend(unsigned int session);
  72. int ext_disp_suspend_trigger(void *callback, unsigned int userdata, unsigned int session);
  73. int ext_disp_resume(unsigned int session);
  74. enum EXT_DISP_PATH_MODE ext_disp_path_get_mode(unsigned int session);
  75. void ext_disp_path_set_mode(enum EXT_DISP_PATH_MODE mode, unsigned int session);
  76. unsigned int ext_disp_get_sess_id(void);
  77. int ext_disp_get_width(void);
  78. int ext_disp_get_height(void);
  79. int ext_disp_is_alive(void);
  80. int ext_disp_is_sleepd(void);
  81. int ext_disp_wait_for_vsync(void *config, unsigned int session);
  82. int ext_disp_config_input_multiple(disp_session_input_config *input, int idx, unsigned int session);
  83. int ext_disp_trigger(int blocking, void *callback, unsigned int userdata, unsigned int session);
  84. int ext_disp_is_video_mode(void);
  85. CMDQ_SWITCH ext_disp_cmdq_enabled(void);
  86. int ext_disp_switch_cmdq(CMDQ_SWITCH use_cmdq);
  87. int ext_disp_diagnose(void);
  88. int ext_disp_get_curr_addr(unsigned long *input_curr_addr, int module);
  89. int ext_disp_factory_test(int mode, void *config);
  90. int ext_disp_get_handle(disp_path_handle *dp_handle, cmdqRecHandle *pHandle);
  91. int ext_disp_set_ovl1_status(int status);
  92. int ext_disp_set_lcm_param(LCM_PARAMS *pLCMParam);
  93. enum EXTD_OVL_REQ_STATUS ext_disp_get_ovl_req_status(unsigned int session);
  94. int ext_disp_path_change(enum EXTD_OVL_REQ_STATUS action, unsigned int session);
  95. int ext_disp_wait_ovl_available(int ovl_num);
  96. bool ext_disp_path_source_is_RDMA(unsigned int session);
  97. int ext_disp_is_dim_layer(unsigned long mva);
  98. #endif