summaryrefslogtreecommitdiffstats
path: root/drivers/staging/rtl8188eu/os_dep/os_intfs.c
diff options
context:
space:
mode:
authorStas Sergeev2014-02-14 23:54:17 +0100
committerGreg Kroah-Hartman2014-02-15 21:40:19 +0100
commit60800abdc147ba034204408cc4745d66e1ffbb8e (patch)
treeb8e8112ed558d0874dcef8c2a438abd3752104e9 /drivers/staging/rtl8188eu/os_dep/os_intfs.c
parentstaging: r8188eu: Remove wrapper routine _set_workitem() (diff)
downloadkernel-qcow2-linux-60800abdc147ba034204408cc4745d66e1ffbb8e.tar.gz
kernel-qcow2-linux-60800abdc147ba034204408cc4745d66e1ffbb8e.tar.xz
kernel-qcow2-linux-60800abdc147ba034204408cc4745d66e1ffbb8e.zip
staging: r8188eu: Make firmware buffer persistent
The present code reloads the firmware file from the disk every time the interface re-inits. Change to hold the firmware in memory, and only download to the device. Signed-off-by: Stas Sergeev <stsp@users.sourceforge.net> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/rtl8188eu/os_dep/os_intfs.c')
-rw-r--r--drivers/staging/rtl8188eu/os_dep/os_intfs.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
index bc9ae1df7bd5..f123a930c012 100644
--- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
+++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
@@ -1204,6 +1204,7 @@ int pm_netdev_open(struct net_device *pnetdev, u8 bnormal)
int netdev_close(struct net_device *pnetdev)
{
struct adapter *padapter = (struct adapter *)rtw_netdev_priv(pnetdev);
+ struct dvobj_priv *dvobj = adapter_to_dvobj(padapter);
RT_TRACE(_module_os_intfs_c_, _drv_info_, ("+88eu_drv - drv_close\n"));
@@ -1242,6 +1243,9 @@ int netdev_close(struct net_device *pnetdev)
rtw_p2p_enable(padapter, P2P_ROLE_DISABLE);
#endif /* CONFIG_88EU_P2P */
+ kfree(dvobj->firmware.szFwBuffer);
+ dvobj->firmware.szFwBuffer = NULL;
+
RT_TRACE(_module_os_intfs_c_, _drv_info_, ("-88eu_drv - drv_close\n"));
DBG_88E("-88eu_drv - drv_close, bup =%d\n", padapter->bup);
return 0;