Nandha Kishore Easwaran | e5444bc | 2016-10-20 13:23:23 +0530 | [diff] [blame] | 1 | /* |
Basamma Yakkanahalli | b85768e | 2019-04-27 05:24:00 +0530 | [diff] [blame] | 2 | * Copyright (c) 2011-2019 The Linux Foundation. All rights reserved. |
Nandha Kishore Easwaran | e5444bc | 2016-10-20 13:23:23 +0530 | [diff] [blame] | 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 | |
Vijay Pamidipati | 537d929 | 2016-12-11 13:39:14 +0530 | [diff] [blame] | 27 | #include "hif_main.h" |
| 28 | |
Himanshu Agarwal | f064db9 | 2016-12-29 12:25:35 +0530 | [diff] [blame] | 29 | #define MOB_DRV_LEGACY_DP 0xdeed/*FIXME Add MCL device IDs */ |
Venkateswara Swamy Bandaru | 1f0755c | 2018-08-17 18:38:49 +0530 | [diff] [blame] | 30 | #define LITHIUM_DP 0xfffd/*FIXME Add Litium device ID */ |
Nandha Kishore Easwaran | e5444bc | 2016-10-20 13:23:23 +0530 | [diff] [blame] | 31 | /* Use these device IDs for attach in future */ |
| 32 | |
Saket Jha | 1d97e0c | 2019-08-27 10:40:00 -0700 | [diff] [blame] | 33 | #if defined(DP_TXRX_SOC_ATTACH) |
| 34 | static inline ol_txrx_soc_handle |
| 35 | ol_txrx_soc_attach(void *scn_handle, struct ol_if_ops *dp_ol_if_ops) |
| 36 | { |
| 37 | return NULL; |
| 38 | } |
| 39 | #else |
| 40 | ol_txrx_soc_handle |
| 41 | ol_txrx_soc_attach(void *scn_handle, struct ol_if_ops *dp_ol_if_ops); |
| 42 | #endif |
Nandha Kishore Easwaran | e5444bc | 2016-10-20 13:23:23 +0530 | [diff] [blame] | 43 | |
Adil Saeed Musthafa | 61a2169 | 2018-07-17 20:49:31 -0700 | [diff] [blame] | 44 | /** |
Leo Chang | db6358c | 2016-09-27 17:00:52 -0700 | [diff] [blame] | 45 | * dp_soc_attach_wifi3() - Attach txrx SOC |
Sathyanarayanan Esakkiappan | 38c6f98 | 2017-12-05 12:00:31 +0530 | [diff] [blame] | 46 | * @ctrl_psoc: Opaque SOC handle from Ctrl plane |
Leo Chang | db6358c | 2016-09-27 17:00:52 -0700 | [diff] [blame] | 47 | * @htc_handle: Opaque HTC handle |
| 48 | * @hif_handle: Opaque HIF handle |
| 49 | * @qdf_osdev: QDF device |
Adil Saeed Musthafa | 61a2169 | 2018-07-17 20:49:31 -0700 | [diff] [blame] | 50 | * @ol_ops: Offload Operations |
| 51 | * @device_id: Device ID |
Leo Chang | db6358c | 2016-09-27 17:00:52 -0700 | [diff] [blame] | 52 | * |
| 53 | * Return: DP SOC handle on success, NULL on failure |
| 54 | */ |
Anish Nataraj | e9d4c3b | 2018-11-24 22:24:56 +0530 | [diff] [blame] | 55 | |
| 56 | /** |
| 57 | * dp_soc_init_wifi3() - Initialize txrx SOC |
| 58 | * @soc: Opaque DP SOC handle |
| 59 | * @ctrl_psoc: Opaque SOC handle from control plane |
| 60 | * @hif_handle: Opaque HIF handle |
| 61 | * @htc_handle: Opaque HTC handle |
| 62 | * @qdf_osdev: QDF device |
| 63 | * @ol_ops: Offload Operations |
| 64 | * @device_id: Device ID |
| 65 | * |
| 66 | * Return: DP SOC handle on success, NULL on failure |
| 67 | */ |
Basamma Yakkanahalli | b85768e | 2019-04-27 05:24:00 +0530 | [diff] [blame] | 68 | #if defined(QCA_WIFI_QCA8074) || defined(QCA_WIFI_QCA6018) |
Akshay Kosigi | 4002f76 | 2019-07-08 23:04:36 +0530 | [diff] [blame] | 69 | struct cdp_soc_t * |
| 70 | dp_soc_attach_wifi3(struct cdp_ctrl_objmgr_psoc *ctrl_psoc, |
| 71 | struct hif_opaque_softc *hif_handle, |
| 72 | HTC_HANDLE htc_handle, qdf_device_t qdf_osdev, |
| 73 | struct ol_if_ops *ol_ops, uint16_t device_id); |
Pavankumar Nandeshwar | a234716 | 2019-12-18 23:20:31 +0530 | [diff] [blame] | 74 | void *dp_soc_init_wifi3(struct cdp_soc_t *soc, |
| 75 | struct cdp_ctrl_objmgr_psoc *ctrl_psoc, |
Akshay Kosigi | 4002f76 | 2019-07-08 23:04:36 +0530 | [diff] [blame] | 76 | struct hif_opaque_softc *hif_handle, |
Anish Nataraj | e9d4c3b | 2018-11-24 22:24:56 +0530 | [diff] [blame] | 77 | HTC_HANDLE htc_handle, qdf_device_t qdf_osdev, |
| 78 | struct ol_if_ops *ol_ops, uint16_t device_id); |
Adil Saeed Musthafa | 61a2169 | 2018-07-17 20:49:31 -0700 | [diff] [blame] | 79 | #else |
Akshay Kosigi | 4002f76 | 2019-07-08 23:04:36 +0530 | [diff] [blame] | 80 | static inline |
| 81 | struct cdp_soc_t *dp_soc_attach_wifi3(struct cdp_ctrl_objmgr_psoc *ctrl_psoc, |
| 82 | struct hif_opaque_softc *hif_handle, |
| 83 | HTC_HANDLE htc_handle, |
| 84 | qdf_device_t qdf_osdev, |
| 85 | struct ol_if_ops *ol_ops, |
| 86 | uint16_t device_id) |
Leo Chang | db6358c | 2016-09-27 17:00:52 -0700 | [diff] [blame] | 87 | { |
| 88 | return NULL; |
| 89 | } |
Anish Nataraj | e9d4c3b | 2018-11-24 22:24:56 +0530 | [diff] [blame] | 90 | |
| 91 | static inline |
Pavankumar Nandeshwar | a234716 | 2019-12-18 23:20:31 +0530 | [diff] [blame] | 92 | void *dp_soc_init_wifi3(struct cdp_soc_t *soc, |
| 93 | struct cdp_ctrl_objmgr_psoc *ctrl_psoc, |
Akshay Kosigi | 4002f76 | 2019-07-08 23:04:36 +0530 | [diff] [blame] | 94 | struct hif_opaque_softc *hif_handle, |
Anish Nataraj | e9d4c3b | 2018-11-24 22:24:56 +0530 | [diff] [blame] | 95 | HTC_HANDLE htc_handle, qdf_device_t qdf_osdev, |
| 96 | struct ol_if_ops *ol_ops, uint16_t device_id) |
| 97 | { |
| 98 | return NULL; |
| 99 | } |
Leo Chang | db6358c | 2016-09-27 17:00:52 -0700 | [diff] [blame] | 100 | #endif /* QCA_WIFI_QCA8074 */ |
| 101 | |
Himanshu Batra | 032d352 | 2019-07-10 12:36:06 +0530 | [diff] [blame] | 102 | static inline ol_txrx_soc_handle cdp_soc_attach( |
| 103 | u_int16_t devid, void *hif_handle, void *psoc, |
| 104 | HTC_HANDLE htc_handle, qdf_device_t qdf_dev, |
| 105 | struct ol_if_ops *dp_ol_if_ops) |
Nandha Kishore Easwaran | e5444bc | 2016-10-20 13:23:23 +0530 | [diff] [blame] | 106 | { |
| 107 | switch (devid) { |
| 108 | case LITHIUM_DP: /*FIXME Add lithium devide IDs */ |
Vijay Pamidipati | 537d929 | 2016-12-11 13:39:14 +0530 | [diff] [blame] | 109 | case QCA8074_DEVICE_ID: /* Hawekeye */ |
Venkateswara Swamy Bandaru | 1f0755c | 2018-08-17 18:38:49 +0530 | [diff] [blame] | 110 | case QCA8074V2_DEVICE_ID: /* Hawekeye V2*/ |
Balamurugan Mahalingam | 3ab3633 | 2018-01-29 19:15:02 +0530 | [diff] [blame] | 111 | case QCA6290_DEVICE_ID: |
Nandha Kishore Easwaran | 5d3475b | 2019-06-27 11:38:53 +0530 | [diff] [blame] | 112 | case QCN9000_DEVICE_ID: |
Venkata Sharath Chandra Manchala | 79860aa | 2018-06-12 15:16:36 -0700 | [diff] [blame] | 113 | case QCA6390_DEVICE_ID: |
Venkata Sharath Chandra Manchala | e69c9c2 | 2019-09-23 18:31:36 -0700 | [diff] [blame] | 114 | case QCA6490_DEVICE_ID: |
Venkata Sharath Chandra Manchala | 79860aa | 2018-06-12 15:16:36 -0700 | [diff] [blame] | 115 | case QCA6390_EMULATION_DEVICE_ID: |
Vijay Pamidipati | 537d929 | 2016-12-11 13:39:14 +0530 | [diff] [blame] | 116 | case RUMIM2M_DEVICE_ID_NODE0: /*lithium emulation */ |
| 117 | case RUMIM2M_DEVICE_ID_NODE1: /*lithium emulation */ |
Sathish Kumar | 2d2f19a | 2017-02-13 15:52:07 +0530 | [diff] [blame] | 118 | case RUMIM2M_DEVICE_ID_NODE2: /*lithium emulation */ |
| 119 | case RUMIM2M_DEVICE_ID_NODE3: /*lithium emulation */ |
Basamma Yakkanahalli | 5f7cfd4 | 2018-11-02 15:52:37 +0530 | [diff] [blame] | 120 | case RUMIM2M_DEVICE_ID_NODE4: /*lithium emulation */ |
| 121 | case RUMIM2M_DEVICE_ID_NODE5: /*lithium emulation */ |
Sathyanarayanan Esakkiappan | 38c6f98 | 2017-12-05 12:00:31 +0530 | [diff] [blame] | 122 | return dp_soc_attach_wifi3(psoc, hif_handle, htc_handle, |
Adil Saeed Musthafa | 61a2169 | 2018-07-17 20:49:31 -0700 | [diff] [blame] | 123 | qdf_dev, dp_ol_if_ops, devid); |
Nandha Kishore Easwaran | e5444bc | 2016-10-20 13:23:23 +0530 | [diff] [blame] | 124 | break; |
| 125 | default: |
Sathyanarayanan Esakkiappan | 38c6f98 | 2017-12-05 12:00:31 +0530 | [diff] [blame] | 126 | return ol_txrx_soc_attach(psoc, dp_ol_if_ops); |
Nandha Kishore Easwaran | e5444bc | 2016-10-20 13:23:23 +0530 | [diff] [blame] | 127 | } |
| 128 | return NULL; |
| 129 | } |
| 130 | |
| 131 | #endif /*_CDP_TXRX_CMN_REG_H_ */ |