qcacmn: CFR buffer length calculation for QCN6432
For QCN6432, below factors are taken into account to calculate the maximum CFR buffer length: max number of MU users supported = 8 uCode header = (14 + (max number of MU users supported *2) )*4 = 120 Bytes Max CVMEM Banks available = 4 Each bank is capable of storing 8KB Total CVMEM bank size = 4 * 8 = 32KB Max allowed mode is 320M Max number of actual tones supported = 1001 Max CFR data len = 1001 * Max NSS * Max Chains * Size of tone = 1001 * 4 * 2 * 4 = 32032 Bytes Max CFR buffer length = Max CFR data len + ucode header = 32032 + 120 = 32152 Bytes CRs-Fixed: 3623934 Change-Id: If859c3a861a5b5698b69ee6afe4d3b8d0b048812
This commit is contained in:

committed by
Rahul Choudhary

parent
337f81f1d0
commit
ccbe42985c
@@ -131,22 +131,42 @@
|
|||||||
|
|
||||||
#define STREAMFS_NUM_SUBBUF_SPRUCE 255
|
#define STREAMFS_NUM_SUBBUF_SPRUCE 255
|
||||||
|
|
||||||
/* Max 4 users in MU case for QCN6432 */
|
/* Max 8 users in MU case for QCN6432 */
|
||||||
#define QCN6432_CFR_MU_USERS 4
|
#define QCN6432_CFR_MU_USERS 8
|
||||||
|
|
||||||
#define QCN6432_MAX_HEADER_LENGTH_WORDS 22
|
/* uCode header = (14 + (max number of MU users supported *2))*4 Bytes */
|
||||||
|
#define QCN6432_MAX_HEADER_LENGTH_WORDS 30
|
||||||
|
|
||||||
#define QCN6432_MAX_DATA_LENGTH_BYTES 8192
|
/* Maximum number of tones that can be uploaded is 1001
|
||||||
|
* Max data len = Num tones per stream per chain * max chains
|
||||||
|
* max nss * size of tone
|
||||||
|
* = 1001 * 2 * 4 * 4 = 32032 Bytes
|
||||||
|
* Total length = Max data len + ucode header
|
||||||
|
* = 32032 + 120 = 32152 Bytes
|
||||||
|
*/
|
||||||
|
#define QCN6432_MAX_DATA_LENGTH_BYTES 32152
|
||||||
|
|
||||||
/* Max size :
|
/* Max size :
|
||||||
* sizeof(csi_cfr_header) + 88 bytes(cfr header) + 8192 bytes(cfr payload)
|
* sizeof(csi_cfr_header) + 120 bytes(ucode header) + 32152 bytes(cfr payload)
|
||||||
*/
|
*/
|
||||||
#define STREAMFS_MAX_SUBBUF_QCN6432 \
|
#define STREAMFS_MAX_SUBBUF_QCN6432 \
|
||||||
(sizeof(struct csi_cfr_header) + \
|
(sizeof(struct csi_cfr_header) + \
|
||||||
(QCN6432_MAX_HEADER_LENGTH_WORDS * 4) + \
|
(QCN6432_MAX_HEADER_LENGTH_WORDS * 4) + \
|
||||||
QCN6432_MAX_DATA_LENGTH_BYTES)
|
QCN6432_MAX_DATA_LENGTH_BYTES)
|
||||||
|
|
||||||
#define STREAMFS_NUM_SUBBUF_QCN6432 255
|
/* The number of buffers allotted by two IPC rings is 103.
|
||||||
|
* Hence, the relayFS should be have more than 103 buffers.
|
||||||
|
* Considering the maximum size of CFR log size to be 8MB
|
||||||
|
* and which should be multiple of relayFS buffer pool memory.
|
||||||
|
*
|
||||||
|
* Size of a relayFS buffer = csi metadata + QCN6432_MAX_DATA_LENGTH_BYTES
|
||||||
|
* = 310 + 32152
|
||||||
|
* = 32462 Bytes
|
||||||
|
*
|
||||||
|
* Num of streamfs sub buffers = 4MB / 32462B
|
||||||
|
* = 128 (approax)
|
||||||
|
*/
|
||||||
|
#define STREAMFS_NUM_SUBBUF_QCN6432 128
|
||||||
|
|
||||||
/* Max 4 users in MU case for QCA5332 */
|
/* Max 4 users in MU case for QCA5332 */
|
||||||
#define QCA5332_CFR_MU_USERS 4
|
#define QCA5332_CFR_MU_USERS 4
|
||||||
|
Reference in New Issue
Block a user