Loading dp/wifi3.0/dp_rx_defrag.c +8 −0 Original line number Diff line number Diff line Loading @@ -1483,6 +1483,9 @@ static QDF_STATUS dp_rx_defrag(struct dp_peer *peer, unsigned tid, struct dp_soc *soc = vdev->pdev->soc; uint8_t status = 0; if (!cur) return QDF_STATUS_E_DEFRAG_ERROR; hdr_space = dp_rx_defrag_hdrsize(soc, cur); index = hal_rx_msdu_is_wlan_mcast(cur) ? dp_sec_mcast : dp_sec_ucast; Loading Loading @@ -1853,9 +1856,11 @@ 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 Loading @@ -1909,6 +1914,7 @@ 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 @@ -1927,12 +1933,14 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, "%s: Failed to return link desc", __func__); dp_rx_defrag_cleanup(peer, tid); qdf_spin_unlock_bh(&rx_tid->tid_lock); goto end; } /* Re-inject the fragments back to REO for further processing */ status = dp_rx_defrag_reo_reinject(peer, tid, rx_reorder_array_elem->head); qdf_spin_unlock_bh(&rx_tid->tid_lock); if (QDF_IS_STATUS_SUCCESS(status)) { rx_reorder_array_elem->head = NULL; rx_reorder_array_elem->tail = NULL; Loading os_if/linux/qca_vendor.h +32 −0 Original line number Diff line number Diff line Loading @@ -8640,6 +8640,34 @@ enum qca_wlan_twt_setup_state { * This parameter is used for * 1. TWT SET Request and Response * 2. TWT GET Response * * @QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_ID: Optional (u8) * This attribute is used to configure Broadcast TWT ID. * The Broadcast TWT ID indicates a specific Broadcast TWT for which the * transmitting STA is providing TWT parameters. The allowed values are 0 to 31. * This parameter is used for * 1. TWT SET Request * 2. TWT TERMINATE Request * * @QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_RECOMMENDATION: Optional (u8) * This attribute is used to configure Broadcast TWT recommendation. * The Broadcast TWT Recommendation subfield contains a value that indicates * recommendations on the types of frames that are transmitted by TWT * scheduled STAs and scheduling AP during the broadcast TWT SP. * The allowed values are 0 - 3. * This parameter is used for * 1. TWT SET Request * * @QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_PERSISTENCE: Optional (u8) * This attribute is used to configure Broadcast TWT Persistence. * The Broadcast TWT Persistence subfield indicates the number of * TBTTs during which the Broadcast TWT SPs corresponding to this * broadcast TWT Parameter set are present. The number of beacon intervals * during which the Broadcast TWT SPs are present is equal to the value in the * Broadcast TWT Persistence subfield plus 1 except that the value 255 * indicates that the Broadcast TWT SPs are present until explicitly terminated. * This parameter is used for * 1. TWT SET Request */ enum qca_wlan_vendor_attr_twt_setup { QCA_WLAN_VENDOR_ATTR_TWT_SETUP_INVALID = 0, Loading Loading @@ -8669,6 +8697,10 @@ enum qca_wlan_vendor_attr_twt_setup { QCA_WLAN_VENDOR_ATTR_TWT_SETUP_STATE = 20, QCA_WLAN_VENDOR_ATTR_TWT_SETUP_WAKE_INTVL2_MANTISSA = 21, QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_ID = 22, QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_RECOMMENDATION = 23, QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_PERSISTENCE = 24, /* keep last */ QCA_WLAN_VENDOR_ATTR_TWT_SETUP_AFTER_LAST, QCA_WLAN_VENDOR_ATTR_TWT_SETUP_MAX = Loading umac/scan/core/src/wlan_scan_main.h +2 −0 Original line number Diff line number Diff line Loading @@ -302,6 +302,7 @@ struct extscan_def_config { * @skip_dfs_chan_in_p2p_search: Skip DFS channels in p2p search. * @use_wake_lock_in_user_scan: if wake lock will be acquired during user scan * @active_dwell_2g: default active dwell time for 2G channels, if it's not zero * @min_dwell_time_6g: default min dwell time for 6G channels * @active_dwell_6g: default active dwell time for 6G channels * @passive_dwell_6g: default passive dwell time for 6G channels * @active_dwell_time_6g_conc: default concurrent active dwell time for 6G Loading Loading @@ -391,6 +392,7 @@ struct scan_default_params { bool skip_dfs_chan_in_p2p_search; bool use_wake_lock_in_user_scan; uint32_t active_dwell_2g; uint32_t min_dwell_time_6g; uint32_t active_dwell_6g; uint32_t passive_dwell_6g; uint32_t active_dwell_time_6g_conc; Loading umac/scan/dispatcher/inc/wlan_scan_cfg.h +37 −3 Original line number Diff line number Diff line Loading @@ -179,6 +179,32 @@ enum scan_mode_6ghz { 0, 10000, PLATFORM_VALUE(80, 0),\ CFG_VALUE_OR_DEFAULT, "active dwell time for 2G channels") /* * <ini> * min_channel_time_6g - Set min dwell time for 6G channels scan * @Min: 5 * @Max: 60 * @Default: 25 * * This ini is used to set minimum time in msecs spent in 6G channels scan. * Firmware will park on the 6G channel for this duration and if no FILS * discovery, Beacon, Probe resp is received it will move to new channel after * this duration. If found , it will wait for "active_max_channel_time_6g" * duration * * Related: active_max_channel_time_6g * * Supported Feature: Scan * * Usage: External * * </ini> */ #define CFG_MIN_6G_CHANNEL_TIME CFG_INI_UINT(\ "min_dwell_time_6g",\ 5, 60, 25,\ CFG_VALUE_OR_DEFAULT, "min dwell time for 6G channels") /* * <ini> * active_max_channel_time_6g - Set max time for active 6G channel scan Loading @@ -191,6 +217,8 @@ enum scan_mode_6ghz { * * Related: None * * Supported Feature: Scan * * Usage: External * * </ini> Loading @@ -198,7 +226,7 @@ enum scan_mode_6ghz { #define CFG_ACTIVE_MAX_6G_CHANNEL_TIME CFG_INI_UINT(\ "active_max_channel_time_6g",\ 0, 10000, 40,\ CFG_VALUE_OR_DEFAULT, "active dwell time for 6G channels") CFG_VALUE_OR_DEFAULT, "max active dwell time for 6G channels") /* * <ini> Loading @@ -209,9 +237,10 @@ enum scan_mode_6ghz { * * This ini is used to set maximum time in msecs spent in passive 6G chan scan * * * Related: None * * Supported Feature: Scan * * Usage: External * * </ini> Loading @@ -219,7 +248,7 @@ enum scan_mode_6ghz { #define CFG_PASSIVE_MAX_6G_CHANNEL_TIME CFG_INI_UINT(\ "passive_max_channel_time_6g",\ 0, 10000, 30,\ CFG_VALUE_OR_DEFAULT, "passive dwell time for 6G channels") CFG_VALUE_OR_DEFAULT, "max passive dwell time for 6G channels") /* * <ini> Loading @@ -234,6 +263,8 @@ enum scan_mode_6ghz { * * Related: None * * Supported Feature: Scan * * Usage: External * * </ini> Loading @@ -256,6 +287,8 @@ enum scan_mode_6ghz { * * Related: None * * Supported Feature: Scan * * Usage: External * * </ini> Loading Loading @@ -1389,6 +1422,7 @@ enum scan_mode_6ghz { CFG(CFG_INITIAL_NO_DFS_SCAN) \ CFG(CFG_ACTIVE_MAX_2G_CHANNEL_TIME) \ CFG(CFG_PASSIVE_MAX_CHANNEL_TIME) \ CFG(CFG_MIN_6G_CHANNEL_TIME) \ CFG(CFG_ACTIVE_MAX_6G_CHANNEL_TIME) \ CFG(CFG_PASSIVE_MAX_6G_CHANNEL_TIME) \ CFG(CFG_ACTIVE_MAX_6G_CHANNEL_TIME_CONC) \ Loading umac/scan/dispatcher/inc/wlan_scan_public_structs.h +2 −0 Original line number Diff line number Diff line Loading @@ -892,6 +892,7 @@ enum scan_request_type { * @dwell_time_active: active dwell time * @dwell_time_active_2g: active dwell time for 2G channels, if it's not zero * @dwell_time_passive: passive dwell time * @min_dwell_time_6g: 6Ghz min dwell time * @dwell_time_active_6g: 6Ghz active dwell time * @dwell_time_passive_6g: 6Ghz passive dwell time * @min_rest_time: min rest time Loading Loading @@ -977,6 +978,7 @@ struct scan_req_params { uint32_t dwell_time_active; uint32_t dwell_time_active_2g; uint32_t dwell_time_passive; uint32_t min_dwell_time_6g; uint32_t dwell_time_active_6g; uint32_t dwell_time_passive_6g; uint32_t min_rest_time; Loading Loading
dp/wifi3.0/dp_rx_defrag.c +8 −0 Original line number Diff line number Diff line Loading @@ -1483,6 +1483,9 @@ static QDF_STATUS dp_rx_defrag(struct dp_peer *peer, unsigned tid, struct dp_soc *soc = vdev->pdev->soc; uint8_t status = 0; if (!cur) return QDF_STATUS_E_DEFRAG_ERROR; hdr_space = dp_rx_defrag_hdrsize(soc, cur); index = hal_rx_msdu_is_wlan_mcast(cur) ? dp_sec_mcast : dp_sec_ucast; Loading Loading @@ -1853,9 +1856,11 @@ 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 Loading @@ -1909,6 +1914,7 @@ 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 @@ -1927,12 +1933,14 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc, "%s: Failed to return link desc", __func__); dp_rx_defrag_cleanup(peer, tid); qdf_spin_unlock_bh(&rx_tid->tid_lock); goto end; } /* Re-inject the fragments back to REO for further processing */ status = dp_rx_defrag_reo_reinject(peer, tid, rx_reorder_array_elem->head); qdf_spin_unlock_bh(&rx_tid->tid_lock); if (QDF_IS_STATUS_SUCCESS(status)) { rx_reorder_array_elem->head = NULL; rx_reorder_array_elem->tail = NULL; Loading
os_if/linux/qca_vendor.h +32 −0 Original line number Diff line number Diff line Loading @@ -8640,6 +8640,34 @@ enum qca_wlan_twt_setup_state { * This parameter is used for * 1. TWT SET Request and Response * 2. TWT GET Response * * @QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_ID: Optional (u8) * This attribute is used to configure Broadcast TWT ID. * The Broadcast TWT ID indicates a specific Broadcast TWT for which the * transmitting STA is providing TWT parameters. The allowed values are 0 to 31. * This parameter is used for * 1. TWT SET Request * 2. TWT TERMINATE Request * * @QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_RECOMMENDATION: Optional (u8) * This attribute is used to configure Broadcast TWT recommendation. * The Broadcast TWT Recommendation subfield contains a value that indicates * recommendations on the types of frames that are transmitted by TWT * scheduled STAs and scheduling AP during the broadcast TWT SP. * The allowed values are 0 - 3. * This parameter is used for * 1. TWT SET Request * * @QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_PERSISTENCE: Optional (u8) * This attribute is used to configure Broadcast TWT Persistence. * The Broadcast TWT Persistence subfield indicates the number of * TBTTs during which the Broadcast TWT SPs corresponding to this * broadcast TWT Parameter set are present. The number of beacon intervals * during which the Broadcast TWT SPs are present is equal to the value in the * Broadcast TWT Persistence subfield plus 1 except that the value 255 * indicates that the Broadcast TWT SPs are present until explicitly terminated. * This parameter is used for * 1. TWT SET Request */ enum qca_wlan_vendor_attr_twt_setup { QCA_WLAN_VENDOR_ATTR_TWT_SETUP_INVALID = 0, Loading Loading @@ -8669,6 +8697,10 @@ enum qca_wlan_vendor_attr_twt_setup { QCA_WLAN_VENDOR_ATTR_TWT_SETUP_STATE = 20, QCA_WLAN_VENDOR_ATTR_TWT_SETUP_WAKE_INTVL2_MANTISSA = 21, QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_ID = 22, QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_RECOMMENDATION = 23, QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_PERSISTENCE = 24, /* keep last */ QCA_WLAN_VENDOR_ATTR_TWT_SETUP_AFTER_LAST, QCA_WLAN_VENDOR_ATTR_TWT_SETUP_MAX = Loading
umac/scan/core/src/wlan_scan_main.h +2 −0 Original line number Diff line number Diff line Loading @@ -302,6 +302,7 @@ struct extscan_def_config { * @skip_dfs_chan_in_p2p_search: Skip DFS channels in p2p search. * @use_wake_lock_in_user_scan: if wake lock will be acquired during user scan * @active_dwell_2g: default active dwell time for 2G channels, if it's not zero * @min_dwell_time_6g: default min dwell time for 6G channels * @active_dwell_6g: default active dwell time for 6G channels * @passive_dwell_6g: default passive dwell time for 6G channels * @active_dwell_time_6g_conc: default concurrent active dwell time for 6G Loading Loading @@ -391,6 +392,7 @@ struct scan_default_params { bool skip_dfs_chan_in_p2p_search; bool use_wake_lock_in_user_scan; uint32_t active_dwell_2g; uint32_t min_dwell_time_6g; uint32_t active_dwell_6g; uint32_t passive_dwell_6g; uint32_t active_dwell_time_6g_conc; Loading
umac/scan/dispatcher/inc/wlan_scan_cfg.h +37 −3 Original line number Diff line number Diff line Loading @@ -179,6 +179,32 @@ enum scan_mode_6ghz { 0, 10000, PLATFORM_VALUE(80, 0),\ CFG_VALUE_OR_DEFAULT, "active dwell time for 2G channels") /* * <ini> * min_channel_time_6g - Set min dwell time for 6G channels scan * @Min: 5 * @Max: 60 * @Default: 25 * * This ini is used to set minimum time in msecs spent in 6G channels scan. * Firmware will park on the 6G channel for this duration and if no FILS * discovery, Beacon, Probe resp is received it will move to new channel after * this duration. If found , it will wait for "active_max_channel_time_6g" * duration * * Related: active_max_channel_time_6g * * Supported Feature: Scan * * Usage: External * * </ini> */ #define CFG_MIN_6G_CHANNEL_TIME CFG_INI_UINT(\ "min_dwell_time_6g",\ 5, 60, 25,\ CFG_VALUE_OR_DEFAULT, "min dwell time for 6G channels") /* * <ini> * active_max_channel_time_6g - Set max time for active 6G channel scan Loading @@ -191,6 +217,8 @@ enum scan_mode_6ghz { * * Related: None * * Supported Feature: Scan * * Usage: External * * </ini> Loading @@ -198,7 +226,7 @@ enum scan_mode_6ghz { #define CFG_ACTIVE_MAX_6G_CHANNEL_TIME CFG_INI_UINT(\ "active_max_channel_time_6g",\ 0, 10000, 40,\ CFG_VALUE_OR_DEFAULT, "active dwell time for 6G channels") CFG_VALUE_OR_DEFAULT, "max active dwell time for 6G channels") /* * <ini> Loading @@ -209,9 +237,10 @@ enum scan_mode_6ghz { * * This ini is used to set maximum time in msecs spent in passive 6G chan scan * * * Related: None * * Supported Feature: Scan * * Usage: External * * </ini> Loading @@ -219,7 +248,7 @@ enum scan_mode_6ghz { #define CFG_PASSIVE_MAX_6G_CHANNEL_TIME CFG_INI_UINT(\ "passive_max_channel_time_6g",\ 0, 10000, 30,\ CFG_VALUE_OR_DEFAULT, "passive dwell time for 6G channels") CFG_VALUE_OR_DEFAULT, "max passive dwell time for 6G channels") /* * <ini> Loading @@ -234,6 +263,8 @@ enum scan_mode_6ghz { * * Related: None * * Supported Feature: Scan * * Usage: External * * </ini> Loading @@ -256,6 +287,8 @@ enum scan_mode_6ghz { * * Related: None * * Supported Feature: Scan * * Usage: External * * </ini> Loading Loading @@ -1389,6 +1422,7 @@ enum scan_mode_6ghz { CFG(CFG_INITIAL_NO_DFS_SCAN) \ CFG(CFG_ACTIVE_MAX_2G_CHANNEL_TIME) \ CFG(CFG_PASSIVE_MAX_CHANNEL_TIME) \ CFG(CFG_MIN_6G_CHANNEL_TIME) \ CFG(CFG_ACTIVE_MAX_6G_CHANNEL_TIME) \ CFG(CFG_PASSIVE_MAX_6G_CHANNEL_TIME) \ CFG(CFG_ACTIVE_MAX_6G_CHANNEL_TIME_CONC) \ Loading
umac/scan/dispatcher/inc/wlan_scan_public_structs.h +2 −0 Original line number Diff line number Diff line Loading @@ -892,6 +892,7 @@ enum scan_request_type { * @dwell_time_active: active dwell time * @dwell_time_active_2g: active dwell time for 2G channels, if it's not zero * @dwell_time_passive: passive dwell time * @min_dwell_time_6g: 6Ghz min dwell time * @dwell_time_active_6g: 6Ghz active dwell time * @dwell_time_passive_6g: 6Ghz passive dwell time * @min_rest_time: min rest time Loading Loading @@ -977,6 +978,7 @@ struct scan_req_params { uint32_t dwell_time_active; uint32_t dwell_time_active_2g; uint32_t dwell_time_passive; uint32_t min_dwell_time_6g; uint32_t dwell_time_active_6g; uint32_t dwell_time_passive_6g; uint32_t min_rest_time; Loading