qcacmn: Add QDF abstraction for IPA enums
Add QDF abstraction for Linux kernel IPA driver enums. Change-Id: I9b61917768a109d12aefdc19a7822287337c9c18 CRs-Fixed: 2194166
This commit is contained in:

committed by
nshrivas

parent
f83b87ed16
commit
4af5290d97
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2017, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for any
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
@@ -17,8 +17,40 @@
|
|||||||
#ifndef _QDF_IPA_H
|
#ifndef _QDF_IPA_H
|
||||||
#define _QDF_IPA_H
|
#define _QDF_IPA_H
|
||||||
|
|
||||||
|
#ifdef IPA_OFFLOAD
|
||||||
|
|
||||||
#include <i_qdf_ipa.h>
|
#include <i_qdf_ipa.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* enum qdf_ipa_wlan_event - QDF IPA events
|
||||||
|
* @QDF_IPA_CLIENT_CONNECT: Client Connects
|
||||||
|
* @QDF_IPA_CLIENT_DISCONNECT: Client Disconnects
|
||||||
|
* @QDF_IPA_AP_CONNECT: SoftAP is started
|
||||||
|
* @QDF_IPA_AP_DISCONNECT: SoftAP is stopped
|
||||||
|
* @QDF_IPA_STA_CONNECT: STA associates to AP
|
||||||
|
* @QDF_IPA_STA_DISCONNECT: STA dissociates from AP
|
||||||
|
* @QDF_IPA_CLIENT_CONNECT_EX: Peer associates/re-associates to softap
|
||||||
|
* @QDF_SWITCH_TO_SCC: WLAN interfaces in scc mode
|
||||||
|
* @QDF_SWITCH_TO_MCC: WLAN interfaces in mcc mode
|
||||||
|
* @QDF_WDI_ENABLE: WDI enable complete
|
||||||
|
* @QDF_WDI_DISABLE: WDI teardown
|
||||||
|
* @QDF_IPA_WLAN_EVENT_MAX: Max value for the enum
|
||||||
|
*/
|
||||||
|
typedef enum {
|
||||||
|
QDF_IPA_CLIENT_CONNECT,
|
||||||
|
QDF_IPA_CLIENT_DISCONNECT,
|
||||||
|
QDF_IPA_AP_CONNECT,
|
||||||
|
QDF_IPA_AP_DISCONNECT,
|
||||||
|
QDF_IPA_STA_CONNECT,
|
||||||
|
QDF_IPA_STA_DISCONNECT,
|
||||||
|
QDF_IPA_CLIENT_CONNECT_EX,
|
||||||
|
QDF_SWITCH_TO_SCC,
|
||||||
|
QDF_SWITCH_TO_MCC,
|
||||||
|
QDF_WDI_ENABLE,
|
||||||
|
QDF_WDI_DISABLE,
|
||||||
|
QDF_IPA_WLAN_EVENT_MAX
|
||||||
|
} qdf_ipa_wlan_event;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* qdf_ipa_wdi_meter_evt_type_t - type of event client callback is
|
* qdf_ipa_wdi_meter_evt_type_t - type of event client callback is
|
||||||
* for AP+STA mode metering
|
* for AP+STA mode metering
|
||||||
@@ -200,6 +232,23 @@ typedef __qdf_ipa_wlan_hdr_attrib_val_t qdf_ipa_wlan_hdr_attrib_val_t;
|
|||||||
typedef int (*qdf_ipa_msg_pull_fn)(void *buff, u32 len, u32 type);
|
typedef int (*qdf_ipa_msg_pull_fn)(void *buff, u32 len, u32 type);
|
||||||
typedef void (*qdf_ipa_ready_cb)(void *user_data);
|
typedef void (*qdf_ipa_ready_cb)(void *user_data);
|
||||||
|
|
||||||
|
#define QDF_IPA_SET_META_MSG_TYPE(meta, msg_type) \
|
||||||
|
__QDF_IPA_SET_META_MSG_TYPE(meta, msg_type)
|
||||||
|
|
||||||
|
#define QDF_IPA_RM_RESOURCE_GRANTED __QDF_IPA_RM_RESOURCE_GRANTED
|
||||||
|
#define QDF_IPA_RM_RESOURCE_RELEASED __QDF_IPA_RM_RESOURCE_RELEASED
|
||||||
|
|
||||||
|
#define QDF_IPA_VOLTAGE_LEVEL __QDF_IPA_VOLTAGE_LEVEL
|
||||||
|
|
||||||
|
#define QDF_IPA_RM_RESOURCE_WLAN_PROD __QDF_IPA_RM_RESOURCE_WLAN_PROD
|
||||||
|
#define QDF_IPA_RM_RESOURCE_WLAN_CONS __QDF_IPA_RM_RESOURCE_WLAN_CONS
|
||||||
|
#define QDF_IPA_RM_RESOURCE_APPS_CONS __QDF_IPA_RM_RESOURCE_APPS_CONS
|
||||||
|
|
||||||
|
#define QDF_IPA_CLIENT_WLAN1_PROD __QDF_IPA_CLIENT_WLAN1_PROD
|
||||||
|
#define QDF_IPA_CLIENT_WLAN2_CONS __QDF_IPA_CLIENT_WLAN2_CONS
|
||||||
|
#define QDF_IPA_CLIENT_WLAN3_CONS __QDF_IPA_CLIENT_WLAN3_CONS
|
||||||
|
#define QDF_IPA_CLIENT_WLAN4_CONS __QDF_IPA_CLIENT_WLAN4_CONS
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Resume / Suspend
|
* Resume / Suspend
|
||||||
*/
|
*/
|
||||||
@@ -590,4 +639,12 @@ static inline int qdf_ipa_register_ipa_ready_cb(
|
|||||||
return __qdf_ipa_register_ipa_ready_cb(qdf_ipa_ready_cb, user_data);
|
return __qdf_ipa_register_ipa_ready_cb(qdf_ipa_ready_cb, user_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef FEATURE_METERING
|
||||||
|
static inline int qdf_ipa_broadcast_wdi_quota_reach_ind(uint32_t index,
|
||||||
|
uint64_t quota_bytes)
|
||||||
|
{
|
||||||
|
return __qdf_ipa_broadcast_wdi_quota_reach_ind(index, quota_bytes);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif /* IPA_OFFLOAD */
|
||||||
#endif /* _QDF_IPA_H */
|
#endif /* _QDF_IPA_H */
|
||||||
|
@@ -22,6 +22,8 @@
|
|||||||
#ifndef _QDF_IPA_WDI3_H
|
#ifndef _QDF_IPA_WDI3_H
|
||||||
#define _QDF_IPA_WDI3_H
|
#define _QDF_IPA_WDI3_H
|
||||||
|
|
||||||
|
#ifdef IPA_OFFLOAD
|
||||||
|
|
||||||
#ifdef CONFIG_IPA_WDI_UNIFIED_API
|
#ifdef CONFIG_IPA_WDI_UNIFIED_API
|
||||||
|
|
||||||
#include <qdf_ipa.h>
|
#include <qdf_ipa.h>
|
||||||
@@ -341,4 +343,5 @@ static inline int qdf_ipa_wdi3_set_perf_profile(
|
|||||||
|
|
||||||
#endif /* CONFIG_IPA_WDI_UNIFIED_API */
|
#endif /* CONFIG_IPA_WDI_UNIFIED_API */
|
||||||
|
|
||||||
#endif
|
#endif /* IPA_OFFLOAD */
|
||||||
|
#endif /* _QDF_IPA_WDI3_H */
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2017, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for any
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
@@ -17,6 +17,8 @@
|
|||||||
#ifndef _I_QDF_IPA_H
|
#ifndef _I_QDF_IPA_H
|
||||||
#define _I_QDF_IPA_H
|
#define _I_QDF_IPA_H
|
||||||
|
|
||||||
|
#ifdef IPA_OFFLOAD
|
||||||
|
|
||||||
#include <linux/ipa.h>
|
#include <linux/ipa.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -482,6 +484,23 @@ typedef struct ipa_ioc_rx_intf_prop __qdf_ipa_ioc_rx_intf_prop_t;
|
|||||||
|
|
||||||
typedef struct ipa_wlan_hdr_attrib_val __qdf_ipa_wlan_hdr_attrib_val_t;
|
typedef struct ipa_wlan_hdr_attrib_val __qdf_ipa_wlan_hdr_attrib_val_t;
|
||||||
|
|
||||||
|
#define __QDF_IPA_SET_META_MSG_TYPE(meta, msg_type) \
|
||||||
|
__qdf_ipa_set_meta_msg_type(meta, msg_type)
|
||||||
|
|
||||||
|
#define __QDF_IPA_RM_RESOURCE_GRANTED IPA_RM_RESOURCE_GRANTED
|
||||||
|
#define __QDF_IPA_RM_RESOURCE_RELEASED IPA_RM_RESOURCE_RELEASED
|
||||||
|
|
||||||
|
#define __QDF_IPA_RM_RESOURCE_WLAN_PROD IPA_RM_RESOURCE_WLAN_PROD
|
||||||
|
#define __QDF_IPA_RM_RESOURCE_WLAN_CONS IPA_RM_RESOURCE_WLAN_CONS
|
||||||
|
#define __QDF_IPA_RM_RESOURCE_APPS_CONS IPA_RM_RESOURCE_APPS_CONS
|
||||||
|
|
||||||
|
#define __QDF_IPA_VOLTAGE_LEVEL IPA_VOLTAGE_SVS
|
||||||
|
|
||||||
|
#define __QDF_IPA_CLIENT_WLAN1_PROD IPA_CLIENT_WLAN1_PROD
|
||||||
|
#define __QDF_IPA_CLIENT_WLAN2_CONS IPA_CLIENT_WLAN2_CONS
|
||||||
|
#define __QDF_IPA_CLIENT_WLAN3_CONS IPA_CLIENT_WLAN3_CONS
|
||||||
|
#define __QDF_IPA_CLIENT_WLAN4_CONS IPA_CLIENT_WLAN4_CONS
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Resume / Suspend
|
* Resume / Suspend
|
||||||
*/
|
*/
|
||||||
@@ -886,4 +905,14 @@ static inline int __qdf_ipa_register_ipa_ready_cb(
|
|||||||
return ipa_register_ipa_ready_cb(ipa_ready_cb, user_data);
|
return ipa_register_ipa_ready_cb(ipa_ready_cb, user_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef FEATURE_METERING
|
||||||
|
static inline int __qdf_ipa_broadcast_wdi_quota_reach_ind(uint32_t index,
|
||||||
|
uint64_t quota_bytes)
|
||||||
|
{
|
||||||
|
return ipa_broadcast_wdi_quota_reach_ind(index, quota_bytes);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void __qdf_ipa_set_meta_msg_type(__qdf_ipa_msg_meta_t *meta, int type);
|
||||||
|
#endif /* IPA_OFFLOAD */
|
||||||
#endif /* _I_QDF_IPA_H */
|
#endif /* _I_QDF_IPA_H */
|
||||||
|
@@ -22,6 +22,8 @@
|
|||||||
#ifndef I_QDF_IPA_WDI_H
|
#ifndef I_QDF_IPA_WDI_H
|
||||||
#define I_QDF_IPA_WDI_H
|
#define I_QDF_IPA_WDI_H
|
||||||
|
|
||||||
|
#ifdef IPA_OFFLOAD
|
||||||
|
|
||||||
#include <qdf_status.h> /* QDF_STATUS */
|
#include <qdf_status.h> /* QDF_STATUS */
|
||||||
#include <linux/ipa_wdi3.h>
|
#include <linux/ipa_wdi3.h>
|
||||||
|
|
||||||
@@ -552,4 +554,5 @@ static inline int __qdf_ipa_wdi3_set_perf_profile(
|
|||||||
|
|
||||||
#endif /* CONFIG_IPA_WDI_UNIFIED_API */
|
#endif /* CONFIG_IPA_WDI_UNIFIED_API */
|
||||||
|
|
||||||
#endif
|
#endif /* IPA_OFFLOAD */
|
||||||
|
#endif /* I_QDF_IPA_WDI_H */
|
||||||
|
78
qdf/linux/src/qdf_ipa.c
Normal file
78
qdf/linux/src/qdf_ipa.c
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018 The Linux Foundation. All rights reserved.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DOC: qdf_ipa.c
|
||||||
|
*
|
||||||
|
* This source file contains linux specific definitions for QDF IPA APIs
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Include Files */
|
||||||
|
#include <qdf_ipa.h>
|
||||||
|
|
||||||
|
static enum ipa_wlan_event __qdf_to_ipa_wlan_event(int qdf_ipa_event)
|
||||||
|
{
|
||||||
|
enum ipa_wlan_event ipa_event;
|
||||||
|
|
||||||
|
switch (qdf_ipa_event) {
|
||||||
|
case QDF_IPA_CLIENT_CONNECT:
|
||||||
|
ipa_event = WLAN_CLIENT_CONNECT;
|
||||||
|
break;
|
||||||
|
case QDF_IPA_CLIENT_DISCONNECT:
|
||||||
|
ipa_event = WLAN_CLIENT_DISCONNECT;
|
||||||
|
break;
|
||||||
|
case QDF_IPA_AP_CONNECT:
|
||||||
|
ipa_event = WLAN_AP_CONNECT;
|
||||||
|
break;
|
||||||
|
case QDF_IPA_AP_DISCONNECT:
|
||||||
|
ipa_event = WLAN_AP_DISCONNECT;
|
||||||
|
break;
|
||||||
|
case QDF_IPA_STA_CONNECT:
|
||||||
|
ipa_event = WLAN_STA_CONNECT;
|
||||||
|
break;
|
||||||
|
case QDF_IPA_STA_DISCONNECT:
|
||||||
|
ipa_event = WLAN_STA_DISCONNECT;
|
||||||
|
break;
|
||||||
|
case QDF_IPA_CLIENT_CONNECT_EX:
|
||||||
|
ipa_event = WLAN_CLIENT_CONNECT_EX;
|
||||||
|
break;
|
||||||
|
case QDF_SWITCH_TO_SCC:
|
||||||
|
ipa_event = WLAN_SWITCH_TO_SCC;
|
||||||
|
break;
|
||||||
|
case QDF_SWITCH_TO_MCC:
|
||||||
|
ipa_event = WLAN_SWITCH_TO_MCC;
|
||||||
|
break;
|
||||||
|
case QDF_WDI_ENABLE:
|
||||||
|
ipa_event = WLAN_WDI_ENABLE;
|
||||||
|
break;
|
||||||
|
case QDF_WDI_DISABLE:
|
||||||
|
ipa_event = WLAN_WDI_DISABLE;
|
||||||
|
break;
|
||||||
|
case QDF_IPA_WLAN_EVENT_MAX:
|
||||||
|
default:
|
||||||
|
ipa_event = IPA_WLAN_EVENT_MAX;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ipa_event;
|
||||||
|
}
|
||||||
|
|
||||||
|
void __qdf_ipa_set_meta_msg_type(__qdf_ipa_msg_meta_t *meta, int type)
|
||||||
|
{
|
||||||
|
meta->msg_type = __qdf_to_ipa_wlan_event(type);
|
||||||
|
}
|
Reference in New Issue
Block a user