From e9f72e08e2919c6facd337d8328813de40fa71c1 Mon Sep 17 00:00:00 2001 From: Kiran Venkatappa Date: Fri, 1 Feb 2019 16:06:59 +0530 Subject: [PATCH] qcacmn: Reduce WMI max message size on low mem profile Current max message size of 2048 will result in a 4K slab allocation due to padding and shinfo additions. We observed that most of the WMI allocations are within 1600 and there is no need to set max bu size as 2048. Hence reduce max buf size to 1700 for low memory profile so that allocation on host result in a 2K skbs. Change-Id: Icb25be0f4ce60112ef6293f39f9dcc57ebc0288c CRs-Fixed: 2394768 --- hif/src/ce/ce_assignment.h | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/hif/src/ce/ce_assignment.h b/hif/src/ce/ce_assignment.h index 3eae01be1e7f..4d602ba9f77b 100644 --- a/hif/src/ce/ce_assignment.h +++ b/hif/src/ce/ce_assignment.h @@ -624,15 +624,21 @@ static struct CE_pipe_config target_ce_config_wlan_ar900b[] = { #endif }; +#ifdef QCA_LOWMEM_CONFIG +#define WMI_MAX_BUF_SIZE 1700 +#else +#define WMI_MAX_BUF_SIZE 2048 +#endif + static struct CE_attr host_ce_config_wlan_qca8074[] = { /* host->target HTC control and raw streams */ { /* CE0 */ CE_ATTR_FLAGS, 0, 16, 2048, 0, NULL,}, /* target->host HTT + HTC control */ { /* CE1 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, /* target->host WMI */ - { /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, + { /* CE2 */ CE_ATTR_FLAGS, 0, 0, WMI_MAX_BUF_SIZE, 512, NULL,}, /* host->target WMI (mac0) */ - { /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,}, + { /* CE3 */ CE_ATTR_FLAGS, 0, 32, WMI_MAX_BUF_SIZE, 0, NULL,}, /* host->target HTT */ { /* CE4 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0, CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,}, @@ -642,11 +648,11 @@ static struct CE_attr host_ce_config_wlan_qca8074[] = { { /* CE6 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0, 0, 0, 0, NULL,}, /* host->target WMI (mac1) */ - { /* CE7 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,}, + { /* CE7 */ CE_ATTR_FLAGS, 0, 32, WMI_MAX_BUF_SIZE, 0, NULL,}, /* Target to uMC */ { /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, /* host->target WMI (mac2) */ - { /* CE9 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,}, + { /* CE9 */ CE_ATTR_FLAGS, 0, 32, WMI_MAX_BUF_SIZE, 0, NULL,}, /* target->host HTT */ { /* CE10 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, { /* CE11 unused */ 0, 0, 0, 0, 0, NULL,}, @@ -658,9 +664,9 @@ static struct CE_pipe_config target_ce_config_wlan_qca8074[] = { /* target->host HTT */ { /* CE1 */ 1, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, /* target->host WMI + HTC control */ - { /* CE2 */ 2, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, + { /* CE2 */ 2, PIPEDIR_IN, 32, WMI_MAX_BUF_SIZE, CE_ATTR_FLAGS, 0,}, /* host->target WMI */ - { /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,}, + { /* CE3 */ 3, PIPEDIR_OUT, 32, WMI_MAX_BUF_SIZE, CE_ATTR_FLAGS, 0,}, /* host->target HTT */ { /* CE4 */ 4, PIPEDIR_OUT, 256, 256, (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,}, @@ -669,13 +675,13 @@ static struct CE_pipe_config target_ce_config_wlan_qca8074[] = { { /* CE5 */ 5, PIPEDIR_IN, 32, 2048, 0, 0,}, /* Reserved for target autonomous HIF_memcpy */ { /* CE6 */ 6, PIPEDIR_INOUT, 32, 65535, 64, 0,}, - /* CE7 used only by Host */ - { /* CE7 */ 7, PIPEDIR_OUT, 32, 2048, + /* CE7 host->target WMI (mac1) */ + { /* CE7 */ 7, PIPEDIR_OUT, 32, WMI_MAX_BUF_SIZE, 8192, 0,}, /* CE8 used only by IPA */ { /* CE8 */ 8, PIPEDIR_INOUT, 32, 65535, 112, 0,}, - /* CE9 target->host HTT */ - { /* CE9 */ 9, PIPEDIR_OUT, 32, 2048, 8192, 0,}, + /* CE9 host->target WMI (mac2) */ + { /* CE9 */ 9, PIPEDIR_OUT, 32, WMI_MAX_BUF_SIZE, 8192, 0,}, /* CE10 target->host HTT */ { /* CE10 */ 10, PIPEDIR_INOUT_H2H, 0, 0, 0, 0,}, {/* CE11 unused */11, PIPEDIR_NONE, 0, 0, 0, 0,},