qcacmn: CFR: Rectify the maximum capture length

In some scenarios, where cfr data is being captured
for maximum supported bandwidth case, memory allocated
in case of streamfs for all 255 buffers is not enough.

Corrections are made for maximum capture length.
Maximum capture length for a single CFR capture should be
(max bandwidth case) 16240B (112 bytes(csi header)
 + 64 bytes(cfr header) + 16064 bytes(cfr payload))

Remove debug logs under spin lock

Change-Id: I7cdc25350f3d85ecb7d0d69431c3c66dbc9b2bed
CRs-Fixed: 2678750
Cette révision appartient à :
Adwait Nayak
2020-05-05 12:10:11 +05:30
révisé par nshrivas
Parent d2e553e973
révision 270771642b
2 fichiers modifiés avec 3 ajouts et 29 suppressions

Voir le fichier

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2019 The Linux Foundation. All rights reserved.
* Copyright (c) 2019-2020 The Linux Foundation. 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
@@ -68,10 +68,10 @@
#define NUM_LUT_ENTRIES 136
/* Max size :
* 16173 = 93 bytes(csi header) + 64 bytes(cfr header) + 16016 bytes(cfr
* 16240 = 112 bytes(csi header) + 64 bytes(cfr header) + 16064 bytes(cfr
* payload)
*/
#define STREAMFS_MAX_SUBBUF_CYP 16173
#define STREAMFS_MAX_SUBBUF_CYP 16240
#define STREAMFS_NUM_SUBBUF_CYP 255

Voir le fichier

@@ -116,12 +116,6 @@ void target_if_cfr_dump_lut_enh(struct wlan_objmgr_pdev *pdev)
diff = (lut->dbr_tstamp > lut->txrx_tstamp) ?
(lut->dbr_tstamp - lut->txrx_tstamp) :
(lut->txrx_tstamp - lut->dbr_tstamp);
cfr_err("idx:%d dbrevnt: %d txrxevent: %d "
"dbrppdu:0x%x txrxppdu:0x%x dbr_tstamp: %llu "
"txrx_tstamp: %llu diff: %llu\n",
i, lut->dbr_recv, lut->tx_recv,
lut->dbr_ppdu_id, lut->tx_ppdu_id,
lut->dbr_tstamp, lut->txrx_tstamp, diff);
}
}
@@ -744,12 +738,6 @@ void target_if_cfr_rx_tlv_process(struct wlan_objmgr_pdev *pdev, void *nbuf)
release_lut_entry_enh(pdev, lut);
target_if_dbr_buf_release(pdev, DBR_MODULE_CFR, buf_addr,
cookie, srng_id);
cfr_debug("Data sent to upper layers, release look up table");
} else if (status == STATUS_HOLD) {
cfr_debug("HOLD for buffer address: 0x%pK cookie: %u",
(void *)((uintptr_t)buf_addr), cookie);
} else {
cfr_debug("Correlation returned invalid status!!");
}
unlock:
@@ -920,14 +908,10 @@ static bool enh_cfr_dbr_event_handler(struct wlan_objmgr_pdev *pdev,
&end_magic, 4);
dump_metadata(header, cookie);
release_lut_entry_enh(pdev, lut);
cfr_debug("Data sent to upper layers, released look up table");
status = true;
} else if (status == STATUS_HOLD) {
cfr_debug("TxRx event not received yet. "
"Buffer is not released");
status = false;
} else {
cfr_debug("Correlation returned invalid status!!");
status = true;
}
@@ -1265,13 +1249,7 @@ target_if_peer_capture_event(ol_scn_t sc, uint8_t *data, uint32_t datalen)
release_lut_entry_enh(pdev, lut);
target_if_dbr_buf_release(pdev, DBR_MODULE_CFR, buf_addr,
cookie, 0);
cfr_debug("Data sent to upper layers, "
"releasing look up table");
} else if (status == STATUS_HOLD) {
cfr_debug("HOLD for buffer address: 0x%pK cookie: %u",
(void *)((uintptr_t)buf_addr), cookie);
} else {
cfr_debug("Correlation returned invalid status!!");
retval = -EINVAL;
}
@@ -1400,10 +1378,6 @@ static os_timer_func(lut_ageout_timer_task)
if (lut->dbr_recv && !lut->tx_recv) {
diff = cur_tstamp - lut->dbr_tstamp;
if (diff > LUT_AGE_THRESHOLD) {
cfr_debug("<%d>TXRX event not received for "
"%llu ms, release lut entry : "
"dma_addr = 0x%pK\n", i, diff,
(void *)((uintptr_t)lut->dbr_address));
target_if_dbr_buf_release(pdev, DBR_MODULE_CFR,
lut->dbr_address,
i, srng_id);