adreno_a3xx_trace.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /* Copyright (c) 2012, 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. #if !defined(_ADRENO_A3XX_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
  14. #define _ADRENO_A3XX_TRACE_H
  15. #undef TRACE_SYSTEM
  16. #define TRACE_SYSTEM kgsl
  17. #undef TRACE_INCLUDE_PATH
  18. #define TRACE_INCLUDE_PATH .
  19. #undef TRACE_INCLUDE_FILE
  20. #define TRACE_INCLUDE_FILE adreno_a3xx_trace
  21. #include <linux/tracepoint.h>
  22. struct kgsl_device;
  23. /*
  24. * Tracepoint for a3xx irq. Includes status info
  25. */
  26. TRACE_EVENT(kgsl_a3xx_irq_status,
  27. TP_PROTO(struct kgsl_device *device, unsigned int status),
  28. TP_ARGS(device, status),
  29. TP_STRUCT__entry(
  30. __string(device_name, device->name)
  31. __field(unsigned int, status)
  32. ),
  33. TP_fast_assign(
  34. __assign_str(device_name, device->name);
  35. __entry->status = status;
  36. ),
  37. TP_printk(
  38. "d_name=%s status=%s",
  39. __get_str(device_name),
  40. __entry->status ? __print_flags(__entry->status, "|",
  41. { 1 << A3XX_INT_RBBM_AHB_ERROR, "RBBM_GPU_IDLE" },
  42. { 1 << A3XX_INT_RBBM_AHB_ERROR, "RBBM_AHB_ERR" },
  43. { 1 << A3XX_INT_RBBM_REG_TIMEOUT, "RBBM_REG_TIMEOUT" },
  44. { 1 << A3XX_INT_RBBM_ME_MS_TIMEOUT,
  45. "RBBM_ME_MS_TIMEOUT" },
  46. { 1 << A3XX_INT_RBBM_PFP_MS_TIMEOUT,
  47. "RBBM_PFP_MS_TIMEOUT" },
  48. { 1 << A3XX_INT_RBBM_ATB_BUS_OVERFLOW,
  49. "RBBM_ATB_BUS_OVERFLOW" },
  50. { 1 << A3XX_INT_VFD_ERROR, "RBBM_VFD_ERROR" },
  51. { 1 << A3XX_INT_CP_SW_INT, "CP_SW" },
  52. { 1 << A3XX_INT_CP_T0_PACKET_IN_IB,
  53. "CP_T0_PACKET_IN_IB" },
  54. { 1 << A3XX_INT_CP_OPCODE_ERROR, "CP_OPCODE_ERROR" },
  55. { 1 << A3XX_INT_CP_RESERVED_BIT_ERROR,
  56. "CP_RESERVED_BIT_ERROR" },
  57. { 1 << A3XX_INT_CP_HW_FAULT, "CP_HW_FAULT" },
  58. { 1 << A3XX_INT_CP_DMA, "CP_DMA" },
  59. { 1 << A3XX_INT_CP_IB2_INT, "CP_IB2_INT" },
  60. { 1 << A3XX_INT_CP_IB1_INT, "CP_IB1_INT" },
  61. { 1 << A3XX_INT_CP_RB_INT, "CP_RB_INT" },
  62. { 1 << A3XX_INT_CP_REG_PROTECT_FAULT,
  63. "CP_REG_PROTECT_FAULT" },
  64. { 1 << A3XX_INT_CP_RB_DONE_TS, "CP_RB_DONE_TS" },
  65. { 1 << A3XX_INT_CP_VS_DONE_TS, "CP_VS_DONE_TS" },
  66. { 1 << A3XX_INT_CP_PS_DONE_TS, "CP_PS_DONE_TS" },
  67. { 1 << A3XX_INT_CACHE_FLUSH_TS, "CACHE_FLUSH_TS" },
  68. { 1 << A3XX_INT_CP_AHB_ERROR_HALT,
  69. "CP_AHB_ERROR_HALT" },
  70. { 1 << A3XX_INT_MISC_HANG_DETECT, "MISC_HANG_DETECT" },
  71. { 1 << A3XX_INT_UCHE_OOB_ACCESS, "UCHE_OOB_ACCESS" })
  72. : "None"
  73. )
  74. );
  75. #endif /* _ADRENO_A3XX_TRACE_H */
  76. /* This part must be outside protection */
  77. #include <trace/define_trace.h>