summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThirumalai Pachamuthu <tpachamu@qti.qualcomm.com>2013-11-14 15:55:18 +0530
committerMadan Mohan Koyyalamudi <mkoyyala@qca.qualcomm.com>2013-11-27 20:01:54 -0800
commitea25716e01e1771cbd439b5cab4047b41769bdb6 (patch)
tree66d5d4560c28e640d36f7d2ffbd326dfae1cadf0
parent0fe38eae2c7760cb30bd2555be6f50267a4ecf51 (diff)
cld: fwlog: Add dbglog for SAP mode
This patch will add dbglog support for SAP mode. Change-Id: Ia6e739ce995c52e486cbd57edb1847a00b5c3c58 CRs-fixed: 575528
-rw-r--r--CORE/HDD/inc/qc_sap_ioctl.h12
-rw-r--r--CORE/HDD/src/wlan_hdd_hostapd.c120
-rw-r--r--CORE/HDD/src/wlan_hdd_wext.c2
-rw-r--r--CORE/SERVICES/COMMON/wma_api.h3
4 files changed, 136 insertions, 1 deletions
diff --git a/CORE/HDD/inc/qc_sap_ioctl.h b/CORE/HDD/inc/qc_sap_ioctl.h
index e0d1fe9d44c7..bc3214367c13 100644
--- a/CORE/HDD/inc/qc_sap_ioctl.h
+++ b/CORE/HDD/inc/qc_sap_ioctl.h
@@ -246,6 +246,18 @@ typedef struct
#define MAX_VAR_ARGS 7
#define QCSAP_IOCTL_PRIV_GET_SOFTAP_LINK_SPEED (SIOCIWFIRSTPRIV + 31)
+#ifdef QCA_WIFI_2_0
+/* Private ioctl for firmware debug log */
+#define QCSAP_DBGLOG_LOG_LEVEL 31
+#define QCSAP_DBGLOG_VAP_ENABLE 32
+#define QCSAP_DBGLOG_VAP_DISABLE 33
+#define QCSAP_DBGLOG_MODULE_ENABLE 34
+#define QCSAP_DBGLOG_MODULE_DISABLE 35
+#define QCSAP_DBGLOG_MOD_LOG_LEVEL 36
+#define QCSAP_DBGLOG_TYPE 37
+#define QCSAP_DBGLOG_REPORT_ENABLE 38
+#endif /* QCA_WIFI_2_0 */
+
enum {
QCSAP_PARAM_MAX_ASSOC = 1,
QCSAP_PARAM_GET_WLAN_DBG = 4,
diff --git a/CORE/HDD/src/wlan_hdd_hostapd.c b/CORE/HDD/src/wlan_hdd_hostapd.c
index 23e350104cd9..bb0bace3c168 100644
--- a/CORE/HDD/src/wlan_hdd_hostapd.c
+++ b/CORE/HDD/src/wlan_hdd_hostapd.c
@@ -78,6 +78,10 @@
#include <bap_hdd_main.h>
#include "wlan_hdd_p2p.h"
+#ifdef QCA_WIFI_2_0
+#include "wma.h"
+#endif /* QCA_WIFI_2_0 */
+
#define IS_UP(_dev) \
(((_dev)->flags & (IFF_RUNNING|IFF_UP)) == (IFF_RUNNING|IFF_UP))
#define IS_UP_AUTO(_ic) \
@@ -1075,6 +1079,79 @@ static iw_softap_setparam(struct net_device *dev,
break;
}
+#ifdef QCA_WIFI_2_0
+ /* Firmware debug log */
+ case QCSAP_DBGLOG_LOG_LEVEL:
+ {
+ hddLog(LOG1, "QCSAP_DBGLOG_LOG_LEVEL val %d", set_value);
+ ret = process_wma_set_command((int)pHostapdAdapter->sessionId,
+ (int)WMI_DBGLOG_LOG_LEVEL,
+ set_value, DBG_CMD);
+ break;
+ }
+
+ case QCSAP_DBGLOG_VAP_ENABLE:
+ {
+ hddLog(LOG1, "QCSAP_DBGLOG_VAP_ENABLE val %d", set_value);
+ ret = process_wma_set_command((int)pHostapdAdapter->sessionId,
+ (int)WMI_DBGLOG_VAP_ENABLE,
+ set_value, DBG_CMD);
+ break;
+ }
+
+ case QCSAP_DBGLOG_VAP_DISABLE:
+ {
+ hddLog(LOG1, "QCSAP_DBGLOG_VAP_DISABLE val %d", set_value);
+ ret = process_wma_set_command((int)pHostapdAdapter->sessionId,
+ (int)WMI_DBGLOG_VAP_DISABLE,
+ set_value, DBG_CMD);
+ break;
+ }
+
+ case QCSAP_DBGLOG_MODULE_ENABLE:
+ {
+ hddLog(LOG1, "QCSAP_DBGLOG_MODULE_ENABLE val %d", set_value);
+ ret = process_wma_set_command((int)pHostapdAdapter->sessionId,
+ (int)WMI_DBGLOG_MODULE_ENABLE,
+ set_value, DBG_CMD);
+ break;
+ }
+
+ case QCSAP_DBGLOG_MODULE_DISABLE:
+ {
+ hddLog(LOG1, "QCSAP_DBGLOG_MODULE_DISABLE val %d", set_value);
+ ret = process_wma_set_command((int)pHostapdAdapter->sessionId,
+ (int)WMI_DBGLOG_MODULE_DISABLE,
+ set_value, DBG_CMD);
+ break;
+ }
+
+ case QCSAP_DBGLOG_MOD_LOG_LEVEL:
+ {
+ hddLog(LOG1, "QCSAP_DBGLOG_MOD_LOG_LEVEL val %d", set_value);
+ ret = process_wma_set_command((int)pHostapdAdapter->sessionId,
+ (int)WMI_DBGLOG_MOD_LOG_LEVEL,
+ set_value, DBG_CMD);
+ break;
+ }
+
+ case QCSAP_DBGLOG_TYPE:
+ {
+ hddLog(LOG1, "QCSAP_DBGLOG_TYPE val %d", set_value);
+ ret = process_wma_set_command((int)pHostapdAdapter->sessionId,
+ (int)WMI_DBGLOG_TYPE,
+ set_value, DBG_CMD);
+ break;
+ }
+ case QCSAP_DBGLOG_REPORT_ENABLE:
+ {
+ hddLog(LOG1, "QCSAP_DBGLOG_REPORT_ENABLE val %d", set_value);
+ ret = process_wma_set_command((int)pHostapdAdapter->sessionId,
+ (int)WMI_DBGLOG_REPORT_ENABLE,
+ set_value, DBG_CMD);
+ break;
+ }
+#endif /* QCA_WIFI_2_0 */
default:
hddLog(LOGE, FL("Invalid setparam command %d value %d"),
sub_cmd, set_value);
@@ -2751,6 +2828,49 @@ static const struct iw_priv_args hostapd_private_args[] = {
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "hideSSID" },
{ QCSAP_PARAM_SET_MC_RATE,
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setMcRate" },
+
+#ifdef QCA_WIFI_2_0
+ /* Sub-cmds DBGLOG specific commands */
+ { QCSAP_DBGLOG_LOG_LEVEL ,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
+ 0,
+ "dl_loglevel" },
+
+ { QCSAP_DBGLOG_VAP_ENABLE ,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
+ 0,
+ "dl_vapon" },
+
+ { QCSAP_DBGLOG_VAP_DISABLE ,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
+ 0,
+ "dl_vapoff" },
+
+ { QCSAP_DBGLOG_MODULE_ENABLE ,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
+ 0,
+ "dl_modon" },
+
+ { QCSAP_DBGLOG_MODULE_DISABLE,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
+ 0,
+ "dl_modoff" },
+
+ { QCSAP_DBGLOG_MOD_LOG_LEVEL,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
+ 0,
+ "dl_mod_loglevel" },
+
+ { QCSAP_DBGLOG_TYPE,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
+ 0,
+ "dl_type" },
+ { QCSAP_DBGLOG_REPORT_ENABLE,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
+ 0,
+ "dl_report" },
+#endif /* QCA_WIFI_2_0 */
+
{ QCSAP_IOCTL_GETPARAM,
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getparam" },
diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c
index 77a2679f75e8..0da54aa36fd8 100644
--- a/CORE/HDD/src/wlan_hdd_wext.c
+++ b/CORE/HDD/src/wlan_hdd_wext.c
@@ -3652,7 +3652,7 @@ static int iw_set_mlme(struct net_device *dev,
}
#ifdef QCA_WIFI_2_0
-static int process_wma_set_command(int sessid, int paramid,
+int process_wma_set_command(int sessid, int paramid,
int sval, int vpdev)
{
int ret = 0;
diff --git a/CORE/SERVICES/COMMON/wma_api.h b/CORE/SERVICES/COMMON/wma_api.h
index a88533e3f01a..f385f2adfb44 100644
--- a/CORE/SERVICES/COMMON/wma_api.h
+++ b/CORE/SERVICES/COMMON/wma_api.h
@@ -130,5 +130,8 @@ u_int8_t *wma_get_vdev_address_by_vdev_id(u_int8_t vdev_id);
void *wma_get_beacon_buffer_by_vdev_id(u_int8_t vdev_id,
u_int32_t *buffer_size);
#endif /* QCA_WIFI_ISOC */
+
+int process_wma_set_command(int sessid, int paramid,
+ int sval, int vpdev);
tANI_U8 wma_getFwWlanFeatCaps(tANI_U8 featEnumValue);
#endif