fwcfg.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. /*
  2. * Copyright (C) 2016 MediaTek Inc.
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 as
  6. * published by the Free Software Foundation.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  11. * See http://www.gnu.org/licenses/gpl-2.0.html for more details.
  12. */
  13. #ifndef _FWCFG_H
  14. #define _FWCFG_H
  15. #include "precomp.h"
  16. /*******************************************************************************
  17. * C O M P I L E R F L A G S
  18. ********************************************************************************
  19. */
  20. /*******************************************************************************
  21. * E X T E R N A L R E F E R E N C E S
  22. ********************************************************************************
  23. */
  24. /*******************************************************************************
  25. * C O N S T A N T S
  26. ********************************************************************************
  27. */
  28. #ifdef FW_CFG_SUPPORT
  29. #define MAX_CMD_ITEM_MAX 4
  30. #define MAX_CMD_NAME_MAX_LENGTH 32
  31. #define MAX_CMD_VALUE_MAX_LENGTH 32
  32. #define MAX_CMD_TYPE_LENGTH 1
  33. #define MAX_CMD_RESERVE_LENGTH 1
  34. #define MAX_CMD_STRING_LENGTH 1
  35. #define MAX_CMD_VALUE_LENGTH 1
  36. #define CMD_FORMAT_V1_LENGTH (MAX_CMD_NAME_MAX_LENGTH + \
  37. MAX_CMD_VALUE_MAX_LENGTH + MAX_CMD_TYPE_LENGTH + \
  38. MAX_CMD_STRING_LENGTH + MAX_CMD_VALUE_LENGTH + MAX_CMD_RESERVE_LENGTH)
  39. #define MAX_CMD_BUFFER_LENGTH (CMD_FORMAT_V1_LENGTH * MAX_CMD_ITEM_MAX)
  40. #define FW_CFG_FILE "/etc/firmware/wifi_fw.cfg"
  41. /*******************************************************************************
  42. * D A T A T Y P E S
  43. ********************************************************************************
  44. */
  45. enum _CMD_VER_T {
  46. CMD_VER_1,
  47. CMD_VER_1_EXT
  48. };
  49. enum _CMD_TYPE_T {
  50. CMD_TYPE_QUERY,
  51. CMD_TYPE_SET
  52. };
  53. struct _CMD_FORMAT_V1_T {
  54. UINT_8 itemType;
  55. UINT_8 itemStringLength;
  56. UINT_8 itemValueLength;
  57. UINT_8 Reserved;
  58. UINT_8 itemString[MAX_CMD_NAME_MAX_LENGTH];
  59. UINT_8 itemValue[MAX_CMD_VALUE_MAX_LENGTH];
  60. };
  61. struct _CMD_HEADER_T {
  62. enum _CMD_VER_T cmdVersion;
  63. enum _CMD_TYPE_T cmdType;
  64. UINT_8 itemNum;
  65. UINT_16 cmdBufferLen;
  66. UINT_8 buffer[MAX_CMD_BUFFER_LENGTH];
  67. };
  68. struct WLAN_CFG_PARSE_STATE_S {
  69. CHAR *ptr;
  70. CHAR *text;
  71. INT_32 nexttoken;
  72. UINT_32 maxSize;
  73. };
  74. struct _FW_CFG {
  75. PUINT_8 key;
  76. PUINT_8 value;
  77. };
  78. /*******************************************************************************
  79. * P U B L I C D A T A
  80. ********************************************************************************
  81. */
  82. /*******************************************************************************
  83. * P R I V A T E D A T A
  84. ********************************************************************************
  85. */
  86. /*******************************************************************************
  87. * M A C R O S
  88. ********************************************************************************
  89. */
  90. /*******************************************************************************
  91. * F U N C T I O N D E C L A R A T I O N S
  92. ********************************************************************************
  93. */
  94. INT_32 getFwCfgItemNum(void);
  95. PUINT_8 getFwCfgItemKey(UINT_8 i);
  96. PUINT_8 getFwCfgItemValue(UINT_8 i);
  97. void wlanCfgFwSetParam(PUINT_8 fwBuffer, PCHAR cmdStr, PCHAR value, int num, int type);
  98. WLAN_STATUS wlanCfgSetGetFw(IN P_ADAPTER_T prAdapter, const PCHAR fwBuffer, int cmdNum, enum _CMD_TYPE_T cmdType);
  99. WLAN_STATUS wlanFwCfgParse(IN P_ADAPTER_T prAdapter, PUINT_8 pucConfigBuf);
  100. WLAN_STATUS wlanFwArrayCfg(IN P_ADAPTER_T prAdpter);
  101. WLAN_STATUS wlanFwFileCfg(IN P_ADAPTER_T prAdpter);
  102. #endif
  103. #endif