prima: WLAN Driver Release 3.1.7.9

This is the initial release of the Prima WLAN Driver
diff --git a/CORE/WDI/TRP/DTS/inc/wlan_qct_wdi_dts.h b/CORE/WDI/TRP/DTS/inc/wlan_qct_wdi_dts.h
new file mode 100644
index 0000000..c459fa4
--- /dev/null
+++ b/CORE/WDI/TRP/DTS/inc/wlan_qct_wdi_dts.h
@@ -0,0 +1,209 @@
+/*
+ * Copyright (c) 2012, Code Aurora Forum. All rights reserved.
+ *
+ * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
+ *
+ *
+ * Permission to use, copy, modify, and/or distribute this software for
+ * any purpose with or without fee is hereby granted, provided that the
+ * above copyright notice and this permission notice appear in all
+ * copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef __WLAN_QCT_DTS_H
+#define __WLAN_QCT_DTS_H
+/**=========================================================================
+ *     
+ *       \file  wlan_qct_wdi_dts.h
+ *          
+ *       \brief define Datas Trnasport Service API 
+ *                               
+ * WLAN Device Abstraction layer interface for Transport drivers (SDIO/DXE)
+ * DESCRIPTION
+ * This file contains the API exposed by the 
+ * wlan device abstarction layer module for abstracting DXE/SDIO.
+ *
+ * Copyright (c) 2008 QUALCOMM Incorporated. All Rights Reserved.
+ * Qualcomm Confidential and Proprietary
+ *
+ * Example usage for DXE.
+ * ----------------------
+ * On Platform init
+ *         DAL  will then invoke WDTS_open
+ *
+ * On DAL init
+ *     DAL will invike WDTS_start
+ *
+ * On transmit:
+ *         DAL will invoke WDTS_TxPacket API
+ * 
+ * On transmit complete:
+ *         DXE will serialize into TX thread
+ *         In TX thread it will invoke
+ *
+ * On receive:
+ *        DXE will serialize into RX thread
+ *        In TX thread it will invoke WDTS_RXPacket API 
+ *
+ * On DXE ring full:
+ *        DXE will serialize into TX thread
+ *        In TX thread it will invoke WDTS_OOResourceNotification API 
+ */
+
+typedef enum
+{
+   WDTS_CHANNEL_TX_LOW_PRI,
+   WDTS_CHANNEL_TX_HIGH_PRI,
+   WDTS_CHANNEL_RX_LOW_PRI,
+   WDTS_CHANNEL_RX_HIGH_PRI,
+   WDTS_CHANNEL_MAX
+}  WDTS_ChannelType;
+
+typedef enum
+{
+   WDTS_POWER_STATE_FULL,
+   WDTS_POWER_STATE_IMPS,
+   WDTS_POWER_STATE_BMPS,
+   WDTS_POWER_STATE_DOWN,
+   WDTS_POWER_STATE_MAX
+} WDTS_PowerStateType;
+
+
+typedef wpt_status (*WDTS_TxCompleteCbType)(void *pContext, wpt_packet *pFrame, wpt_status status);
+typedef wpt_status (*WDTS_RxFrameReadyCbType) (void *pContext, wpt_packet *pFrame, WDTS_ChannelType channel);
+typedef wpt_status (*WDTS_LowResourceCbType)(void *pContext, WDTS_ChannelType channel, wpt_boolean on);
+typedef void  (*WDTS_SetPSCbType)(wpt_status  status, unsigned int dxePhyAddr);
+/* DTS Set power state ACK callback. 
+ * This callback function should be invoked by the DTS to notify WDI that set
+ * power state request is complete.
+ * Parameters:
+ * status: status of the set operation
+ * pUserData:Cookie that should be passed back to the caller along with the callback.
+ * Return Value: None.
+ *
+ */
+typedef void  (*WDTS_SetPowerStateCbType)(wpt_status   status,
+                                          unsigned int dxePhyAddr,
+                                          void*        pUserData);
+
+typedef struct {
+  void * (*open)(void);
+  wpt_status (*start) (void *pContext);
+  wpt_status (*register_client)(void *pContext, WDTS_RxFrameReadyCbType, 
+      WDTS_TxCompleteCbType, WDTS_LowResourceCbType, void *clientData);
+  wpt_status (*xmit) (void *pContext, wpt_packet *packet, WDTS_ChannelType channel);
+  wpt_status (*txComplete) (void *pContext, wpt_uint32 ucTxResReq);
+  wpt_status (*setPowerState) (void *pContext, WDTS_PowerStateType   powerState, 
+                               WDTS_SetPSCbType cBack);
+  wpt_status (*stop) (void *pContext);
+  wpt_status (*close) (void *pContext);
+  wpt_uint32 (*getFreeTxDataResNumber) (void *pContext);
+} WDTS_TransportDriverTrype;
+
+typedef struct {
+   WDTS_SetPowerStateCbType cback;
+   void*        pUserData;
+} WDTS_SetPowerStateCbInfoType;
+
+/* DTS open  function. 
+ * On open the transport device should initialize itself.
+ * Parameters:
+ *  pContext:Cookie that should be passed back to the caller along 
+ *  with the callback.
+ *
+ * Return Value: SUCCESS  Completed successfully.
+ *     FAILURE_XXX  Request was rejected due XXX Reason.
+ 
+ */
+wpt_status WDTS_openTransport( void *pContext);
+
+
+
+
+/* DTS start  function. 
+ * On start the transport device should start running.
+ * Parameters:
+ * pContext:Cookie that should be passed back to the caller along 
+ * with the callback.
+ *
+ * Return Value: SUCCESS  Completed successfully.
+ *     FAILURE_XXX  Request was rejected due XXX Reason.
+ *
+ */
+wpt_status WDTS_startTransport( void *pContext);
+
+
+
+
+/* DTS Tx packet function. 
+ * This function should be invoked by the DAL Dataservice to schedule transmit frame through DXE/SDIO.
+ * Parameters:
+ * pContext:Cookie that should be passed back to the caller along with the callback.
+ * pFrame:Refernce to PAL frame.
+ * Return Value: SUCCESS  Completed successfully.
+ *     FAILURE_XXX  Request was rejected due XXX Reason.
+ *
+ */
+wpt_status WDTS_TxPacket(void *pContext, wpt_packet *pFrame);
+
+/* DTS Tx Complete function. 
+ * This function should be invoked by the DAL Dataservice to notify tx completion to DXE/SDIO.
+ * Parameters:
+ * pContext:Cookie that should be passed back to the caller along with the callback.
+ * ucTxResReq:TX resource number required by TL
+ * Return Value: SUCCESS  Completed successfully.
+ *     FAILURE_XXX  Request was rejected due XXX Reason.
+ *
+ */
+wpt_status WDTS_CompleteTx(void *pContext, wpt_uint32 ucTxResReq);
+
+/* DTS Set power state function. 
+ * This function should be invoked by the DAL to notify the WLAN device power state.
+ * Parameters:
+ * pContext:Cookie that should be passed back to the caller along with the callback.
+ * powerState:Power state of the WLAN device.
+ * Return Value: SUCCESS  Set successfully in DXE control blk.
+ *     FAILURE_XXX  Request was rejected due XXX Reason.
+ *
+ */
+wpt_status WDTS_SetPowerState(void *pContext, WDTS_PowerStateType powerState,
+                              WDTS_SetPowerStateCbType cback);
+
+/* DTS Stop function. 
+ * Stop Transport driver, ie DXE, SDIO
+ * Parameters:
+ * pContext:Cookie that should be passed back to the caller along with the callback.
+ * Return Value: SUCCESS  Completed successfully.
+ *     FAILURE_XXX  Request was rejected due XXX Reason.
+ *
+ */
+wpt_status WDTS_Stop(void *pContext);
+
+/* DTS Close function. 
+ * Close Transport driver, ie DXE, SDIO
+ * Parameters:
+ * pContext:Cookie that should be passed back to the caller along with the callback.
+ * Return Value: SUCCESS  Completed successfully.
+ *     FAILURE_XXX  Request was rejected due XXX Reason.
+ *
+ */
+wpt_status WDTS_Close(void *pContext);
+
+/* Get free TX data descriptor number from DXE
+ * Parameters:
+ * pContext: Cookie that should be passed back to the caller along with the callback.
+ * Return Value: number of free descriptors for TX data channel
+ *
+ */
+wpt_uint32 WDTS_GetFreeTxDataResNumber(void *pContext);
+
+#endif