kgsl_cffdump.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. /* Copyright (c) 2010-2011,2013, The Linux Foundation. All rights reserved.
  2. *
  3. * This program is free software; you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License version 2 and
  5. * only version 2 as published by the Free Software Foundation.
  6. *
  7. * This program is distributed in the hope that it will be useful,
  8. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. * GNU General Public License for more details.
  11. *
  12. */
  13. #ifndef __KGSL_CFFDUMP_H
  14. #define __KGSL_CFFDUMP_H
  15. #include <linux/types.h>
  16. extern unsigned int kgsl_cff_dump_enable;
  17. static inline bool kgsl_cffdump_flags_no_memzero(void) { return true; }
  18. struct kgsl_device_private;
  19. #ifdef CONFIG_MSM_KGSL_CFF_DUMP
  20. void kgsl_cffdump_init(void);
  21. void kgsl_cffdump_destroy(void);
  22. void kgsl_cffdump_open(struct kgsl_device *device);
  23. void kgsl_cffdump_close(struct kgsl_device *device);
  24. void kgsl_cffdump_syncmem(struct kgsl_device *,
  25. struct kgsl_memdesc *memdesc, uint physaddr, uint sizebytes,
  26. bool clean_cache);
  27. void kgsl_cffdump_setmem(struct kgsl_device *device, uint addr,
  28. uint value, uint sizebytes);
  29. void kgsl_cffdump_regwrite(struct kgsl_device *device, uint addr,
  30. uint value);
  31. void kgsl_cffdump_regpoll(struct kgsl_device *device, uint addr,
  32. uint value, uint mask);
  33. bool kgsl_cffdump_parse_ibs(struct kgsl_device_private *dev_priv,
  34. const struct kgsl_memdesc *memdesc, uint gpuaddr, int sizedwords,
  35. bool check_only);
  36. void kgsl_cffdump_user_event(struct kgsl_device *device,
  37. unsigned int cff_opcode, unsigned int op1,
  38. unsigned int op2, unsigned int op3,
  39. unsigned int op4, unsigned int op5);
  40. void kgsl_cffdump_memory_base(struct kgsl_device *device, unsigned int base,
  41. unsigned int range, unsigned int gmemsize);
  42. void kgsl_cffdump_hang(struct kgsl_device *device);
  43. int kgsl_cff_dump_enable_set(void *data, u64 val);
  44. int kgsl_cff_dump_enable_get(void *data, u64 *val);
  45. int kgsl_cffdump_capture_ib_desc(struct kgsl_device *device,
  46. struct kgsl_context *context,
  47. struct kgsl_cmdbatch *cmdbatch);
  48. #else
  49. static inline void kgsl_cffdump_init(void)
  50. {
  51. return;
  52. }
  53. static inline void kgsl_cffdump_destroy(void)
  54. {
  55. return;
  56. }
  57. static inline void kgsl_cffdump_open(struct kgsl_device *device)
  58. {
  59. return;
  60. }
  61. static inline void kgsl_cffdump_close(struct kgsl_device *device)
  62. {
  63. return;
  64. }
  65. static inline void kgsl_cffdump_syncmem(struct kgsl_device *device,
  66. struct kgsl_memdesc *memdesc, uint physaddr, uint sizebytes,
  67. bool clean_cache)
  68. {
  69. return;
  70. }
  71. static inline void kgsl_cffdump_setmem(struct kgsl_device *device, uint addr,
  72. uint value, uint sizebytes)
  73. {
  74. return;
  75. }
  76. static inline void kgsl_cffdump_regwrite(struct kgsl_device *device, uint addr,
  77. uint value)
  78. {
  79. return;
  80. }
  81. static inline void kgsl_cffdump_regpoll(struct kgsl_device *device, uint addr,
  82. uint value, uint mask)
  83. {
  84. return;
  85. }
  86. static inline bool kgsl_cffdump_parse_ibs(struct kgsl_device_private *dev_priv,
  87. const struct kgsl_memdesc *memdesc, uint gpuaddr, int sizedwords,
  88. bool check_only)
  89. {
  90. return false;
  91. }
  92. static inline void kgsl_cffdump_memory_base(struct kgsl_device *device,
  93. unsigned int base, unsigned int range, unsigned int gmemsize)
  94. {
  95. return;
  96. }
  97. static inline void kgsl_cffdump_hang(struct kgsl_device *device)
  98. {
  99. return;
  100. }
  101. static inline void kgsl_cffdump_user_event(struct kgsl_device *device,
  102. unsigned int cff_opcode, unsigned int op1,
  103. unsigned int op2, unsigned int op3,
  104. unsigned int op4, unsigned int op5)
  105. {
  106. return;
  107. }
  108. static inline int kgsl_cffdump_capture_ib_desc(struct kgsl_device *device,
  109. struct kgsl_context *context,
  110. struct kgsl_cmdbatch *cmdbatch)
  111. {
  112. return 0;
  113. }
  114. static inline int kgsl_cff_dump_enable_set(void *data, u64 val)
  115. {
  116. return -EINVAL;
  117. }
  118. static inline int kgsl_cff_dump_enable_get(void *data, u64 *val)
  119. {
  120. return -EINVAL;
  121. }
  122. #endif /* CONFIG_MSM_KGSL_CFF_DUMP */
  123. #endif /* __KGSL_CFFDUMP_H */