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