PageRenderTime 40ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 1ms

/drivers/net/wireless/tiwlan1251/common/src/TNETW_Driver/Export_Inc/TNETW_Driver_types.h

https://bitbucket.org/cyanogenmod/cm-kernel
C Header | 201 lines | 93 code | 41 blank | 67 comment | 0 complexity | 4813941108484e5fd1ab27dfcdff2d79 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, AGPL-1.0
  1. /****************************************************************************
  2. **+-----------------------------------------------------------------------+**
  3. **| |**
  4. **| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved. |**
  5. **| All rights reserved. |**
  6. **| |**
  7. **| Redistribution and use in source and binary forms, with or without |**
  8. **| modification, are permitted provided that the following conditions |**
  9. **| are met: |**
  10. **| |**
  11. **| * Redistributions of source code must retain the above copyright |**
  12. **| notice, this list of conditions and the following disclaimer. |**
  13. **| * Redistributions in binary form must reproduce the above copyright |**
  14. **| notice, this list of conditions and the following disclaimer in |**
  15. **| the documentation and/or other materials provided with the |**
  16. **| distribution. |**
  17. **| * Neither the name Texas Instruments nor the names of its |**
  18. **| contributors may be used to endorse or promote products derived |**
  19. **| from this software without specific prior written permission. |**
  20. **| |**
  21. **| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |**
  22. **| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |**
  23. **| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
  24. **| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |**
  25. **| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
  26. **| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |**
  27. **| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
  28. **| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
  29. **| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |**
  30. **| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
  31. **| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |**
  32. **| |**
  33. **+-----------------------------------------------------------------------+**
  34. ****************************************************************************/
  35. /***************************************************************************/
  36. /* */
  37. /* MODULE: TNETW-Driver */
  38. /* */
  39. /* PURPOSE: Driver constants and type definitions */
  40. /* */
  41. /***************************************************************************/
  42. #ifndef TNETW_DRIVER_TYPES_H
  43. #define TNETW_DRIVER_TYPES_H
  44. #include "commonTypes.h"
  45. #include "whalCtrl_api.h"
  46. #include "public_descriptors.h" /* The FW Tx-Descriptor and Tx-Result structures are used to ensure
  47. FW compatibility and to avoid conversions in the data path. */
  48. #if defined(HW_ACCESS_WSPI)
  49. /* Read data offset */
  50. #define TNETWIF_READ_OFFSET_BYTES 8
  51. /* Write data offset */
  52. #define TNETWIF_WRITE_OFFSET_BYTES 4
  53. #else
  54. #define TNETWIF_READ_OFFSET_BYTES 0
  55. #define TNETWIF_WRITE_OFFSET_BYTES 0
  56. #endif
  57. /* Tx packet offset before the actual data */
  58. #define TX_TOTAL_OFFSET_BEFORE_DATA (TNETWIF_WRITE_OFFSET_BYTES + sizeof(DbTescriptor))
  59. /* Tx packet Control-Block flags bit-mask. */
  60. #define TX_CTRL_BLK_FLAGS_XFER_DONE_ISSUED 0x0001 /* Xfer-Done already issued to upper driver. */
  61. #define TX_CTRL_BLK_FLAGS_TX_COMPLETE_ISSUED 0x0002 /* Tx-Complete already issued to upper driver. */
  62. /* TNETW Driver Callback Module owner */
  63. typedef enum
  64. {
  65. TNETW_DRIVER_TX_XFER_OWNER = 0x0100,
  66. TNETW_DRIVER_RX_XFER_OWNER = 0x0200,
  67. TNETW_DRIVER_HAL_CTRL_OWNER = 0x0300,
  68. TNETW_DRIVER_MAC_SERVICES_OWNER = 0x0400,
  69. TNETW_DRIVER_TX_RESULT_OWNER = 0x0500,
  70. TNETW_DRIVER_TWD_OWNER = 0x0600,
  71. TNETW_DRIVER_LAST_OWNER = TNETW_DRIVER_TWD_OWNER
  72. } TNETW_DRIVER_CB_ModuleOwner_e;
  73. /* TxXfer MODULE Callbacks */
  74. #define TX_XFER_SEND_PKT_TRANSFER 0x01
  75. #define TX_XFER_SEND_PKT_DEBUG 0x02
  76. /* TxResult MODULE Callbacks */
  77. #define TX_RESULT_SEND_PKT_COMPLETE 0x01
  78. /* TNETW Driver Callback ID */
  79. typedef enum
  80. {
  81. /* Internal Failure Event Callbacks */
  82. TNETW_DRIVER_EVENT_FAILURE = HAL_INTERNAL_EVENT_FAILURE,
  83. /* MAC Services Event Callbacks */
  84. TNETW_DRIVER_EVENT_SCAN_COMPLETE = TNETW_DRIVER_MAC_SERVICES_OWNER | HAL_EVENT_SCAN_CMPLT, /* WHAL HW EVENT MBOX */
  85. TNETW_DRIVER_EVENT_PS_MODE_COMPLETE = TNETW_DRIVER_MAC_SERVICES_OWNER | HAL_EVENT_PS_REPORT, /* WHAL HW EVENT MBOX */
  86. TNETW_DRIVER_EVENT_MEASUREMENT_COMPLETE = TNETW_DRIVER_MAC_SERVICES_OWNER | HAL_EVENT_MEASUREMENT_COMPLETE, /* WHAL HW EVENT MBOX */
  87. /* Ctrl Event Callbacks */
  88. TNETW_DRIVER_EVENT_MEASUREMENT_START = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_MEASUREMENT_START,
  89. TNETW_DRIVER_EVENT_CALIB_CMPLT = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_CALIB_CMPLT,
  90. TNETW_DRIVER_EVENT_RSSI_LEVEL = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_RSSI_LEVEL,
  91. TNETW_DRIVER_EVENT_PS_REPORT = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_PS_REPORT,
  92. TNETW_DRIVER_EVENT_SYNCHRONIZATION_TIMEOUT = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_SYNCHRONIZATION_TIMEOUT,
  93. TNETW_DRIVER_EVENT_HEALTH_REPORT = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_HEALTH_REPORT,
  94. TNETW_DRIVER_EVENT_ACI = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_ACI,
  95. TNETW_DRIVER_EVENT_DEBUG_MESSAGE = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_DEBUG_MESSAGE,
  96. TNETW_DRIVER_EVENT_MAC_STATUS = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_MAC_STATUS,
  97. TNETW_DRIVER_EVENT_DISCONNECT_COMPLETE = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_DISCONNECT_COMPLETE,
  98. TNETW_DRIVER_EVENT_JOIN_CMPLT = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_JOIN_CMPLT,
  99. TNETW_DRIVER_EVENT_SWITCH_CHANNEL_CMPLT = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_SWITCH_CHANNEL_CMPLT,
  100. TNETW_DRIVER_EVENT_BSS_LOSE = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_BSS_LOSE,
  101. TNETW_DRIVER_EVENT_MAX_TX_RETRY = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_MAX_TX_RETRY,
  102. TNETW_DRIVER_EVENT_AP_DISCOVERY_COMPLETE = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_AP_DISCOVERY_COMPLETE,
  103. TNETW_DRIVER_EVENT_SPS_SCAN_CMPLT = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_SPS_SCAN_CMPLT,
  104. TNETW_DRIVER_EVENT_BSS_REGAIN = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_BSS_REGAIN,
  105. TNETW_DRIVER_EVENT_RSSI_LEVEL_REGAIN = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_RSSI_LEVEL_REGAIN,
  106. TNETW_DRIVER_EVENT_BT_COEX_SENSE = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_SOFT_GEMINI_SENSE,
  107. TNETW_DRIVER_EVENT_BT_COEX_PROTECTIVE_MODE = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_SOFT_GEMINI_PREDICTION,
  108. TNETW_DRIVER_EVENT_BT_COEX_AVALANCHE = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_EVENT_SOFT_GEMINI_AVALANCHE,
  109. TNETW_DRIVER_COMMAND_COMPLETE = TNETW_DRIVER_HAL_CTRL_OWNER | HAL_INT_COMMAND_COMPLETE,
  110. /* Tx Data Path Callbacks */
  111. TNETW_DRIVER_TX_XFER_SEND_PKT_TRANSFER = TNETW_DRIVER_TX_XFER_OWNER | TX_XFER_SEND_PKT_TRANSFER, /* TxXfer MODULE */
  112. TNETW_DRIVER_TX_RESULT_SEND_PKT_COMPLETE = TNETW_DRIVER_TX_RESULT_OWNER | TX_RESULT_SEND_PKT_COMPLETE, /* TxResult MODULE */
  113. TNETW_DRIVER_TX_XFER_SEND_PKT_DEBUG = TNETW_DRIVER_TX_XFER_OWNER | TX_XFER_SEND_PKT_DEBUG, /* TxXfer MODULE */
  114. /* Rx Data Path Callbacks */
  115. TNETW_DRIVER_RX_RECEIVE_PACKET = TNETW_DRIVER_RX_XFER_OWNER | HAL_INT_RECEIVE_PACKET, /* WHAL RX MODULE */
  116. TNETW_DRIVER_RX_REQUEST_FOR_BUFFER = TNETW_DRIVER_RX_XFER_OWNER | HAL_INT_REQUEST_FOR_BUFFER, /* WHAL RX MODULE */
  117. }TnetwDrv_CB_ID_e;
  118. /* TNETW Driver print functions codes. */
  119. typedef enum
  120. {
  121. TNETW_DRV_PRINT_TX_CTRL_BLK_TBL,
  122. TNETW_DRV_PRINT_TX_HW_QUEUE_INFO,
  123. TNETW_DRV_PRINT_TX_XFER_INFO,
  124. TNETW_DRV_PRINT_TX_RESULT_INFO,
  125. TNETW_DRV_CLEAR_TX_RESULT_INFO
  126. }TnetwDrv_PrintInfoType_e;
  127. /* Tx Control-Block Packet parameters that are not included in the Tx-descriptor. */
  128. typedef struct
  129. {
  130. const void *pFrame; /* Points to the whole packet including Tx-Descriptor + MAC-Header + Data. */
  131. UINT32 packetId; /* The packet ID used by the upper driver to identify it when called back. */
  132. UINT16 headerFrameCtrl; /* The Frame Control field from the MAC header. */
  133. UINT16 flags; /* See TX_CTRL_BLK_FLAGS_xxxx above. */
  134. #ifdef TI_DBG
  135. UINT32 dbgPktSeqNum; /* Packets sequence counter per queue. */
  136. #endif
  137. } TxPktParams_t;
  138. /*
  139. * txCtrlBlkEntry_t:
  140. * =================
  141. * Contains the Tx packet parameters required for the Tx process, including
  142. * the Tx descriptor and the attributes required for HW-queue calculations.
  143. * Allocated for each packet sent from the upper driver and freed upon Tx-complete.
  144. * The entry index is the descriptor-ID written in the descriptor and copied back in
  145. * the tx-complete results.
  146. */
  147. typedef struct _txCtrlBlkEntry_t
  148. {
  149. struct _txCtrlBlkEntry_t * pNextFreeEntry; /* Pointer to the next free entry. */
  150. DbTescriptor txDescriptor; /* The packet descriptor copied to the FW. */
  151. TxPktParams_t txPktParams; /* Per packet parameters not included in the descriptor. */
  152. } txCtrlBlkEntry_t;
  153. typedef void (*TnetDrv_callback_t)(TI_HANDLE CB_Handle);
  154. /* Data path constant parametrs */
  155. #define DP_RX_PACKET_RING_CHUNK_SIZE 1600
  156. #define DP_TX_PACKET_RING_CHUNK_SIZE 1600
  157. #define DP_RX_PACKET_RING_CHUNK_NUM 2
  158. #define DP_TX_PACKET_RING_CHUNK_NUM 2
  159. #define DP_TX_COMPLETE_TIME_OUT 20
  160. #endif /* TNETW_DRIVER_TYPES_H */