summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2017-05-05 01:52:59 -0600
committerLinux Build Service Account <lnxbuild@localhost>2017-05-05 01:52:59 -0600
commitc00c3ee5e392fdebe24201d82e4ae7805eed932b (patch)
treea80cd7505549d6ce0991ea1645660154906e96ff
parent881b69863d80ab2c722db0e95b73ed55407826c2 (diff)
parent134ba465ac8d61719d9119a5000cb36686fa1609 (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.h4
-rw-r--r--dp/inc/cdp_txrx_ctrl.h8
-rw-r--r--dp/inc/cdp_txrx_me.h4
-rw-r--r--dp/inc/cdp_txrx_pflow.h4
-rw-r--r--dp/inc/cdp_txrx_tx_throttle.h4
-rw-r--r--qdf/inc/qdf_lock.h7
-rw-r--r--wmi/inc/wmi_unified_api.h10
-rw-r--r--wmi/inc/wmi_unified_priv.h3
-rw-r--r--wmi/inc/wmi_unified_tlv.h10
-rw-r--r--wmi/src/wmi_unified_api.c19
-rw-r--r--wmi/src/wmi_unified_tlv.c46
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,