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