From 25bddc15856ce5c9d3eb19c4d3a4e5ca073f0102 Mon Sep 17 00:00:00 2001 From: DARAM SUDHA Date: Wed, 9 Jul 2014 17:27:15 +0530 Subject: wlan: Fix the correct BYTE-offset value for fw_desc in RX_FRAG_IND The fw_desc offset is 12 in RX_FRAG_IND. forward bit in Fw_desc is used to check if the packet needs to be forwarded. CRs-FIXEd: 690983 Change-Id: I90b710c0d947b4b8ad39a533e8248b65d13ecf3e --- CORE/CLD_TXRX/HTT/htt.h | 2 +- CORE/CLD_TXRX/HTT/htt_t2h.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CORE/CLD_TXRX/HTT/htt.h b/CORE/CLD_TXRX/HTT/htt.h index 23fc87e8ca3a..c5cc56fbae05 100644 --- a/CORE/CLD_TXRX/HTT/htt.h +++ b/CORE/CLD_TXRX/HTT/htt.h @@ -3527,7 +3527,7 @@ typedef struct { */ #define HTT_RX_FRAG_IND_HDR_PREFIX_SIZE32 2 -#define HTT_RX_FRAG_IND_FW_DESC_BYTE_OFFSET 3 +#define HTT_RX_FRAG_IND_FW_DESC_BYTE_OFFSET 12 #define HTT_RX_FRAG_IND_EXT_TID_SET HTT_RX_IND_EXT_TID_SET #define HTT_RX_FRAG_IND_EXT_TID_GET HTT_RX_IND_EXT_TID_GET diff --git a/CORE/CLD_TXRX/HTT/htt_t2h.c b/CORE/CLD_TXRX/HTT/htt_t2h.c index c53233f9ae9d..fc22499891ca 100644 --- a/CORE/CLD_TXRX/HTT/htt_t2h.c +++ b/CORE/CLD_TXRX/HTT/htt_t2h.c @@ -127,7 +127,7 @@ static void HTT_RX_FRAG_SET_LAST_MSDU( adf_nbuf_set_pktlen(msdu, HTT_RX_BUF_SIZE); adf_nbuf_unmap(pdev->osdev, msdu, ADF_OS_DMA_FROM_DEVICE); rx_desc = htt_rx_desc(msdu); - rx_desc->fw_desc.u.val.u.val = *p_fw_msdu_rx_desc; + *((u_int8_t *) &rx_desc->fw_desc.u.val) = *p_fw_msdu_rx_desc; rx_desc->msdu_end.last_msdu = 1; adf_nbuf_map(pdev->osdev, msdu, ADF_OS_DMA_FROM_DEVICE); } -- cgit v1.2.3 From 548ac90f9ef5ea91418467fd9fcca9aa48ae6cdf Mon Sep 17 00:00:00 2001 From: Yuan-Gu Wei Date: Wed, 9 Jul 2014 17:59:47 +0800 Subject: qcacld: drop the encrypted BC/MC management frames Since BC/MC management frames should be protected by BIP and should not be encrypted, when receiving encrypted BC/MC management frame, drop it. Change-Id: I98139cc19ff634baa372366097d58730b616c4da CRs-Fixed: 686581 --- CORE/CLD_TXRX/TLSHIM/tl_shim.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CORE/CLD_TXRX/TLSHIM/tl_shim.c b/CORE/CLD_TXRX/TLSHIM/tl_shim.c index 75af0a8e5f44..5f53453ea9e1 100644 --- a/CORE/CLD_TXRX/TLSHIM/tl_shim.c +++ b/CORE/CLD_TXRX/TLSHIM/tl_shim.c @@ -621,6 +621,15 @@ static int tlshim_mgmt_rx_process(void *context, u_int8_t *data, { if ((wh)->i_fc[1] & IEEE80211_FC1_WEP) { + if (IEEE80211_IS_BROADCAST(wh->i_addr1) || + IEEE80211_IS_MULTICAST(wh->i_addr1)) + { + TLSHIM_LOGE("Encrypted BC/MC frame" + " dropping the frame"); + vos_pkt_return_packet(rx_pkt); + return 0; + } + orig_hdr = (u_int8_t*) adf_nbuf_data(wbuf); /* Strip privacy headers (and trailer) -- cgit v1.2.3 From a1330bf509485a031c1c92ef2e0afdeca233efff Mon Sep 17 00:00:00 2001 From: Manikandaraja Venkatachalapathy Date: Wed, 9 Jul 2014 17:15:53 -0700 Subject: qcacld: WMA: Fix tlv header for extscan api's Set tlv header to null for reset bssid hotlist and reset significant change. Change-Id: I5aae77d97ac59d4abbbcd5cb5ced9985a8282d65 CRs-Fixed: 691424 --- CORE/SERVICES/WMA/wma.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index a427e9142a81..c815dad1ed08 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -2002,6 +2002,7 @@ static int wma_extscan_capabilities_event_handler (void *handle, dest_capab->scanBuckets = src_cache->max_buckets; dest_capab->scanCacheSize = src_cache->scan_cache_entry_size; dest_capab->maxHotlistAPs = src_hotlist->max_hotlist_entries; + dest_capab->status = 0; WMA_LOGD("%s: Capabilities: scanBuckets: %d," "maxHotlistAPs: %d,scanCacheSize: %d", @@ -19660,6 +19661,7 @@ VOS_STATUS wma_extscan_stop_hotlist_monitor(tp_wma_handle wma, wmi_buf_t wmi_buf; uint32_t len; u_int8_t *buf_ptr; + int hotlist_entries = 0; if (!wma || !wma->wmi_handle) { WMA_LOGE("%s: WMA is closed, can not issue cmd", @@ -19678,6 +19680,11 @@ VOS_STATUS wma_extscan_stop_hotlist_monitor(tp_wma_handle wma, return VOS_STATUS_E_FAILURE; } len = sizeof(*cmd); + + /* reset bssid hotlist with tlv set to 0 */ + len += WMI_TLV_HDR_SIZE; + len += hotlist_entries * sizeof(wmi_extscan_hotlist_entry); + wmi_buf = wmi_buf_alloc(wma->wmi_handle, len); if (!wmi_buf) { WMA_LOGE("%s: wmi_buf_alloc failed", __func__); @@ -19696,6 +19703,13 @@ VOS_STATUS wma_extscan_stop_hotlist_monitor(tp_wma_handle wma, cmd->vdev_id = photlist_reset->sessionId; cmd->mode = 0; + buf_ptr += sizeof(*cmd); + WMITLV_SET_HDR(buf_ptr, + WMITLV_TAG_ARRAY_STRUC, + hotlist_entries * sizeof(wmi_extscan_hotlist_entry)); + buf_ptr += WMI_TLV_HDR_SIZE + + (hotlist_entries * sizeof(wmi_extscan_hotlist_entry)); + if (wmi_unified_cmd_send(wma->wmi_handle, wmi_buf, len, WMI_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID)) { WMA_LOGE("%s: failed to command", __func__); @@ -19820,6 +19834,7 @@ VOS_STATUS wma_extscan_stop_change_monitor(tp_wma_handle wma, wmi_buf_t wmi_buf; uint32_t len; u_int8_t *buf_ptr; + int change_list = 0; if (!wma || !wma->wmi_handle) { WMA_LOGE("%s: WMA is closed, can not issue cmd", @@ -19833,6 +19848,11 @@ VOS_STATUS wma_extscan_stop_change_monitor(tp_wma_handle wma, return VOS_STATUS_E_FAILURE; } len = sizeof(*cmd); + + /* reset significant change tlv is set to 0 */ + len += WMI_TLV_HDR_SIZE; + len += change_list * + sizeof(wmi_extscan_wlan_change_bssid_param); wmi_buf = wmi_buf_alloc(wma->wmi_handle, len); if (!wmi_buf) { WMA_LOGE("%s: wmi_buf_alloc failed", __func__); @@ -19850,6 +19870,14 @@ VOS_STATUS wma_extscan_stop_change_monitor(tp_wma_handle wma, cmd->vdev_id = pResetReq->sessionId; cmd->mode = 0; + buf_ptr += sizeof(*cmd); + WMITLV_SET_HDR(buf_ptr, + WMITLV_TAG_ARRAY_STRUC, + change_list * + sizeof(wmi_extscan_wlan_change_bssid_param)); + buf_ptr += WMI_TLV_HDR_SIZE + (change_list * + sizeof(wmi_extscan_wlan_change_bssid_param)); + if (wmi_unified_cmd_send(wma->wmi_handle, wmi_buf, len, WMI_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID)) { WMA_LOGE("%s: failed to command", __func__); -- cgit v1.2.3 From 5673a354348633c150a417d107faf37885e34a42 Mon Sep 17 00:00:00 2001 From: Naveen Rawat Date: Thu, 3 Jul 2014 17:27:06 -0700 Subject: qcacld: Fix for DUT not honouring 5 GHz preference during roaming DUT was not connecting to correct 5 GHz AP during roaming because of wrong RSSI reported for current AP. The reason for wrong RSSI is: 1) Firmware keeps sending current AP beacons up. They are stored in our scan cache at LIM always. So Lim scan cache is never empty. 2) The way test is conducted we have 3 APs, one of them (da:e9) which has good RSSI is disconnected and we should connect to 5 GHz AP now. 3) But since it was disconnection its RSSI never went down to -70 something and when it is returned to SME as part of LFR scan results, current AP.s RSSI is in good RSSI range. To fix this, currently connected AP should not be returned in LFR scan result to SME. Change-Id: I931a06cf2247ef65eaa300026a3a338c904fd11a CRs-Fixed: 687571 --- CORE/MAC/src/pe/lim/limSendSmeRspMessages.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c index 762fe984bebf..19d43d6cd7e9 100644 --- a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c +++ b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c @@ -939,6 +939,8 @@ limSendSmeLfrScanRsp(tpAniSirGlobal pMac, tANI_U16 length, tANI_U8 *pbBuf; tSirBssDescription *pDesc; tANI_S16 scanEntriesLeft = 0; + tANI_U8 *currentBssid = + pMac->roam.roamSession[smesessionId].connectedProfile.bssid; PELOG1(limLog(pMac, LOG1, FL("Sending message SME_SCAN_RSP with length=%d reasonCode %s\n"), @@ -970,6 +972,14 @@ limSendSmeLfrScanRsp(tpAniSirGlobal pMac, tANI_U16 length, ptemp = pMac->lim.gLimCachedLfrScanHashTable[i]; while(ptemp) { + if (vos_mem_compare(ptemp->bssDescription.bssId, + currentBssid, + sizeof(tSirMacAddr))) + { + ptemp = ptemp->next; + continue; + } + pbBuf = ((tANI_U8 *)pSirSmeScanRsp) + msgLen; if(0 == bssCount) { @@ -1043,6 +1053,14 @@ limSendSmeLfrScanRsp(tpAniSirGlobal pMac, tANI_U16 length, (tANI_U8 *) &pSsid->length, (tANI_U8) (pSsid->length + 1))) { + if (vos_mem_compare(ptemp->bssDescription.bssId, + currentBssid, + sizeof(tSirMacAddr))) + { + ptemp = ptemp->next; + continue; + } + pbBuf = ((tANI_U8 *)pSirSmeScanRsp) + msgLen; if(0 == bssCount) { -- cgit v1.2.3 From cca5e7a271d94a572751512be8a533cc2197e82b Mon Sep 17 00:00:00 2001 From: Krishna Kumaar Natarajan Date: Wed, 2 Jul 2014 15:02:52 -0700 Subject: qcacld: CL 1002509 1004055 1008605 - update fw cmn interface files This commit adds fw common interface changes to support D0-WOW, BMI support flag for debug uart, DFS WOW command. Change-Id: I2f92530a2f7b8c4fe8bd8f70405c86c611c33441 CRs-Fixed: 688839 --- CORE/SERVICES/COMMON/targaddrs.h | 1 + CORE/SERVICES/COMMON/wmi_services.h | 2 ++ CORE/SERVICES/COMMON/wmi_tlv_defs.h | 18 ++++++++++++++++-- CORE/SERVICES/COMMON/wmi_unified.h | 38 +++++++++++++++++++++++++++++++++++++ CORE/SERVICES/WMI/wmi_unified.c | 1 + 5 files changed, 58 insertions(+), 2 deletions(-) diff --git a/CORE/SERVICES/COMMON/targaddrs.h b/CORE/SERVICES/COMMON/targaddrs.h index 8aa816ee93d5..ffa3cfad56e8 100644 --- a/CORE/SERVICES/COMMON/targaddrs.h +++ b/CORE/SERVICES/COMMON/targaddrs.h @@ -359,6 +359,7 @@ PREPACK64 struct host_interest_s { (!(HOST_INTEREST->hi_option_flag2 & HI_OPTION_DISABLE_CDC_MAX_PERF_WAR)) #define HI_OPTION_USE_EXT_LDO 0x40 /* use LDO27 for 1.1V instead of PMU */ +#define HI_OPTION_DBUART_SUPPORT 0x80 /* Enable uart debug support */ /* hi_reset_flag */ #define HI_RESET_FLAG_PRESERVE_APP_START 0x01 /* preserve App Start address */ diff --git a/CORE/SERVICES/COMMON/wmi_services.h b/CORE/SERVICES/COMMON/wmi_services.h index 4f4ee13ef275..b1edf4c8ea2f 100644 --- a/CORE/SERVICES/COMMON/wmi_services.h +++ b/CORE/SERVICES/COMMON/wmi_services.h @@ -107,6 +107,8 @@ typedef enum { WMI_SERVICE_IBSS_PWRSAVE, /* IBSS power save support */ WMI_SERVICE_LPASS, /*Service to support LPASS*/ WMI_SERVICE_EXTSCAN, /* Extended Scans */ + WMI_SERVICE_D0WOW, /* D0-WOW Support */ + WMI_SERVICE_HSOFFLOAD, /* Hotspot offload feature Support */ WMI_MAX_SERVICE=128 /* max service */ } WMI_SERVICE; diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h index 07bad20faa2b..f39215c716ac 100644 --- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h +++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h @@ -486,6 +486,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_extscan_cache_capabilities_event_fixed_param, WMITLV_TAG_STRUC_wmi_extscan_wlan_change_monitor_capabilities_event_fixed_param, WMITLV_TAG_STRUC_wmi_extscan_hotlist_monitor_capabilities_event_fixed_param, + WMITLV_TAG_STRUC_wmi_d0_wow_enable_disable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_d0_wow_disable_ack_event_fixed_param, } WMITLV_TAG_ID; /* @@ -663,7 +665,8 @@ typedef enum { OP(WMI_EXTSCAN_GET_CACHED_RESULTS_CMDID) \ OP(WMI_EXTSCAN_GET_WLAN_CHANGE_RESULTS_CMDID) \ OP(WMI_EXTSCAN_SET_CAPABILITIES_CMDID) \ - OP(WMI_EXTSCAN_GET_CAPABILITIES_CMDID) + OP(WMI_EXTSCAN_GET_CAPABILITIES_CMDID) \ + OP(WMI_D0_WOW_ENABLE_DISABLE_CMDID) /* @@ -746,7 +749,8 @@ typedef enum { OP(WMI_EXTSCAN_CACHED_RESULTS_EVENTID) \ OP(WMI_EXTSCAN_WLAN_CHANGE_RESULTS_EVENTID) \ OP(WMI_EXTSCAN_HOTLIST_MATCH_EVENTID) \ - OP(WMI_EXTSCAN_CAPABILITIES_EVENTID) + OP(WMI_EXTSCAN_CAPABILITIES_EVENTID) \ + OP(WMI_D0_WOW_DISABLE_ACK_EVENTID) /* TLV definitions of WMI commands */ @@ -1814,6 +1818,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_HOST_AUTO_SHUTDOWN_CFG_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chan_avoid_update_cmd_param, wmi_chan_avoid_update_cmd_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_CHAN_AVOID_UPDATE_CMDID); +/* D0-WOW Enable Disable Cmd */ +#define WMITLV_TABLE_WMI_D0_WOW_ENABLE_DISABLE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_d0_wow_enable_disable_cmd_fixed_param, wmi_d0_wow_enable_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_D0_WOW_ENABLE_DISABLE_CMDID); + /************************** TLV definitions of WMI events *******************************/ /* Service Ready event */ @@ -2241,6 +2250,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_HOST_AUTO_SHUTDOWN_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_state_event_fixed_param, wmi_peer_state_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATE_EVENTID); +/* D0-WOW Disable Ack event */ +#define WMITLV_TABLE_WMI_D0_WOW_DISABLE_ACK_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_d0_wow_disable_ack_event_fixed_param, wmi_d0_wow_disable_ack_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_D0_WOW_DISABLE_ACK_EVENTID); + #ifdef __cplusplus } #endif diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h index 72de951bb729..675bc6e32a82 100644 --- a/CORE/SERVICES/COMMON/wmi_unified.h +++ b/CORE/SERVICES/COMMON/wmi_unified.h @@ -442,6 +442,8 @@ typedef enum { WMI_WOW_ACER_IOAC_ADD_WAKE_PATTERN_CMDID, /* Acer IOAC deleta a wake pattern */ WMI_WOW_ACER_IOAC_DEL_WAKE_PATTERN_CMDID, + /* D0-WOW enable or disable cmd */ + WMI_D0_WOW_ENABLE_DISABLE_CMDID, /* RTT measurement related cmd */ /** reques to make an RTT measurement */ @@ -768,6 +770,7 @@ typedef enum { /** WOW wake up host event.generated in response to WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID. will cary wake reason */ WMI_WOW_WAKEUP_HOST_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_WOW), + WMI_D0_WOW_DISABLE_ACK_EVENTID, /*RTT related event ID*/ /** RTT measurement report */ @@ -5252,6 +5255,7 @@ typedef enum event_type_e { WOW_ACER_IOAC_SHORT_EVENT, WOW_ACER_IOAC_EXTEND_EVENT, WOW_ACER_IOAC_TIMER_EVENT, + WOW_DFS_PHYERR_RADAR_EVENT, }WOW_WAKE_EVENT_TYPE; typedef enum wake_reason_e { @@ -5280,6 +5284,7 @@ typedef enum wake_reason_e { WOW_REASON_ACER_IOAC_SHORT_EVENT, WOW_REASON_ACER_IOAC_EXTEND_EVENT, WOW_REASON_ACER_IOAC_TIMER_EVENT, + WOW_REASON_DFS_PHYERR_RADADR_EVENT, WOW_REASON_DEBUG_TEST = 0xFF, }WOW_WAKE_REASON_TYPE; @@ -5446,6 +5451,33 @@ typedef struct wow_event_info_section_bitmap_s { A_UINT32 org_len; /*The length of the orginal packet.*/ }WOW_EVENT_INFO_SECTION_BITMAP; +/** + * This command is sent from WLAN host driver to firmware to + * enable or disable D0-WOW. D0-WOW means APSS suspend with + * PCIe link and DDR being active. + * + * + * Entering D0-WOW Mode (based on kernel suspend request): + * host->target: WMI_DO_WOW_ENABLE_DISABLE_CMDID (enable = 1) + * target: Take action (e.g. dbglog suspend) + * target->host: HTC_ACK (HTC_MSG_SEND_SUSPEND_COMPLETE message) + * + * Exiting D0-WOW mode (based on kernel resume OR target->host message received) + * host->target: WMI_DO_WOW_ENABLE_DISABLE_CMDID (enable = 0) + * target: Take action (e.g. dbglog resume) + * target->host: WMI_D0_WOW_DISABLE_ACK_EVENTID + * + * This command is applicable only on the PCIE LL systems + * Host can enter either D0-WOW or WOW mode, but NOT both at same time + * Decision to enter D0-WOW or WOW is based on active interfaces + * + */ +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_d0_wow_enable_disable_cmd_fixed_param */ + A_UINT32 enable; /* 1 = enable, 0 = disable */ +} wmi_d0_wow_enable_disable_cmd_fixed_param; + + #define WMI_RXERR_CRC 0x01 /* CRC error on frame */ #define WMI_RXERR_DECRYPT 0x08 /* non-Michael decrypt error */ #define WMI_RXERR_MIC 0x10 /* Michael MIC decrypt error */ @@ -8121,6 +8153,12 @@ typedef struct { */ } wmi_extscan_capabilities_event_fixed_param; +/* WMI_D0_WOW_DISABLE_ACK_EVENTID */ +typedef struct{ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_d0_wow_disable_ack_event_fixed_param */ + A_UINT32 reserved0; /* for future need */ +} wmi_d0_wow_disable_ack_event_fixed_param; + #ifdef __cplusplus } #endif diff --git a/CORE/SERVICES/WMI/wmi_unified.c b/CORE/SERVICES/WMI/wmi_unified.c index ec678e969417..d2a08d00000a 100644 --- a/CORE/SERVICES/WMI/wmi_unified.c +++ b/CORE/SERVICES/WMI/wmi_unified.c @@ -564,6 +564,7 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command) #ifdef WLAN_FEATURE_ROAM_OFFLOAD CASE_RETURN_STRING(WMI_ROAM_SYNCH_COMPLETE); #endif + CASE_RETURN_STRING(WMI_D0_WOW_ENABLE_DISABLE_CMDID); } return "Invalid WMI cmd"; } -- cgit v1.2.3 From 530bf4dccca54f2ff8c3ab23611fa62c7aea7a8d Mon Sep 17 00:00:00 2001 From: Komal Seelam Date: Fri, 4 Jul 2014 16:44:12 +0530 Subject: qcacld: Enable athdiag to dump Target memory for Rome 2.2 version. Enable athdiag support to dump target memory for Rome 2.2 Version. target memory: IRAM, DRAM, AXI memory Usage: athdiag --dump --target=AR6320_v2 CRs-Fixed: 689715 Change-Id: Icd2636bfd34d1f177010d92b41f988e398c1ca12 --- tools/athdiag/athdiag.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/tools/athdiag/athdiag.c b/tools/athdiag/athdiag.c index bbbb0165be8f..c0f13da6af0f 100644 --- a/tools/athdiag/athdiag.c +++ b/tools/athdiag/athdiag.c @@ -93,14 +93,12 @@ #define TARGET_FLAG 0x1000 #define PATH_FLAG 0x2000 - /* Limit malloc size when reading/writing file */ #define MAX_BUF (8*1024) #define DUMP_DRAM_START_ADDR 0x400000 #define DUMP_DRAM_LEN 0x50000 - #define PEREGRINE_REG_PART1_START_ADDR 0x4000 #define PEREGRINE_REG_PART1_LEN 0x2000 #define PEREGRINE_REG_PART2_START_ADDR 0x8000 @@ -111,6 +109,12 @@ #define AR6320V1_REG_PART2_START_ADDR 0x27000 /*STEREO_BASE_ADDRESS*/ #define AR6320V1_REG_PART2_LEN (0x60000 - 0x27000) /*USB_BASE_ADDRESS - STEREO_BASE_ADDRESS*/ +#define AR6320V2_DRAM_START_ADDR 0x400000 // dram start +#define AR6320V2_DUMP_DRAM_LEN 0x70000 // dram length +#define AR6320V2_IRAM_START_ADDR 0x980000 // iram start +#define AR6320V2_IRAM_LEN 0x38000 // iram length +#define AR6320V2_AXI_START_ADDR 0xa0000 // axi start +#define AR6320V2_AXI_LEN 0x18000 // axi length struct ath_target_reg_info { A_UINT32 reg_start; @@ -133,10 +137,16 @@ static const struct ath_target_reg_info reg_ar6320_v1[] = { {0, 0, 0, 0} }; +static const struct ath_target_reg_info reg_ar6320_v2[] = { + {AR6320V2_DRAM_START_ADDR, AR6320V2_DUMP_DRAM_LEN, "DRAM", "fwdump_rome_v2_dram"}, + {AR6320V2_IRAM_START_ADDR, AR6320V2_IRAM_LEN, "IRAM", "fwdump_rome_v2_iram"}, + {AR6320V2_AXI_START_ADDR, AR6320V2_AXI_LEN, "AXI", "fwdump_rome_v2_axi"}, + {0, 0, 0, 0} +}; #define INVALID_TARGET_INDEX 0xffff #define MIN_TARGET_INDEX 0 -#define MAX_TARGET_INDEX 2 +#define MAX_TARGET_INDEX 3 struct ath_target_info { const char *name; @@ -146,6 +156,7 @@ struct ath_target_info { static const struct ath_target_info target_info[] = { {"AR9888_v2", reg_ar9888_v2}, {"AR6320_v1", reg_ar6320_v1}, + {"AR6320_v2", reg_ar6320_v2}, }; @@ -410,7 +421,7 @@ DumpTargetMem(int dev, unsigned int target_idx, char *pathname) A_UINT8 *buffer; unsigned int i, address, length, remaining; - if ((target_idx < MIN_TARGET_INDEX) || (target_idx >= MAX_TARGET_INDEX)) + if (target_idx >= MAX_TARGET_INDEX) return; buffer = (A_UINT8 *)MALLOC(MAX_BUF); @@ -443,7 +454,7 @@ DumpTargetMem(int dev, unsigned int target_idx, char *pathname) address+length); } - nqprintf("DIAG Read Target (address: 0x%x, length: %d, filename: %s)\n", + nqprintf("DIAG Read Target (address: 0x%x, length: 0x%x, filename: %s)\n", address, length, filename); while (remaining) { @@ -488,7 +499,7 @@ parse_target_index(char *optarg) unsigned int i, index = INVALID_TARGET_INDEX; for (i = 0; i < sizeof(target_info)/sizeof(target_info[0]); i++) { - if (strncmp(optarg, target_info[i].name, sizeof(target_info[i].name)) == 0) { + if (strncmp(optarg, target_info[i].name, strlen(target_info[i].name)) == 0) { /* found */ index = i; break; -- cgit v1.2.3 From 536f53f5bdfb329d008b2fd102a1b20c3625d794 Mon Sep 17 00:00:00 2001 From: Atul Mittal Date: Thu, 10 Jul 2014 17:00:35 +0530 Subject: qcacld: fix unwanted f/w logs after ssr After ssr the value 0 is being set for the log level and type, which causes the f/w logs to be printed on kmsg. Only if log report is set to 1 through iwpriv commnd, the log level and type should be set to the firmware. so to enable the f/w logs user need to set the all the three values which will be retained after ssr and set to f/w, controlled by log report command. Change-Id: I3ec3cfc25b1c64a757cd79fbd518e11856f8998d CRs-Fixed: 690158 --- CORE/HDD/src/wlan_hdd_early_suspend.c | 37 ++++++++++++++++++++--------------- CORE/HDD/src/wlan_hdd_main.c | 2 +- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/CORE/HDD/src/wlan_hdd_early_suspend.c b/CORE/HDD/src/wlan_hdd_early_suspend.c index c60e782d89e2..e8caf7b16df2 100644 --- a/CORE/HDD/src/wlan_hdd_early_suspend.c +++ b/CORE/HDD/src/wlan_hdd_early_suspend.c @@ -2248,24 +2248,29 @@ VOS_STATUS hdd_wlan_re_init(void *hif_sc) WMI_DBGLOG_MODULE_DISABLE, pHddCtx->fw_log_settings.enable, DBG_CMD); } - process_wma_set_command(pAdapter->sessionId, - WMI_DBGLOG_TYPE, - pHddCtx->fw_log_settings.dl_type, DBG_CMD); - process_wma_set_command(pAdapter->sessionId, - WMI_DBGLOG_REPORT_ENABLE, - pHddCtx->fw_log_settings.dl_report, DBG_CMD); - process_wma_set_command(pAdapter->sessionId, - WMI_DBGLOG_LOG_LEVEL, - pHddCtx->fw_log_settings.dl_loglevel, DBG_CMD); - for (i = 0; i < MAX_MOD_LOGLEVEL; i++) { - if (pHddCtx->fw_log_settings.dl_mod_loglevel[i] != 0) { - process_wma_set_command(pAdapter->sessionId, - WMI_DBGLOG_MOD_LOG_LEVEL, - pHddCtx->fw_log_settings.dl_mod_loglevel[i], - DBG_CMD); + if (pHddCtx->fw_log_settings.dl_report != 0) { + + process_wma_set_command(pAdapter->sessionId, + WMI_DBGLOG_REPORT_ENABLE, + pHddCtx->fw_log_settings.dl_report, DBG_CMD); + + process_wma_set_command(pAdapter->sessionId, + WMI_DBGLOG_TYPE, + pHddCtx->fw_log_settings.dl_type, DBG_CMD); + + process_wma_set_command(pAdapter->sessionId, + WMI_DBGLOG_LOG_LEVEL, + pHddCtx->fw_log_settings.dl_loglevel, DBG_CMD); + + for (i = 0; i < MAX_MOD_LOGLEVEL; i++) { + if (pHddCtx->fw_log_settings.dl_mod_loglevel[i] != 0) { + process_wma_set_command(pAdapter->sessionId, + WMI_DBGLOG_MOD_LOG_LEVEL, + pHddCtx->fw_log_settings.dl_mod_loglevel[i], + DBG_CMD); + } } } - /* end of f/w log config after ssr */ pHddCtx->isLogpInProgress = FALSE; vos_set_logp_in_progress(VOS_MODULE_ID_VOSS, FALSE); diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c index 28893dd34f93..66614a23387e 100755 --- a/CORE/HDD/src/wlan_hdd_main.c +++ b/CORE/HDD/src/wlan_hdd_main.c @@ -11437,7 +11437,7 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc) /* Initialize struct for saving f/w log setting will be used after ssr */ - pHddCtx->fw_log_settings.enable = 0; + pHddCtx->fw_log_settings.enable = pHddCtx->cfg_ini->enablefwlog; pHddCtx->fw_log_settings.dl_type = 0; pHddCtx->fw_log_settings.dl_report = 0; pHddCtx->fw_log_settings.dl_loglevel = 0; -- cgit v1.2.3 From e371ce7ce3b2ee06fa6584a259d39f70259557d3 Mon Sep 17 00:00:00 2001 From: Pitani Venkata Rajesh Kumar Date: Thu, 10 Jul 2014 15:10:47 +0530 Subject: Cafstaging Release 1.0.0.143 Cafstaging Release 1.0.0.143 Change-Id: I53493802aca9a34e046faedb26da84187144d290 CRs-Fixed: 688141 --- CORE/MAC/inc/qwlan_version.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h index bdade53f343c..40a1d705d763 100644 --- a/CORE/MAC/inc/qwlan_version.h +++ b/CORE/MAC/inc/qwlan_version.h @@ -42,9 +42,9 @@ BRIEF DESCRIPTION: #define QWLAN_VERSION_MINOR 0 #define QWLAN_VERSION_PATCH 0 #define QWLAN_VERSION_EXTRA "" -#define QWLAN_VERSION_BUILD 142 +#define QWLAN_VERSION_BUILD 143 -#define QWLAN_VERSIONSTR "1.0.0.142" +#define QWLAN_VERSIONSTR "1.0.0.143" #ifdef QCA_WIFI_2_0 -- cgit v1.2.3