mac.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /* SPDX-License-Identifier: BSD-3-Clause-Clear */
  2. /* Copyright (C) 2020 MediaTek Inc. */
  3. #ifndef __MT7915_MAC_H
  4. #define __MT7915_MAC_H
  5. #include "../mt76_connac2_mac.h"
  6. #define MT_TX_FREE_VER GENMASK(18, 16)
  7. #define MT_TX_FREE_MSDU_CNT_V0 GENMASK(6, 0)
  8. /* 0: success, others: dropped */
  9. #define MT_TX_FREE_COUNT GENMASK(12, 0)
  10. #define MT_TX_FREE_COUNT_V3 GENMASK(27, 24)
  11. #define MT_TX_FREE_STAT GENMASK(14, 13)
  12. #define MT_TX_FREE_STAT_V3 GENMASK(29, 28)
  13. #define MT_TX_FREE_MPDU_HEADER BIT(15)
  14. #define MT_TX_FREE_MPDU_HEADER_V3 BIT(30)
  15. #define MT_TX_FREE_MSDU_ID_V3 GENMASK(14, 0)
  16. #define MT_TXS5_F0_FINAL_MPDU BIT(31)
  17. #define MT_TXS5_F0_QOS BIT(30)
  18. #define MT_TXS5_F0_TX_COUNT GENMASK(29, 25)
  19. #define MT_TXS5_F0_FRONT_TIME GENMASK(24, 0)
  20. #define MT_TXS5_F1_MPDU_TX_COUNT GENMASK(31, 24)
  21. #define MT_TXS5_F1_MPDU_TX_BYTES GENMASK(23, 0)
  22. #define MT_TXS6_F0_NOISE_3 GENMASK(31, 24)
  23. #define MT_TXS6_F0_NOISE_2 GENMASK(23, 16)
  24. #define MT_TXS6_F0_NOISE_1 GENMASK(15, 8)
  25. #define MT_TXS6_F0_NOISE_0 GENMASK(7, 0)
  26. #define MT_TXS6_F1_MPDU_FAIL_COUNT GENMASK(31, 24)
  27. #define MT_TXS6_F1_MPDU_FAIL_BYTES GENMASK(23, 0)
  28. #define MT_TXS7_F0_RCPI_3 GENMASK(31, 24)
  29. #define MT_TXS7_F0_RCPI_2 GENMASK(23, 16)
  30. #define MT_TXS7_F0_RCPI_1 GENMASK(15, 8)
  31. #define MT_TXS7_F0_RCPI_0 GENMASK(7, 0)
  32. #define MT_TXS7_F1_MPDU_RETRY_COUNT GENMASK(31, 24)
  33. #define MT_TXS7_F1_MPDU_RETRY_BYTES GENMASK(23, 0)
  34. struct mt7915_dfs_pulse {
  35. u32 max_width; /* us */
  36. int max_pwr; /* dbm */
  37. int min_pwr; /* dbm */
  38. u32 min_stgr_pri; /* us */
  39. u32 max_stgr_pri; /* us */
  40. u32 min_cr_pri; /* us */
  41. u32 max_cr_pri; /* us */
  42. };
  43. struct mt7915_dfs_pattern {
  44. u8 enb;
  45. u8 stgr;
  46. u8 min_crpn;
  47. u8 max_crpn;
  48. u8 min_crpr;
  49. u8 min_pw;
  50. u32 min_pri;
  51. u32 max_pri;
  52. u8 max_pw;
  53. u8 min_crbn;
  54. u8 max_crbn;
  55. u8 min_stgpn;
  56. u8 max_stgpn;
  57. u8 min_stgpr;
  58. u8 rsv[2];
  59. u32 min_stgpr_diff;
  60. } __packed;
  61. struct mt7915_dfs_radar_spec {
  62. struct mt7915_dfs_pulse pulse_th;
  63. struct mt7915_dfs_pattern radar_pattern[16];
  64. };
  65. #endif