1  // SPDX-License-Identifier: GPL-2.0
2  /******************************************************************************
3   * rtl8712_io.c
4   *
5   * Copyright(c) 2007 - 2010 Realtek Corporation. All rights reserved.
6   * Linux device driver for RTL8192SU
7   *
8   * Modifications for inclusion into the Linux staging tree are
9   * Copyright(c) 2010 Larry Finger. All rights reserved.
10   *
11   * Contact information:
12   * WLAN FAE <wlanfae@realtek.com>.
13   * Larry Finger <Larry.Finger@lwfinger.net>
14   *
15   ******************************************************************************/
16  
17  #define _RTL8712_IO_C_
18  
19  #include "osdep_service.h"
20  #include "drv_types.h"
21  #include "rtl871x_io.h"
22  #include "osdep_intf.h"
23  #include "usb_ops.h"
24  
r8712_read8(struct _adapter * adapter,u32 addr)25  u8 r8712_read8(struct _adapter *adapter, u32 addr)
26  {
27  	struct intf_hdl *hdl = &adapter->pio_queue->intf;
28  
29  	return hdl->io_ops._read8(hdl, addr);
30  }
31  
r8712_read16(struct _adapter * adapter,u32 addr)32  u16 r8712_read16(struct _adapter *adapter, u32 addr)
33  {
34  	struct intf_hdl *hdl = &adapter->pio_queue->intf;
35  
36  	return hdl->io_ops._read16(hdl, addr);
37  }
38  
r8712_read32(struct _adapter * adapter,u32 addr)39  u32 r8712_read32(struct _adapter *adapter, u32 addr)
40  {
41  	struct intf_hdl *hdl = &adapter->pio_queue->intf;
42  
43  	return hdl->io_ops._read32(hdl, addr);
44  }
45  
r8712_write8(struct _adapter * adapter,u32 addr,u8 val)46  void r8712_write8(struct _adapter *adapter, u32 addr, u8 val)
47  {
48  	struct intf_hdl *hdl = &adapter->pio_queue->intf;
49  
50  	hdl->io_ops._write8(hdl, addr, val);
51  }
52  
r8712_write16(struct _adapter * adapter,u32 addr,u16 val)53  void r8712_write16(struct _adapter *adapter, u32 addr, u16 val)
54  {
55  	struct intf_hdl *hdl = &adapter->pio_queue->intf;
56  
57  	hdl->io_ops._write16(hdl, addr, val);
58  }
59  
r8712_write32(struct _adapter * adapter,u32 addr,u32 val)60  void r8712_write32(struct _adapter *adapter, u32 addr, u32 val)
61  {
62  	struct intf_hdl *hdl = &adapter->pio_queue->intf;
63  
64  	hdl->io_ops._write32(hdl, addr, val);
65  }
66  
r8712_read_mem(struct _adapter * adapter,u32 addr,u32 cnt,u8 * pmem)67  void r8712_read_mem(struct _adapter *adapter, u32 addr, u32 cnt, u8 *pmem)
68  {
69  	struct intf_hdl *hdl = &adapter->pio_queue->intf;
70  
71  	if (adapter->driver_stopped || adapter->surprise_removed)
72  		return;
73  
74  	hdl->io_ops._read_mem(hdl, addr, cnt, pmem);
75  }
76  
r8712_write_mem(struct _adapter * adapter,u32 addr,u32 cnt,u8 * pmem)77  void r8712_write_mem(struct _adapter *adapter, u32 addr, u32 cnt, u8 *pmem)
78  {
79  	struct intf_hdl *hdl = &adapter->pio_queue->intf;
80  
81  	hdl->io_ops._write_mem(hdl, addr, cnt, pmem);
82  }
83  
r8712_read_port(struct _adapter * adapter,u32 addr,u32 cnt,u8 * pmem)84  void r8712_read_port(struct _adapter *adapter, u32 addr, u32 cnt, u8 *pmem)
85  {
86  	struct intf_hdl *hdl = &adapter->pio_queue->intf;
87  
88  	if (adapter->driver_stopped || adapter->surprise_removed)
89  		return;
90  
91  	hdl->io_ops._read_port(hdl, addr, cnt, pmem);
92  }
93  
r8712_write_port(struct _adapter * adapter,u32 addr,u32 cnt,u8 * pmem)94  void r8712_write_port(struct _adapter *adapter, u32 addr, u32 cnt, u8 *pmem)
95  {
96  	struct intf_hdl *hdl = &adapter->pio_queue->intf;
97  
98  	hdl->io_ops._write_port(hdl, addr, cnt, pmem);
99  }
100