From 1c1bc5f1dd86237c65f571ca72c75b285b0dceeb Mon Sep 17 00:00:00 2001
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Date: Fri, 16 May 2014 10:05:07 +0200
Subject: [PATCH] staging: rtl8723au: Call usb_read_interrupt() directly
 instead of via HAL layer

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/staging/rtl8723au/hal/usb_halinit.c       | 5 +----
 drivers/staging/rtl8723au/hal/usb_ops_linux.c     | 4 +---
 drivers/staging/rtl8723au/include/rtw_io.h        | 2 --
 drivers/staging/rtl8723au/include/usb_ops_linux.h | 1 +
 4 files changed, 3 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/rtl8723au/hal/usb_halinit.c b/drivers/staging/rtl8723au/hal/usb_halinit.c
index fc1d407f2648a..46dcc567aa2d5 100644
--- a/drivers/staging/rtl8723au/hal/usb_halinit.c
+++ b/drivers/staging/rtl8723au/hal/usb_halinit.c
@@ -1218,9 +1218,7 @@ int rtl8723au_inirp_init(struct rtw_adapter *Adapter)
 	u8 i;
 	struct recv_buf *precvbuf;
 	int status;
-	struct _io_ops *io_ops = &Adapter->io_ops;
 	struct recv_priv *precvpriv = &Adapter->recvpriv;
-	int (*_read_interrupt)(struct rtw_adapter *padapter, u32 addr);
 	struct hal_data_8723a *pHalData = GET_HAL_DATA(Adapter);
 
 	status = _SUCCESS;
@@ -1239,8 +1237,7 @@ int rtl8723au_inirp_init(struct rtw_adapter *Adapter)
 		}
 		precvbuf++;
 	}
-	_read_interrupt = io_ops->_read_interrupt;
-	if (_read_interrupt(Adapter, RECV_INT_IN_ADDR) == _FAIL) {
+	if (rtl8723a_usb_read_interrupt(Adapter, RECV_INT_IN_ADDR) == _FAIL) {
 		RT_TRACE(_module_hci_hal_init_c_, _drv_err_,
 			 ("usb_rx_init: usb_read_interrupt error\n"));
 		status = _FAIL;
diff --git a/drivers/staging/rtl8723au/hal/usb_ops_linux.c b/drivers/staging/rtl8723au/hal/usb_ops_linux.c
index 3b8a1996b3f1b..bb85131c30e08 100644
--- a/drivers/staging/rtl8723au/hal/usb_ops_linux.c
+++ b/drivers/staging/rtl8723au/hal/usb_ops_linux.c
@@ -447,7 +447,7 @@ urb_submit:
 	}
 }
 
-static int usb_read_interrupt(struct rtw_adapter *adapter, u32 addr)
+int rtl8723a_usb_read_interrupt(struct rtw_adapter *adapter, u32 addr)
 {
 	int err;
 	unsigned int pipe;
@@ -847,8 +847,6 @@ void rtl8723au_set_intf_ops(struct rtw_adapter *padapter)
 	pops->_write16 = &usb_write16;
 	pops->_write32 = &usb_write32;
 	pops->_writeN = &usb_writeN;
-
-	pops->_read_interrupt = &usb_read_interrupt;
 }
 
 void rtl8723au_set_hw_type(struct rtw_adapter *padapter)
diff --git a/drivers/staging/rtl8723au/include/rtw_io.h b/drivers/staging/rtl8723au/include/rtw_io.h
index 50a1783859a80..82939f5225dba 100644
--- a/drivers/staging/rtl8723au/include/rtw_io.h
+++ b/drivers/staging/rtl8723au/include/rtw_io.h
@@ -109,8 +109,6 @@ struct _io_ops
 	int (*_write32)(struct rtw_adapter *adapter, u32 addr, u32 val);
 	int (*_writeN)(struct rtw_adapter *adapter, u32 addr, u32 length,
 		       u8 *pdata);
-
-	int (*_read_interrupt)(struct rtw_adapter *adapter, u32 addr);
 };
 
 struct io_req {
diff --git a/drivers/staging/rtl8723au/include/usb_ops_linux.h b/drivers/staging/rtl8723au/include/usb_ops_linux.h
index f851becf863fc..acd98f7fc63cf 100644
--- a/drivers/staging/rtl8723au/include/usb_ops_linux.h
+++ b/drivers/staging/rtl8723au/include/usb_ops_linux.h
@@ -27,5 +27,6 @@ void rtl8723a_usb_read_port_cancel(struct rtw_adapter *padapter);
 int rtl8723a_usb_write_port(struct rtw_adapter *padapter, u32 addr, u32 cnt,
 			    struct xmit_buf *pxmitbuf);
 void rtl8723a_usb_write_port_cancel(struct rtw_adapter *padapter);
+int rtl8723a_usb_read_interrupt(struct rtw_adapter *adapter, u32 addr);
 
 #endif
-- 
2.30.2