diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2017-05-05 01:52:59 -0600 |
|---|---|---|
| committer | Linux Build Service Account <lnxbuild@localhost> | 2017-05-05 01:52:59 -0600 |
| commit | c00c3ee5e392fdebe24201d82e4ae7805eed932b (patch) | |
| tree | a80cd7505549d6ce0991ea1645660154906e96ff | |
| parent | 881b69863d80ab2c722db0e95b73ed55407826c2 (diff) | |
| parent | 134ba465ac8d61719d9119a5000cb36686fa1609 (diff) | |
Promotion of wlan-cmn.driver.lnx.1.0-00149.
CRs Change ID Subject
--------------------------------------------------------------------------------------------------------------
2033691 I19a361cef8d2ace118c7e18754ba5986063c95dc qcacmn: Fix Datapath kernel checkpatch warnings in cdp_t
2033691 I1a0c3be9bd99e993ea61b062a6701231078df719 qcacmn: Fix Datapath kernel checkpatch warnings in cdp_t
2033691 Iae311bf0450cf75029aba2d08901e557c905b752 qcacmn: Fix Datapath kernel checkpatch warnings in cdp_t
2033691 I37b8edb71b522e9c5f401a282f762eb4da00f6a6 qcacmn: Fix Datapath kernel checkpatch warnings in cdp_t
2033691 I75f5d4408d2616fd14078fff24a6a0954c73e62f qcacmn: Fix Datapath kernel checkpatch warnings in cdp_t
2041657 Iba6a494cb558c0bb34f8e1588527180ef1ab2ff6 qcacmn: Relax spinlock abuse detection (1)
2031843 I062343ed065d7b0c38b9e3b24ecfa9851b9b1537 qcacmn: Get CCA from firmware
Change-Id: I570361b878b391260b4669ec592429d6033663df
CRs-Fixed: 2041657, 2031843, 2033691
| -rw-r--r-- | dp/inc/cdp_txrx_cfg.h | 4 | ||||
| -rw-r--r-- | dp/inc/cdp_txrx_ctrl.h | 8 | ||||
| -rw-r--r-- | dp/inc/cdp_txrx_me.h | 4 | ||||
| -rw-r--r-- | dp/inc/cdp_txrx_pflow.h | 4 | ||||
| -rw-r--r-- | dp/inc/cdp_txrx_tx_throttle.h | 4 | ||||
| -rw-r--r-- | qdf/inc/qdf_lock.h | 7 | ||||
| -rw-r--r-- | wmi/inc/wmi_unified_api.h | 10 | ||||
| -rw-r--r-- | wmi/inc/wmi_unified_priv.h | 3 | ||||
| -rw-r--r-- | wmi/inc/wmi_unified_tlv.h | 10 | ||||
| -rw-r--r-- | wmi/src/wmi_unified_api.c | 19 | ||||
| -rw-r--r-- | wmi/src/wmi_unified_tlv.c | 46 |
11 files changed, 104 insertions, 15 deletions
diff --git a/dp/inc/cdp_txrx_cfg.h b/dp/inc/cdp_txrx_cfg.h index cd1c188cbbcb..26aafb760679 100644 --- a/dp/inc/cdp_txrx_cfg.h +++ b/dp/inc/cdp_txrx_cfg.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -24,7 +24,7 @@ * under proprietary terms before Copyright ownership was assigned * to the Linux Foundation. */ - /** +/** * @file cdp_txrx_cfg.h * @brief Define the host data path configuration API functions */ diff --git a/dp/inc/cdp_txrx_ctrl.h b/dp/inc/cdp_txrx_ctrl.h index daaea25ff991..a4f8fd46a016 100644 --- a/dp/inc/cdp_txrx_ctrl.h +++ b/dp/inc/cdp_txrx_ctrl.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -24,7 +24,7 @@ * under proprietary terms before Copyright ownership was assigned * to the Linux Foundation. */ - /** +/** * @file cdp_txrx_ctrl.h * @brief Define the host data path control API functions * called by the host control SW and the OS interface module @@ -46,8 +46,8 @@ #endif /* QCA_OL_TX_PDEV_LOCK */ #if QCA_OL_TX_PDEV_LOCK -void ol_ll_pdev_tx_lock(void *); -void ol_ll_pdev_tx_unlock(void *); +void ol_ll_pdev_tx_lock(void *pdev); +void ol_ll_pdev_tx_unlock(void *pdev); #define OL_TX_LOCK(_x) ol_ll_pdev_tx_lock(_x) #define OL_TX_UNLOCK(_x) ol_ll_pdev_tx_unlock(_x) diff --git a/dp/inc/cdp_txrx_me.h b/dp/inc/cdp_txrx_me.h index 133f5f71cfd5..60faf8ec24bf 100644 --- a/dp/inc/cdp_txrx_me.h +++ b/dp/inc/cdp_txrx_me.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -24,7 +24,7 @@ * under proprietary terms before Copyright ownership was assigned * to the Linux Foundation. */ - /** +/** * @file cdp_txrx_me.h * @brief Define the host data path mcast enhance API functions * called by the host control SW and the OS interface module diff --git a/dp/inc/cdp_txrx_pflow.h b/dp/inc/cdp_txrx_pflow.h index 7b0c7372dc5a..971e16619d05 100644 --- a/dp/inc/cdp_txrx_pflow.h +++ b/dp/inc/cdp_txrx_pflow.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -24,7 +24,7 @@ * under proprietary terms before Copyright ownership was assigned * to the Linux Foundation. */ - /** +/** * @file cdp_txrx_pflow.h * @brief Define the host data path peer flow API functions * called by the host control SW and the OS interface module diff --git a/dp/inc/cdp_txrx_tx_throttle.h b/dp/inc/cdp_txrx_tx_throttle.h index 7f64a8a6a8f6..07e9a32d963c 100644 --- a/dp/inc/cdp_txrx_tx_throttle.h +++ b/dp/inc/cdp_txrx_tx_throttle.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -24,7 +24,7 @@ * under proprietary terms before Copyright ownership was assigned * to the Linux Foundation. */ - /** +/** * @file cdp_txrx_tx_throttle.h * @brief Define the host data path transmit throttle API * functions called by the host control SW and the OS interface diff --git a/qdf/inc/qdf_lock.h b/qdf/inc/qdf_lock.h index 3a98a447a6fc..0a37de04fa46 100644 --- a/qdf/inc/qdf_lock.h +++ b/qdf/inc/qdf_lock.h @@ -51,9 +51,10 @@ #define QDF_LOCK_STATS_LIST 0 #endif -#define QDF_MAX_HOLD_TIME_ALOWED_SPINLOCK_IRQ 1000 -#define QDF_MAX_HOLD_TIME_ALOWED_SPINLOCK_BH 20000 -#define QDF_MAX_HOLD_TIME_ALOWED_SPINLOCK 100000 +/* Max hold time in micro seconds, 0 to disable detection*/ +#define QDF_MAX_HOLD_TIME_ALOWED_SPINLOCK_IRQ 1000 +#define QDF_MAX_HOLD_TIME_ALOWED_SPINLOCK_BH 1000000 +#define QDF_MAX_HOLD_TIME_ALOWED_SPINLOCK 0 #if !QDF_LOCK_STATS struct lock_stats {}; diff --git a/wmi/inc/wmi_unified_api.h b/wmi/inc/wmi_unified_api.h index 36213899eb62..62e06ab6bd05 100644 --- a/wmi/inc/wmi_unified_api.h +++ b/wmi/inc/wmi_unified_api.h @@ -631,6 +631,16 @@ QDF_STATUS wmi_unified_get_stats_cmd(void *wmi_hdl, struct pe_stats_req *get_stats_param, uint8_t addr[IEEE80211_ADDR_LEN]); +/** + * wmi_unified_congestion_request_cmd() - send request to fw to get CCA + * @wmi_hdl: wma handle + * @vdev_id: vdev id + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_congestion_request_cmd(void *wmi_hdl, + uint8_t vdev_id); + QDF_STATUS wmi_unified_snr_request_cmd(void *wmi_hdl); QDF_STATUS wmi_unified_snr_cmd(void *wmi_hdl, uint8_t vdev_id); diff --git a/wmi/inc/wmi_unified_priv.h b/wmi/inc/wmi_unified_priv.h index 433960bb9e21..24cfb6975cb4 100644 --- a/wmi/inc/wmi_unified_priv.h +++ b/wmi/inc/wmi_unified_priv.h @@ -467,6 +467,9 @@ QDF_STATUS (*send_get_stats_cmd)(wmi_unified_t wmi_handle, struct pe_stats_req *get_stats_param, uint8_t addr[IEEE80211_ADDR_LEN]); +QDF_STATUS (*send_congestion_cmd)(wmi_unified_t wmi_handle, + A_UINT8 vdev_id); + QDF_STATUS (*send_snr_request_cmd)(wmi_unified_t wmi_handle); QDF_STATUS (*send_snr_cmd)(wmi_unified_t wmi_handle, uint8_t vdev_id); diff --git a/wmi/inc/wmi_unified_tlv.h b/wmi/inc/wmi_unified_tlv.h index 0d54f81bcd65..51f616193549 100644 --- a/wmi/inc/wmi_unified_tlv.h +++ b/wmi/inc/wmi_unified_tlv.h @@ -324,6 +324,16 @@ QDF_STATUS send_get_stats_cmd_tlv(wmi_unified_t wmi_handle, struct pe_stats_req *get_stats_param, uint8_t addr[IEEE80211_ADDR_LEN]); +/** + * send_congestion_cmd_tlv() - send request to fw to get CCA + * @wmi_handle: wmi handle + * @vdev_id: vdev id + * + * Return: CDF status + */ +QDF_STATUS send_congestion_cmd_tlv(wmi_unified_t wmi_handle, + A_UINT8 vdev_id); + QDF_STATUS send_snr_request_cmd_tlv(wmi_unified_t wmi_handle); QDF_STATUS send_snr_cmd_tlv(wmi_unified_t wmi_handle, uint8_t vdev_id); diff --git a/wmi/src/wmi_unified_api.c b/wmi/src/wmi_unified_api.c index c48920b4ddc0..e9c085c8c268 100644 --- a/wmi/src/wmi_unified_api.c +++ b/wmi/src/wmi_unified_api.c @@ -1940,6 +1940,25 @@ QDF_STATUS wmi_unified_get_stats_cmd(void *wmi_hdl, } /** + * wmi_unified_congestion_request_cmd() - send request to fw to get CCA + * @wmi_hdl: wma handle + * @vdev_id: vdev id + * + * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure + */ +QDF_STATUS wmi_unified_congestion_request_cmd(void *wmi_hdl, + uint8_t vdev_id) +{ + wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; + + if (wmi_handle->ops->send_congestion_cmd) + return wmi_handle->ops->send_congestion_cmd(wmi_handle, + vdev_id); + + return QDF_STATUS_E_FAILURE; +} + +/** * wmi_unified_process_ll_stats_set_cmd() - link layer stats set request * @wmi_handle: wmi handle * @set_req: ll stats set request command params diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 0ad31cf2d21a..f6f4184f5d75 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -6674,6 +6674,51 @@ QDF_STATUS send_get_stats_cmd_tlv(wmi_unified_t wmi_handle, } /** + * send_congestion_cmd_tlv() - send request to fw to get CCA + * @wmi_handle: wmi handle + * @vdev_id: vdev id + * + * Return: CDF status + */ +QDF_STATUS send_congestion_cmd_tlv(wmi_unified_t wmi_handle, + A_UINT8 vdev_id) +{ + wmi_buf_t buf; + wmi_request_stats_cmd_fixed_param *cmd; + uint8_t len; + uint8_t *buf_ptr; + + len = sizeof(*cmd); + buf = wmi_buf_alloc(wmi_handle, len); + if (!buf) { + WMI_LOGE("%s: Failed to allocate wmi buffer", __func__); + return QDF_STATUS_E_FAILURE; + } + + buf_ptr = wmi_buf_data(buf); + cmd = (wmi_request_stats_cmd_fixed_param *)buf_ptr; + WMITLV_SET_HDR(&cmd->tlv_header, + WMITLV_TAG_STRUC_wmi_request_stats_cmd_fixed_param, + WMITLV_GET_STRUCT_TLVLEN + (wmi_request_stats_cmd_fixed_param)); + + cmd->stats_id = WMI_REQUEST_CONGESTION_STAT; + cmd->vdev_id = vdev_id; + WMI_LOGD("STATS REQ VDEV_ID:%d stats_id %d -->", + cmd->vdev_id, cmd->stats_id); + + if (wmi_unified_cmd_send(wmi_handle, buf, len, + WMI_REQUEST_STATS_CMDID)) { + WMI_LOGE("%s: Failed to send WMI_REQUEST_STATS_CMDID", + __func__); + wmi_buf_free(buf); + return QDF_STATUS_E_FAILURE; + } + + return QDF_STATUS_SUCCESS; +} + +/** * send_snr_request_cmd_tlv() - send request to fw to get RSSI stats * @wmi_handle: wmi handle * @rssi_req: get RSSI request @@ -13182,6 +13227,7 @@ struct wmi_ops tlv_ops = { .send_process_ll_stats_set_cmd = send_process_ll_stats_set_cmd_tlv, .send_process_ll_stats_get_cmd = send_process_ll_stats_get_cmd_tlv, .send_get_stats_cmd = send_get_stats_cmd_tlv, + .send_congestion_cmd = send_congestion_cmd_tlv, .send_snr_request_cmd = send_snr_request_cmd_tlv, .send_snr_cmd = send_snr_cmd_tlv, .send_link_status_req_cmd = send_link_status_req_cmd_tlv, |
