wmi_unified_smart_ant_param.h 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /*
  2. * Copyright (c) 2016-2018 The Linux Foundation. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for
  5. * any purpose with or without fee is hereby granted, provided that the
  6. * above copyright notice and this permission notice appear in all
  7. * copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
  10. * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
  11. * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
  12. * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  13. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  14. * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  15. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  16. * PERFORMANCE OF THIS SOFTWARE.
  17. */
  18. #ifndef _WMI_UNIFIED_SMART_ANT_PARAM_H_
  19. #define _WMI_UNIFIED_SMART_ANT_PARAM_H_
  20. /**
  21. * struct ant_switch_tbl_params - Antenna switch table params
  22. * @ant_ctrl_common1: ANtenna control common param 1
  23. * @ant_ctrl_common2: Antenna control commn param 2
  24. */
  25. struct ant_switch_tbl_params {
  26. uint32_t ant_ctrl_common1;
  27. uint32_t ant_ctrl_common2;
  28. uint32_t pdev_id;
  29. uint32_t antCtrlChain;
  30. };
  31. /**
  32. * struct smart_ant_enable_params - Smart antenna params
  33. * @enable: Enable/Disable
  34. * @mode: SA mode
  35. * @rx_antenna: RX antenna config
  36. * @gpio_pin : GPIO pin config
  37. * @gpio_func : GPIO function config
  38. */
  39. struct smart_ant_enable_params {
  40. uint32_t enable;
  41. uint32_t mode;
  42. uint32_t rx_antenna;
  43. uint32_t gpio_pin[WMI_HAL_MAX_SANTENNA];
  44. uint32_t gpio_func[WMI_HAL_MAX_SANTENNA];
  45. uint32_t pdev_id;
  46. };
  47. /**
  48. * struct smart_ant_rx_ant_params - RX antenna params
  49. * @antenna: RX antenna
  50. */
  51. struct smart_ant_rx_ant_params {
  52. uint32_t antenna;
  53. uint32_t pdev_id;
  54. };
  55. /**
  56. * struct smart_ant_tx_ant_params - TX antenna param
  57. * @antenna_array: Antenna arry
  58. * @vdev_id: VDEV id
  59. */
  60. struct smart_ant_tx_ant_params {
  61. uint32_t *antenna_array;
  62. uint8_t vdev_id;
  63. };
  64. /**
  65. * struct smart_ant_training_info_params - SA training params
  66. * @vdev_id: VDEV id
  67. * @rate_array: Rates array
  68. * @antenna_array: Antenna array
  69. * @numpkts: num packets for training
  70. */
  71. struct smart_ant_training_info_params {
  72. uint8_t vdev_id;
  73. uint32_t *rate_array;
  74. uint32_t *antenna_array;
  75. uint32_t numpkts;
  76. };
  77. /**
  78. * struct smart_ant_node_config_params - SA node config params
  79. * @vdev_id: VDEV id
  80. * @cmd_id: Command id
  81. * @args_count: Arguments count
  82. */
  83. struct smart_ant_node_config_params {
  84. uint8_t vdev_id;
  85. uint32_t cmd_id;
  86. uint16_t args_count;
  87. uint32_t *args_arr;
  88. };
  89. #endif /* _WMI_UNIFIED_SMART_ANT_PARAM_H_ */