qcacmn: Remove hash key related member in hal_rx_fst

For MCC, hash key related member in struct hal_rx_fst is not used,
it requires big chunk memory > 40K bytes that sometimes may fail to
allocate from system, wlan start up failed.
Remove hash key related member in hal_rx_fst by macro
WLAN_SUPPORT_RX_FISA for MCC.

Change-Id: I4214e18155c3ebc3dcc800c8c74f7eed16d580b4
CRs-Fixed: 2732990
This commit is contained in:
Jinwei Chen
2020-07-19 16:24:57 +08:00
committed by snandini
parent ae92ea605f
commit 50e10cff51
2 changed files with 23 additions and 1 deletions

View File

@@ -133,6 +133,7 @@ hal_rx_flow_delete_entry(struct hal_rx_fst *fst, void *hal_rx_fse)
} }
qdf_export_symbol(hal_rx_flow_delete_entry); qdf_export_symbol(hal_rx_flow_delete_entry);
#ifndef WLAN_SUPPORT_RX_FISA
/** /**
* hal_rx_fst_key_configure() - Configure the Toeplitz key in the FST * hal_rx_fst_key_configure() - Configure the Toeplitz key in the FST
* @fst: Pointer to the Rx Flow Search Table * @fst: Pointer to the Rx Flow Search Table
@@ -157,6 +158,11 @@ static void hal_rx_fst_key_configure(struct hal_rx_fst *fst)
key_bitwise_shift_left(key_bytes, HAL_FST_HASH_KEY_SIZE_BYTES, 5); key_bitwise_shift_left(key_bytes, HAL_FST_HASH_KEY_SIZE_BYTES, 5);
key_reverse(fst->shifted_key, key_bytes, HAL_FST_HASH_KEY_SIZE_BYTES); key_reverse(fst->shifted_key, key_bytes, HAL_FST_HASH_KEY_SIZE_BYTES);
} }
#else
static void hal_rx_fst_key_configure(struct hal_rx_fst *fst)
{
}
#endif
/** /**
* hal_rx_fst_get_base() - Retrieve the virtual base address of the Rx FST * hal_rx_fst_get_base() - Retrieve the virtual base address of the Rx FST
@@ -240,6 +246,7 @@ QDF_STATUS hal_rx_flow_get_tuple_info(void *hal_fse,
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
#ifndef WLAN_SUPPORT_RX_FISA
/** /**
* hal_flow_toeplitz_create_cache() - Calculate hashes for each possible * hal_flow_toeplitz_create_cache() - Calculate hashes for each possible
* byte value with the key taken as is * byte value with the key taken as is
@@ -302,6 +309,11 @@ static void hal_flow_toeplitz_create_cache(struct hal_rx_fst *fst)
cur_key = cur_key << 8 | new_key_byte; cur_key = cur_key << 8 | new_key_byte;
} }
} }
#else
static void hal_flow_toeplitz_create_cache(struct hal_rx_fst *fst)
{
}
#endif
/** /**
* hal_rx_fst_attach() - Initialize Rx flow search table in HW FST * hal_rx_fst_attach() - Initialize Rx flow search table in HW FST
@@ -386,6 +398,7 @@ void hal_rx_fst_detach(struct hal_rx_fst *rx_fst,
} }
qdf_export_symbol(hal_rx_fst_detach); qdf_export_symbol(hal_rx_fst_detach);
#ifndef WLAN_SUPPORT_RX_FISA
/** /**
* hal_flow_toeplitz_hash() - Calculate Toeplitz hash by using the cached key * hal_flow_toeplitz_hash() - Calculate Toeplitz hash by using the cached key
* *
@@ -433,6 +446,13 @@ hal_flow_toeplitz_hash(void *hal_fst, struct hal_rx_flow *flow)
return hash; return hash;
} }
#else
uint32_t
hal_flow_toeplitz_hash(void *hal_fst, struct hal_rx_flow *flow)
{
return 0;
}
#endif
qdf_export_symbol(hal_flow_toeplitz_hash); qdf_export_symbol(hal_flow_toeplitz_hash);
/** /**

View File

@@ -55,11 +55,13 @@ struct hal_rx_fst {
uint8_t *base_vaddr; uint8_t *base_vaddr;
qdf_dma_addr_t base_paddr; qdf_dma_addr_t base_paddr;
uint8_t *key; uint8_t *key;
#ifndef WLAN_SUPPORT_RX_FISA
uint8_t shifted_key[HAL_FST_HASH_KEY_SIZE_BYTES]; uint8_t shifted_key[HAL_FST_HASH_KEY_SIZE_BYTES];
uint32_t key_cache[HAL_FST_HASH_KEY_SIZE_BYTES][1 << 8];
#endif
uint16_t max_entries; uint16_t max_entries;
uint16_t max_skid_length; uint16_t max_skid_length;
uint16_t hash_mask; uint16_t hash_mask;
uint32_t key_cache[HAL_FST_HASH_KEY_SIZE_BYTES][1 << 8];
uint32_t add_flow_count; uint32_t add_flow_count;
uint32_t del_flow_count; uint32_t del_flow_count;
}; };