debug-ipc.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2015-2021, The Linux Foundation. All rights reserved.
  4. * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
  5. */
  6. #ifndef __DWC3_DEBUG_IPC_H
  7. #define __DWC3_DEBUG_IPC_H
  8. #include "core.h"
  9. #include "debug.h"
  10. #include <linux/ipc_logging.h>
  11. /*
  12. * NOTE: Make sure to have mdwc as local variable in function before using
  13. * below macros.
  14. */
  15. #define dbg_event(ep_num, name, status) \
  16. dwc3_dbg_print(mdwc->dwc_ipc_log_ctxt, ep_num, name, status, "")
  17. #define dbg_print(ep_num, name, status, extra) \
  18. dwc3_dbg_print(mdwc->dwc_ipc_log_ctxt, ep_num, name, status, extra)
  19. #define dbg_print_reg(name, reg) \
  20. dwc3_dbg_print_reg(mdwc->dwc_ipc_log_ctxt, name, reg)
  21. #define dbg_done(ep_num, count, status) \
  22. dwc3_dbg_done(mdwc->dwc_ipc_log_ctxt, ep_num, count, status)
  23. #define dbg_queue(ep_num, req, status) \
  24. dwc3_dbg_queue(mdwc->dwc_ipc_log_ctxt, ep_num, req, status)
  25. #define dbg_setup(ep_num, req) \
  26. dwc3_dbg_setup(mdwc->dwc_ipc_log_ctxt, ep_num, req)
  27. #define dbg_ep_queue(ep_num, req) \
  28. dwc3_dbg_dma_queue(mdwc->dwc_ipc_log_ctxt, ep_num, req)
  29. #define dbg_ep_dequeue(ep_num, req) \
  30. dwc3_dbg_dma_dequeue(mdwc->dwc_ipc_log_ctxt, ep_num, req)
  31. #define dbg_ep_unmap(ep_num, req) \
  32. dwc3_dbg_dma_unmap(mdwc->dwc_dma_ipc_log_ctxt, ep_num, req)
  33. #define dbg_ep_map(ep_num, req) \
  34. dwc3_dbg_dma_map(mdwc->dwc_dma_ipc_log_ctxt, ep_num, req)
  35. #define dbg_log_string(fmt, ...) \
  36. ipc_log_string(mdwc->dwc_ipc_log_ctxt,\
  37. "%s: " fmt, __func__, ##__VA_ARGS__)
  38. #define dbg_trace_ctrl_req(ctrl) \
  39. dwc3_dbg_trace_log_ctrl(dwc_trace_ipc_log_ctxt, ctrl)
  40. #define dbg_trace_ep_queue(req) \
  41. dwc3_dbg_trace_log_request(dwc_trace_ipc_log_ctxt, req, "dbg_ep_queue")
  42. #define dbg_trace_ep_dequeue(req) \
  43. dwc3_dbg_trace_log_request(dwc_trace_ipc_log_ctxt, req, "dbg_ep_dequeue")
  44. #define dbg_trace_gadget_giveback(req) \
  45. dwc3_dbg_trace_log_request(dwc_trace_ipc_log_ctxt, req, "dbg_gadget_giveback")
  46. #define dbg_trace_gadget_ep_cmd(dep, cmd, params, cmd_status) \
  47. dwc3_dbg_trace_ep_cmd(dwc_trace_ipc_log_ctxt, dep, cmd, params, cmd_status)
  48. #define dbg_trace_trb_prepare(dep, event) \
  49. dwc3_dbg_trace_trb_complete(dwc_trace_ipc_log_ctxt, dep, trb, "dbg_prepare")
  50. #define dbg_trace_trb_complete(dep, event) \
  51. dwc3_dbg_trace_trb_complete(dwc_trace_ipc_log_ctxt, dep, trb, "dbg_complete")
  52. #define dbg_trace_event(event, dwc) \
  53. dwc3_dbg_trace_event(dwc_trace_ipc_log_ctxt, event, dwc)
  54. #define dbg_trace_ep(dep) \
  55. dwc3_dbg_trace_ep(dwc_trace_ipc_log_ctxt, dep)
  56. void dwc3_dbg_trace_ep(void *log_ctxt, struct dwc3_ep *dep);
  57. void dwc3_dbg_trace_log_ctrl(void *log_ctxt, struct usb_ctrlrequest *ctrl);
  58. void dwc3_dbg_trace_log_request(void *log_ctxt, struct dwc3_request *req,
  59. char *tag);
  60. void dwc3_dbg_trace_ep_cmd(void *log_ctxt, struct dwc3_ep *dep,
  61. unsigned int cmd,
  62. struct dwc3_gadget_ep_cmd_params *params,
  63. int cmd_status);
  64. void dwc3_dbg_trace_trb_complete(void *log_ctxt, struct dwc3_ep *dep,
  65. struct dwc3_trb *trb, char *tag);
  66. void dwc3_dbg_trace_event(void *log_ctxt, u32 event, struct dwc3 *dwc);
  67. void dwc3_dbg_print(void *log_ctxt, u8 ep_num,
  68. const char *name, int status, const char *extra);
  69. void dwc3_dbg_done(void *log_ctxt, u8 ep_num,
  70. const u32 count, int status);
  71. void dwc3_dbg_event(void *log_ctxt, u8 ep_num,
  72. const char *name, int status);
  73. void dwc3_dbg_queue(void *log_ctxt, u8 ep_num,
  74. const struct usb_request *req, int status);
  75. void dwc3_dbg_setup(void *log_ctxt, u8 ep_num,
  76. const struct usb_ctrlrequest *req);
  77. void dwc3_dbg_print_reg(void *log_ctxt,
  78. const char *name, int reg);
  79. void dwc3_dbg_dma_queue(void *log_ctxt, u8 ep_num,
  80. struct dwc3_request *req);
  81. void dwc3_dbg_dma_dequeue(void *log_ctxt, u8 ep_num,
  82. struct dwc3_request *req);
  83. void dwc3_dbg_dma_map(void *log_ctxt, u8 ep_num,
  84. struct dwc3_request *req);
  85. void dwc3_dbg_dma_unmap(void *log_ctxt, u8 ep_num,
  86. struct dwc3_request *req);
  87. #endif /* __DWC3_DEBUG_IPC_H */