dp_li.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /*
  2. * Copyright (c) 2021 The Linux Foundation. All rights reserved.
  3. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
  4. *
  5. * Permission to use, copy, modify, and/or distribute this software for
  6. * any purpose with or without fee is hereby granted, provided that the
  7. * above copyright notice and this permission notice appear in all
  8. * copies.
  9. *
  10. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
  11. * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
  12. * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
  13. * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  14. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  15. * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  16. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  17. * PERFORMANCE OF THIS SOFTWARE.
  18. */
  19. #ifndef __DP_LI_H
  20. #define __DP_LI_H
  21. #include <dp_types.h>
  22. #ifdef WIFI_MONITOR_SUPPORT
  23. #include <dp_mon.h>
  24. #endif
  25. #include <hal_li_tx.h>
  26. #include <hal_li_rx.h>
  27. /* WBM2SW ring id for rx release */
  28. #define WBM2SW_REL_ERR_RING_NUM 3
  29. /**
  30. * struct dp_soc_li - Extended DP soc for LI targets
  31. * @soc: dp soc structure
  32. */
  33. struct dp_soc_li {
  34. struct dp_soc soc;
  35. };
  36. /**
  37. * struct dp_pdev_li - Extended DP pdev for LI targets
  38. * @pdev: dp_pdev structure
  39. */
  40. struct dp_pdev_li {
  41. struct dp_pdev pdev;
  42. };
  43. /**
  44. * struct dp_vdev_li - Extended DP vdev for LI targets
  45. * @vdev: dp_vdev structure
  46. */
  47. struct dp_vdev_li {
  48. struct dp_vdev vdev;
  49. };
  50. /**
  51. * struct dp_peer_li - Extended DP peer for LI targets
  52. * @peer: dp_peer structure
  53. */
  54. struct dp_peer_li {
  55. struct dp_peer peer;
  56. };
  57. /**
  58. * dp_get_soc_context_size_li() - get context size for dp_soc_li
  59. *
  60. * Return: value in bytes for LI specific soc structure
  61. */
  62. qdf_size_t dp_get_soc_context_size_li(void);
  63. /**
  64. * dp_initialize_arch_ops_li() - initialize LI specific arch ops
  65. * @arch_ops: arch ops pointer
  66. *
  67. * Return: none
  68. */
  69. void dp_initialize_arch_ops_li(struct dp_arch_ops *arch_ops);
  70. /**
  71. * dp_get_context_size_li() - get LI specific size for peer/vdev/pdev/soc
  72. * @context_type: DP context type for which the size is needed
  73. *
  74. * Return: size in bytes for the context_type
  75. */
  76. qdf_size_t dp_get_context_size_li(enum dp_context_type context_type);
  77. #endif