mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 15:49:17 -04:00
qcacmn: Link descriptor IDs to assist debug
We need only 3 bits of cookie field in link descriptor buff_addr_info to store bank ID. The remaining bytes will be used set a unique ID, which will be useful in debugging. Also fixed an issue in scatter idle list setup. Change-Id: Id3cc9a8a316fe942e749611c2f57e9324419dd40
This commit is contained in:
parent
b566893775
commit
dbaf4bed59
3 changed files with 26 additions and 8 deletions
|
|
@ -1065,6 +1065,7 @@ static int dp_hw_link_desc_pool_setup(struct dp_soc *soc)
|
|||
uint32_t last_bank_size = 0;
|
||||
uint32_t entry_size, num_entries;
|
||||
int i;
|
||||
uint32_t desc_id = 0;
|
||||
|
||||
/* Only Tx queue descriptors are allocated from common link descriptor
|
||||
* pool Rx queue descriptors are not included in this because (REO queue
|
||||
|
|
@ -1195,8 +1196,10 @@ static int dp_hw_link_desc_pool_setup(struct dp_soc *soc)
|
|||
while (num_entries && (desc = hal_srng_src_get_next(
|
||||
soc->hal_soc,
|
||||
soc->wbm_idle_link_ring.hal_srng))) {
|
||||
hal_set_link_desc_addr(desc, i, paddr);
|
||||
hal_set_link_desc_addr(desc,
|
||||
LINK_DESC_COOKIE(desc_id, i), paddr);
|
||||
num_entries--;
|
||||
desc_id++;
|
||||
paddr += link_desc_size;
|
||||
}
|
||||
}
|
||||
|
|
@ -1249,14 +1252,12 @@ static int dp_hw_link_desc_pool_setup(struct dp_soc *soc)
|
|||
/ link_desc_size;
|
||||
unsigned long paddr = (unsigned long)(
|
||||
soc->link_desc_banks[i].base_paddr);
|
||||
void *desc = NULL;
|
||||
|
||||
while (num_link_descs && (desc =
|
||||
hal_srng_src_get_next(soc->hal_soc,
|
||||
soc->wbm_idle_link_ring.hal_srng))) {
|
||||
while (num_link_descs) {
|
||||
hal_set_link_desc_addr((void *)scatter_buf_ptr,
|
||||
i, paddr);
|
||||
LINK_DESC_COOKIE(desc_id, i), paddr);
|
||||
num_link_descs--;
|
||||
desc_id++;
|
||||
paddr += link_desc_size;
|
||||
if (rem_entries) {
|
||||
rem_entries--;
|
||||
|
|
|
|||
|
|
@ -505,13 +505,15 @@ void *dp_rx_cookie_2_link_desc_va(struct dp_soc *soc,
|
|||
struct hal_buf_info *buf_info)
|
||||
{
|
||||
void *link_desc_va;
|
||||
uint32_t bank_id = LINK_DESC_COOKIE_BANK_ID(buf_info->sw_cookie);
|
||||
|
||||
|
||||
/* TODO */
|
||||
/* Add sanity for cookie */
|
||||
|
||||
link_desc_va = soc->link_desc_banks[buf_info->sw_cookie].base_vaddr +
|
||||
link_desc_va = soc->link_desc_banks[bank_id].base_vaddr +
|
||||
(buf_info->paddr -
|
||||
soc->link_desc_banks[buf_info->sw_cookie].base_paddr);
|
||||
soc->link_desc_banks[bank_id].base_paddr);
|
||||
|
||||
return link_desc_va;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -834,6 +834,21 @@ struct dp_ipa_resources {
|
|||
/* Same as NAC_MAX_CLENT */
|
||||
#define DP_NAC_MAX_CLIENT 24
|
||||
|
||||
/*
|
||||
* Macros to setup link descriptor cookies - for link descriptors, we just
|
||||
* need first 3 bits to store bank ID. The remaining bytes will be used set a
|
||||
* unique ID, which will be useful in debugging
|
||||
*/
|
||||
#define LINK_DESC_BANK_ID_MASK 0x7
|
||||
#define LINK_DESC_ID_SHIFT 3
|
||||
#define LINK_DESC_ID_START 0x8000
|
||||
|
||||
#define LINK_DESC_COOKIE(_desc_id, _bank_id) \
|
||||
((((_desc_id) + LINK_DESC_ID_START) << LINK_DESC_ID_SHIFT) | (_bank_id))
|
||||
|
||||
#define LINK_DESC_COOKIE_BANK_ID(_cookie) \
|
||||
((_cookie) & LINK_DESC_BANK_ID_MASK)
|
||||
|
||||
/* same as ieee80211_nac_param */
|
||||
enum dp_nac_param_cmd {
|
||||
/* IEEE80211_NAC_PARAM_ADD */
|
||||
|
|
|
|||
Loading…
Reference in a new issue