From: Jes Sorensen <jes.soren...@redhat.com>

Signed-off-by: Jes Sorensen <jes.soren...@redhat.com>
---
 drivers/staging/rtl8723au/hal/usb_halinit.c | 27 ++++++++-------------------
 drivers/staging/rtl8723au/include/usb_ops.h |  2 +-
 drivers/staging/rtl8723au/os_dep/usb_intf.c |  3 ++-
 3 files changed, 11 insertions(+), 21 deletions(-)

diff --git a/drivers/staging/rtl8723au/hal/usb_halinit.c 
b/drivers/staging/rtl8723au/hal/usb_halinit.c
index 027b42a..b8d5040 100644
--- a/drivers/staging/rtl8723au/hal/usb_halinit.c
+++ b/drivers/staging/rtl8723au/hal/usb_halinit.c
@@ -60,33 +60,22 @@ _ConfigChipOutEP(struct rtw_adapter *pAdapter, u8 
NumOutPipe)
           (u32)NumOutPipe, (u32)pHalData->OutEpNumber)); */
 }
 
-static bool rtl8723au_set_queue_pipe_mapping(struct rtw_adapter *pAdapter,
-                                            u8 NumInPipe, u8 NumOutPipe)
+bool rtl8723au_chip_configure(struct rtw_adapter *padapter)
 {
-       struct hal_data_8723a *pHalData = GET_HAL_DATA(pAdapter);
-       bool result = false;
+       struct hal_data_8723a *pHalData = GET_HAL_DATA(padapter);
+       struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter);
+       u8 NumInPipe = pdvobjpriv->RtNumInPipes;
+       u8 NumOutPipe = pdvobjpriv->RtNumOutPipes;
 
-       _ConfigChipOutEP(pAdapter, NumOutPipe);
+       _ConfigChipOutEP(padapter, NumOutPipe);
 
        /*  Normal chip with one IN and one OUT doesn't have interrupt IN EP. */
        if (pHalData->OutEpNumber == 1) {
                if (NumInPipe != 1)
-                       return result;
+                       return false;
        }
 
-       result = Hal_MappingOutPipe23a(pAdapter, NumOutPipe);
-
-       return result;
-}
-
-void rtl8723au_chip_configure(struct rtw_adapter *padapter)
-{
-       struct hal_data_8723a *pHalData = GET_HAL_DATA(padapter);
-       struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter);
-
-       rtl8723au_set_queue_pipe_mapping(padapter,
-                                        pdvobjpriv->RtNumInPipes,
-                                        pdvobjpriv->RtNumOutPipes);
+       return Hal_MappingOutPipe23a(padapter, NumOutPipe);
 }
 
 static int _InitPowerOn(struct rtw_adapter *padapter)
diff --git a/drivers/staging/rtl8723au/include/usb_ops.h 
b/drivers/staging/rtl8723au/include/usb_ops.h
index ade8bc7..ff11e13 100644
--- a/drivers/staging/rtl8723au/include/usb_ops.h
+++ b/drivers/staging/rtl8723au/include/usb_ops.h
@@ -63,6 +63,6 @@ static inline void rtw_reset_continual_urb_error(struct 
dvobj_priv *dvobj)
        atomic_set(&dvobj->continual_urb_error, 0);
 }
 
-void rtl8723au_chip_configure(struct rtw_adapter *padapter);
+bool rtl8723au_chip_configure(struct rtw_adapter *padapter);
 
 #endif /* __USB_OPS_H_ */
diff --git a/drivers/staging/rtl8723au/os_dep/usb_intf.c 
b/drivers/staging/rtl8723au/os_dep/usb_intf.c
index 92ab667..373a617 100644
--- a/drivers/staging/rtl8723au/os_dep/usb_intf.c
+++ b/drivers/staging/rtl8723au/os_dep/usb_intf.c
@@ -530,7 +530,8 @@ static struct rtw_adapter *rtw_usb_if1_init(struct 
dvobj_priv *dvobj,
        rtl8723a_read_chip_version(padapter);
 
        /* step usb endpoint mapping */
-       rtl8723au_chip_configure(padapter);
+       if (!rtl8723au_chip_configure(padapter))
+               goto free_hal_data;
 
        /* step read efuse/eeprom data and get mac_addr */
        rtl8723a_read_adapter_info(padapter);
-- 
1.9.3

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to