qcacmn: enable FSE with MLO support
from Beryllium onwards a single Flow Search Table will be used across multiple radios. to ensure this a single FST attach is called for the first SOC's pdev and FST detach is called only during last pdev of last SOC. the same FST instance is saved in all pdevs of all the SOCs CRs-Fixed: 3366409 Change-Id: I42fbdc6f09fb902021877e100a2831a1a24bc975
此提交包含在:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2021-2023 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 above
|
||||
@@ -39,6 +39,8 @@
|
||||
* Associated peer with this MAC address)
|
||||
* @mld_peer_hash_lock: lock to protect mld_peer_hash
|
||||
* @link_to_pdev_map: link to pdev mapping
|
||||
* @rx_fst: pointer to rx_fst handle
|
||||
* @rx_fst_ref_cnt: ref count of rx_fst
|
||||
*/
|
||||
struct dp_mlo_ctxt {
|
||||
struct cdp_ctrl_mlo_mgr *ctrl_ctxt;
|
||||
@@ -56,6 +58,8 @@ struct dp_mlo_ctxt {
|
||||
uint32_t toeplitz_hash_ipv6[LRO_IPV6_SEED_ARR_SZ];
|
||||
struct dp_pdev_be *link_to_pdev_map[WLAN_MAX_MLO_CHIPS *
|
||||
WLAN_MAX_MLO_LINKS_PER_SOC];
|
||||
struct dp_rx_fst *rx_fst;
|
||||
uint8_t rx_fst_ref_cnt;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -114,6 +118,37 @@ dp_mlo_get_soc_ref_by_chip_id(struct dp_mlo_ctxt *ml_ctxt, uint8_t chip_id);
|
||||
void dp_mlo_get_rx_hash_key(struct dp_soc *soc,
|
||||
struct cdp_lro_hash_config *lro_hash);
|
||||
|
||||
/**
|
||||
* dp_mlo_rx_fst_deref() - decrement rx_fst
|
||||
* @soc: dp soc
|
||||
*
|
||||
* return: soc cnt
|
||||
*/
|
||||
uint8_t dp_mlo_rx_fst_deref(struct dp_soc *soc);
|
||||
|
||||
/**
|
||||
* dp_mlo_rx_fst_ref() - increment ref of rx_fst
|
||||
* @soc: dp soc
|
||||
*
|
||||
*/
|
||||
void dp_mlo_rx_fst_ref(struct dp_soc *soc);
|
||||
|
||||
/**
|
||||
* dp_mlo_get_rx_fst() - Get Rx FST from MLO context
|
||||
* @soc: DP SOC
|
||||
*
|
||||
* Return: struct dp_rx_fst pointer
|
||||
*/
|
||||
struct dp_rx_fst *dp_mlo_get_rx_fst(struct dp_soc *soc);
|
||||
|
||||
/**
|
||||
* dp_mlo_set_rx_fst() - Set Rx FST in MLO context
|
||||
* @soc: DP SOC
|
||||
* @fst: pointer dp_rx_fst
|
||||
*
|
||||
*/
|
||||
void dp_mlo_set_rx_fst(struct dp_soc *soc, struct dp_rx_fst *fst);
|
||||
|
||||
/**
|
||||
* dp_mlo_update_link_to_pdev_map : map link-id to pdev mapping
|
||||
* @soc: DP SOC
|
||||
|
新增問題並參考
封鎖使用者