Loading dp/wifi3.0/dp_main.c +2 −1 Original line number Diff line number Diff line Loading @@ -5787,7 +5787,8 @@ static QDF_STATUS dp_vdev_attach_wifi3(struct cdp_soc_t *cdp_soc, dp_vdev_pdev_list_add(soc, pdev, vdev); pdev->vdev_count++; if (wlan_op_mode_sta != vdev->opmode) if (wlan_op_mode_sta != vdev->opmode && wlan_op_mode_ndi != vdev->opmode) vdev->ap_bridge_enabled = true; else vdev->ap_bridge_enabled = false; Loading dp/wifi3.0/dp_rx_defrag.c +15 −6 Original line number Diff line number Diff line Loading @@ -1760,9 +1760,6 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, goto discard_frag; } pdev = peer->vdev->pdev; rx_tid = &peer->rx_tid[tid]; mpdu_sequence_control_valid = hal_rx_get_mpdu_sequence_control_valid(soc->hal_soc, rx_desc->rx_buf_start); Loading Loading @@ -1797,10 +1794,15 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, */ fragno = dp_rx_frag_get_mpdu_frag_number(rx_desc->rx_buf_start); pdev = peer->vdev->pdev; rx_tid = &peer->rx_tid[tid]; qdf_spin_lock_bh(&rx_tid->tid_lock); rx_reorder_array_elem = peer->rx_tid[tid].array; if (!rx_reorder_array_elem) { dp_err_rl("Rcvd Fragmented pkt before tid setup for peer %pK", peer); qdf_spin_unlock_bh(&rx_tid->tid_lock); goto discard_frag; } Loading @@ -1818,6 +1820,7 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR, "Rcvd unfragmented pkt on REO Err srng, dropping"); qdf_spin_unlock_bh(&rx_tid->tid_lock); qdf_assert(0); goto discard_frag; } Loading Loading @@ -1845,6 +1848,13 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, rx_tid->curr_seq_num = rxseq; } } else { /* Check if we are processing first fragment if it is * not first fragment discard fragment. */ if (fragno) { qdf_spin_unlock_bh(&rx_tid->tid_lock); goto discard_frag; } dp_debug("cur rxseq %d\n", rxseq); /* Start of a new sequence */ dp_rx_defrag_cleanup(peer, tid); Loading @@ -1856,11 +1866,9 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, * If the earlier sequence was dropped, this will be the fresh start. * Else, continue with next fragment in a given sequence */ qdf_spin_lock_bh(&rx_tid->tid_lock); status = dp_rx_defrag_fraglist_insert(peer, tid, &rx_reorder_array_elem->head, &rx_reorder_array_elem->tail, frag, &all_frag_present); qdf_spin_unlock_bh(&rx_tid->tid_lock); /* * Currently, we can have only 6 MSDUs per-MPDU, if the current Loading @@ -1878,6 +1886,7 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, if (status != QDF_STATUS_SUCCESS) { QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR, "%s: Unable to store ring desc !", __func__); qdf_spin_unlock_bh(&rx_tid->tid_lock); goto discard_frag; } } else { Loading Loading @@ -1906,6 +1915,7 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, dp_rx_defrag_waitlist_add(peer, tid); dp_peer_unref_delete(peer, DP_MOD_ID_RX_ERR); qdf_spin_unlock_bh(&rx_tid->tid_lock); return QDF_STATUS_SUCCESS; } Loading @@ -1914,7 +1924,6 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, "All fragments received for sequence: %d", rxseq); /* Process the fragments */ qdf_spin_lock_bh(&rx_tid->tid_lock); status = dp_rx_defrag(peer, tid, rx_reorder_array_elem->head, rx_reorder_array_elem->tail); if (QDF_IS_STATUS_ERROR(status)) { Loading dp/wifi3.0/dp_tx.c +3 −1 Original line number Diff line number Diff line Loading @@ -2548,7 +2548,6 @@ qdf_nbuf_t dp_tx_send_msdu_multiple(struct dp_vdev *vdev, qdf_nbuf_t nbuf, tid_tx_stats[tx_q->ring_id][msdu_info->tid]; tid_stats->swdrop_cnt[TX_HW_ENQUEUE]++; dp_tx_desc_release(tx_desc, tx_q->desc_pool_id); if (msdu_info->frm_type == dp_tx_frm_me) { hw_enq_fail++; if (hw_enq_fail == msdu_info->num_seg) { Loading @@ -2574,6 +2573,7 @@ qdf_nbuf_t dp_tx_send_msdu_multiple(struct dp_vdev *vdev, qdf_nbuf_t nbuf, msdu_info->u.sg_info .curr_seg->next; i++; dp_tx_desc_release(tx_desc, tx_q->desc_pool_id); continue; } Loading @@ -2590,9 +2590,11 @@ qdf_nbuf_t dp_tx_send_msdu_multiple(struct dp_vdev *vdev, qdf_nbuf_t nbuf, */ dp_tx_comp_free_buf(soc, tx_desc); i++; dp_tx_desc_release(tx_desc, tx_q->desc_pool_id); continue; } dp_tx_desc_release(tx_desc, tx_q->desc_pool_id); goto done; } Loading umac/scan/core/src/wlan_scan_filter.c +11 −1 Original line number Diff line number Diff line Loading @@ -716,8 +716,18 @@ bool scm_filter_match(struct wlan_objmgr_psoc *psoc, } } if (!match && filter->num_of_channels) if (!match && filter->num_of_channels) { /* * Do not print if bssid/ssid is not present in filter to avoid * excessive prints (e.g RRM case where only freq list is * provided to get AP's in specific frequencies) */ if (filter->num_of_bssid || filter->num_of_ssid) scm_debug(QDF_MAC_ADDR_FMT" : Ignore as AP's freq %d is not in freq list", QDF_MAC_ADDR_REF(db_entry->bssid.bytes), db_entry->channel.chan_freq); return false; } if (filter->rrm_measurement_filter) return true; Loading wmi/inc/wmi_unified_api.h +4 −1 Original line number Diff line number Diff line /* * Copyright (c) 2013-2021 The Linux Foundation. All rights reserved. * Copyright (c) 2021 Qualcomm Innovation Center, Inc. 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 Loading Loading @@ -366,6 +367,7 @@ static inline int wmi_process_qmi_fw_event(void *wmi_cb_ctx, void *buf, int len) * @buf: wmi command buffer * @buflen: wmi command buffer length * @cmd_id: WMI cmd id * @is_qmi_send_support:send by qmi is supported * * Note, it is NOT safe to access buf after calling this function! * Loading @@ -373,7 +375,8 @@ static inline int wmi_process_qmi_fw_event(void *wmi_cb_ctx, void *buf, int len) */ QDF_STATUS wmi_unified_cmd_send_pm_chk(struct wmi_unified *wmi_handle, wmi_buf_t buf, uint32_t buflen, uint32_t cmd_id); uint32_t cmd_id, bool is_qmi_send_support); /** * wmi_unified_register_event() - WMI event handler Loading Loading
dp/wifi3.0/dp_main.c +2 −1 Original line number Diff line number Diff line Loading @@ -5787,7 +5787,8 @@ static QDF_STATUS dp_vdev_attach_wifi3(struct cdp_soc_t *cdp_soc, dp_vdev_pdev_list_add(soc, pdev, vdev); pdev->vdev_count++; if (wlan_op_mode_sta != vdev->opmode) if (wlan_op_mode_sta != vdev->opmode && wlan_op_mode_ndi != vdev->opmode) vdev->ap_bridge_enabled = true; else vdev->ap_bridge_enabled = false; Loading
dp/wifi3.0/dp_rx_defrag.c +15 −6 Original line number Diff line number Diff line Loading @@ -1760,9 +1760,6 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, goto discard_frag; } pdev = peer->vdev->pdev; rx_tid = &peer->rx_tid[tid]; mpdu_sequence_control_valid = hal_rx_get_mpdu_sequence_control_valid(soc->hal_soc, rx_desc->rx_buf_start); Loading Loading @@ -1797,10 +1794,15 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, */ fragno = dp_rx_frag_get_mpdu_frag_number(rx_desc->rx_buf_start); pdev = peer->vdev->pdev; rx_tid = &peer->rx_tid[tid]; qdf_spin_lock_bh(&rx_tid->tid_lock); rx_reorder_array_elem = peer->rx_tid[tid].array; if (!rx_reorder_array_elem) { dp_err_rl("Rcvd Fragmented pkt before tid setup for peer %pK", peer); qdf_spin_unlock_bh(&rx_tid->tid_lock); goto discard_frag; } Loading @@ -1818,6 +1820,7 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR, "Rcvd unfragmented pkt on REO Err srng, dropping"); qdf_spin_unlock_bh(&rx_tid->tid_lock); qdf_assert(0); goto discard_frag; } Loading Loading @@ -1845,6 +1848,13 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, rx_tid->curr_seq_num = rxseq; } } else { /* Check if we are processing first fragment if it is * not first fragment discard fragment. */ if (fragno) { qdf_spin_unlock_bh(&rx_tid->tid_lock); goto discard_frag; } dp_debug("cur rxseq %d\n", rxseq); /* Start of a new sequence */ dp_rx_defrag_cleanup(peer, tid); Loading @@ -1856,11 +1866,9 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, * If the earlier sequence was dropped, this will be the fresh start. * Else, continue with next fragment in a given sequence */ qdf_spin_lock_bh(&rx_tid->tid_lock); status = dp_rx_defrag_fraglist_insert(peer, tid, &rx_reorder_array_elem->head, &rx_reorder_array_elem->tail, frag, &all_frag_present); qdf_spin_unlock_bh(&rx_tid->tid_lock); /* * Currently, we can have only 6 MSDUs per-MPDU, if the current Loading @@ -1878,6 +1886,7 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, if (status != QDF_STATUS_SUCCESS) { QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR, "%s: Unable to store ring desc !", __func__); qdf_spin_unlock_bh(&rx_tid->tid_lock); goto discard_frag; } } else { Loading Loading @@ -1906,6 +1915,7 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, dp_rx_defrag_waitlist_add(peer, tid); dp_peer_unref_delete(peer, DP_MOD_ID_RX_ERR); qdf_spin_unlock_bh(&rx_tid->tid_lock); return QDF_STATUS_SUCCESS; } Loading @@ -1914,7 +1924,6 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, "All fragments received for sequence: %d", rxseq); /* Process the fragments */ qdf_spin_lock_bh(&rx_tid->tid_lock); status = dp_rx_defrag(peer, tid, rx_reorder_array_elem->head, rx_reorder_array_elem->tail); if (QDF_IS_STATUS_ERROR(status)) { Loading
dp/wifi3.0/dp_tx.c +3 −1 Original line number Diff line number Diff line Loading @@ -2548,7 +2548,6 @@ qdf_nbuf_t dp_tx_send_msdu_multiple(struct dp_vdev *vdev, qdf_nbuf_t nbuf, tid_tx_stats[tx_q->ring_id][msdu_info->tid]; tid_stats->swdrop_cnt[TX_HW_ENQUEUE]++; dp_tx_desc_release(tx_desc, tx_q->desc_pool_id); if (msdu_info->frm_type == dp_tx_frm_me) { hw_enq_fail++; if (hw_enq_fail == msdu_info->num_seg) { Loading @@ -2574,6 +2573,7 @@ qdf_nbuf_t dp_tx_send_msdu_multiple(struct dp_vdev *vdev, qdf_nbuf_t nbuf, msdu_info->u.sg_info .curr_seg->next; i++; dp_tx_desc_release(tx_desc, tx_q->desc_pool_id); continue; } Loading @@ -2590,9 +2590,11 @@ qdf_nbuf_t dp_tx_send_msdu_multiple(struct dp_vdev *vdev, qdf_nbuf_t nbuf, */ dp_tx_comp_free_buf(soc, tx_desc); i++; dp_tx_desc_release(tx_desc, tx_q->desc_pool_id); continue; } dp_tx_desc_release(tx_desc, tx_q->desc_pool_id); goto done; } Loading
umac/scan/core/src/wlan_scan_filter.c +11 −1 Original line number Diff line number Diff line Loading @@ -716,8 +716,18 @@ bool scm_filter_match(struct wlan_objmgr_psoc *psoc, } } if (!match && filter->num_of_channels) if (!match && filter->num_of_channels) { /* * Do not print if bssid/ssid is not present in filter to avoid * excessive prints (e.g RRM case where only freq list is * provided to get AP's in specific frequencies) */ if (filter->num_of_bssid || filter->num_of_ssid) scm_debug(QDF_MAC_ADDR_FMT" : Ignore as AP's freq %d is not in freq list", QDF_MAC_ADDR_REF(db_entry->bssid.bytes), db_entry->channel.chan_freq); return false; } if (filter->rrm_measurement_filter) return true; Loading
wmi/inc/wmi_unified_api.h +4 −1 Original line number Diff line number Diff line /* * Copyright (c) 2013-2021 The Linux Foundation. All rights reserved. * Copyright (c) 2021 Qualcomm Innovation Center, Inc. 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 Loading Loading @@ -366,6 +367,7 @@ static inline int wmi_process_qmi_fw_event(void *wmi_cb_ctx, void *buf, int len) * @buf: wmi command buffer * @buflen: wmi command buffer length * @cmd_id: WMI cmd id * @is_qmi_send_support:send by qmi is supported * * Note, it is NOT safe to access buf after calling this function! * Loading @@ -373,7 +375,8 @@ static inline int wmi_process_qmi_fw_event(void *wmi_cb_ctx, void *buf, int len) */ QDF_STATUS wmi_unified_cmd_send_pm_chk(struct wmi_unified *wmi_handle, wmi_buf_t buf, uint32_t buflen, uint32_t cmd_id); uint32_t cmd_id, bool is_qmi_send_support); /** * wmi_unified_register_event() - WMI event handler Loading