[WCNCR00166654] misc: add item in memory prealloc module
[Description]
Add USB TX data FFA memory in memory prealloc module
Test:
in Linux PC is ok
1. insmod prealloc module
2. loop insmod wifi module -> connect AP -> rmmod wifi module
Change-Id: Ie08a83a967a6eac4f4cbb5b8b46d9b687dd4bf17
Signed-off-by: Neil Chen <yn.chen@mediatek.com>
CR-Id: WCNCR00166654
Feature: misc
Reviewed-on: http://gerrit.mediatek.inc:8080/1245611
CheckPatch: Check Patch <srv_checkpatch@mediatek.com>
Reviewed-by: ZD Hu <zd.hu@mediatek.com>
Reviewed-by: George Kuo <george.kuo@mediatek.com>
Build: srv_neptune_adm <srv_neptune_adm@mediatek.com>
diff --git a/os/linux/hif/usb/usb.c b/os/linux/hif/usb/usb.c
index 2dcf6d4..fdfa851 100644
--- a/os/linux/hif/usb/usb.c
+++ b/os/linux/hif/usb/usb.c
@@ -822,8 +822,12 @@
usb_alloc_coherent(prHifInfo->udev, USB_TX_DATA_BUFF_SIZE, GFP_ATOMIC,
&prUsbReq->prUrb->transfer_dma);
#else
+#ifdef CFG_PREALLOC_MEMORY
+ prUsbReq->prBufCtrl->pucBuf = preallocGetMem(MEM_ID_TX_DATA_FFA);
+#else
prUsbReq->prBufCtrl->pucBuf = kmalloc(USB_TX_DATA_BUFF_SIZE, GFP_ATOMIC);
#endif
+#endif
if (prUsbReq->prBufCtrl->pucBuf == NULL) {
DBGLOG(HAL, ERROR, "kmalloc() reports error\n");
goto error;
@@ -1005,8 +1009,10 @@
usb_free_coherent(prHifInfo->udev, USB_TX_DATA_BUFF_SIZE,
prUsbReq->prBufCtrl->pucBuf, prUsbReq->prUrb->transfer_dma);
#else
+#ifndef CFG_PREALLOC_MEMORY
kfree(prUsbReq->prBufCtrl->pucBuf);
#endif
+#endif
usb_free_urb(prUsbReq->prUrb);
}
diff --git a/prealloc/include/prealloc.h b/prealloc/include/prealloc.h
index 80d4ee5..702f9a9 100644
--- a/prealloc/include/prealloc.h
+++ b/prealloc/include/prealloc.h
@@ -78,6 +78,7 @@
MEM_ID_NIC_ADAPTER,
#if defined(_HIF_USB)
MEM_ID_TX_CMD,
+ MEM_ID_TX_DATA_FFA,
MEM_ID_TX_DATA,
MEM_ID_RX_EVENT,
MEM_ID_RX_DATA,
diff --git a/prealloc/prealloc.c b/prealloc/prealloc.c
index 3da0309..fd2f7ad 100644
--- a/prealloc/prealloc.c
+++ b/prealloc/prealloc.c
@@ -254,6 +254,9 @@
preallocAddBlock(MEM_ID_TX_CMD, "TX CMD",
USB_REQ_TX_CMD_CNT, USB_TX_CMD_BUF_SIZE,
GFP_KERNEL);
+ preallocAddBlock(MEM_ID_TX_DATA_FFA, "TX DATA FFA",
+ USB_REQ_TX_DATA_FFA_CNT, USB_TX_DATA_BUFF_SIZE,
+ GFP_KERNEL);
#if CFG_USB_TX_AGG
preallocAddBlock(MEM_ID_TX_DATA, "TX AGG DATA",
(USB_TC_NUM * USB_REQ_TX_DATA_CNT), USB_TX_DATA_BUFF_SIZE,