xref: /wlan-dirver/qca-wifi-host-cmn/dp/inc/cdp_txrx_cmn_reg.h (revision 3149adf58a329e17232a4c0e58d460d025edd55a)
1 /*
2  * Copyright (c) 2011-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 
19  /**
20  * @file cdp_txrx_cmn.h
21  * @brief Define the host data path converged API functions
22  * called by the host control SW and the OS interface module
23  */
24 #ifndef _CDP_TXRX_CMN_REG_H_
25 #define _CDP_TXRX_CMN_REG_H_
26 
27 #include "hif_main.h"
28 
29 #define MOB_DRV_LEGACY_DP	0xdeed/*FIXME Add MCL device IDs */
30 #define LITHIUM_DP		0xfffe/*FIXME Add Litium device ID */
31 /* Use these device IDs for attach in future */
32 
33 ol_txrx_soc_handle ol_txrx_soc_attach(void *scn_handle, struct ol_if_ops *dp_ol_if_ops);
34 
35 #ifdef QCA_WIFI_QCA8074
36 void *dp_soc_attach_wifi3(void *ctrl_psoc, void *hif_handle,
37 	HTC_HANDLE htc_handle, qdf_device_t qdf_osdev,
38 	struct ol_if_ops *ol_ops);
39 #else
40 /*
41  * dp_soc_attach_wifi3() - Attach txrx SOC
42  * @ctrl_psoc:	Opaque SOC handle from Ctrl plane
43  * @htc_handle:	Opaque HTC handle
44  * @hif_handle:	Opaque HIF handle
45  * @qdf_osdev:	QDF device
46  *
47  * Return: DP SOC handle on success, NULL on failure
48  */
49 static inline void *dp_soc_attach_wifi3(void *ctrl_psoc, void *hif_handle,
50 	HTC_HANDLE htc_handle, qdf_device_t qdf_osdev,
51 	struct ol_if_ops *ol_ops)
52 {
53 	return NULL;
54 }
55 #endif /* QCA_WIFI_QCA8074 */
56 
57 static inline ol_txrx_soc_handle cdp_soc_attach(u_int16_t devid,
58 		void *hif_handle, void *psoc, void *htc_handle,
59 		qdf_device_t qdf_dev, struct ol_if_ops *dp_ol_if_ops)
60 {
61 	switch (devid) {
62 	case LITHIUM_DP: /*FIXME Add lithium devide IDs */
63 	case QCA8074_DEVICE_ID: /* Hawekeye */
64 	case QCA6290_DEVICE_ID:
65 	case RUMIM2M_DEVICE_ID_NODE0: /*lithium emulation */
66 	case RUMIM2M_DEVICE_ID_NODE1: /*lithium emulation */
67 	case RUMIM2M_DEVICE_ID_NODE2: /*lithium emulation */
68 	case RUMIM2M_DEVICE_ID_NODE3: /*lithium emulation */
69 		return dp_soc_attach_wifi3(psoc, hif_handle, htc_handle,
70 			qdf_dev, dp_ol_if_ops);
71 	break;
72 	default:
73 		return ol_txrx_soc_attach(psoc, dp_ol_if_ops);
74 	}
75 	return NULL;
76 }
77 
78 #endif /*_CDP_TXRX_CMN_REG_H_ */
79