1 /****************************************************************************** 2 * rtl8712_io.c 3 * 4 * Copyright(c) 2007 - 2010 Realtek Corporation. All rights reserved. 5 * Linux device driver for RTL8192SU 6 * 7 * This program is free software; you can redistribute it and/or modify it 8 * under the terms of version 2 of the GNU General Public License as 9 * published by the Free Software Foundation. 10 * 11 * This program is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 14 * more details. 15 * 16 * You should have received a copy of the GNU General Public License along with 17 * this program; if not, write to the Free Software Foundation, Inc., 18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 19 * 20 * Modifications for inclusion into the Linux staging tree are 21 * Copyright(c) 2010 Larry Finger. All rights reserved. 22 * 23 * Contact information: 24 * WLAN FAE <wlanfae@realtek.com>. 25 * Larry Finger <Larry.Finger@lwfinger.net> 26 * 27 ******************************************************************************/ 28 29 #define _RTL8712_IO_C_ 30 31 #include "osdep_service.h" 32 #include "drv_types.h" 33 #include "rtl871x_io.h" 34 #include "osdep_intf.h" 35 #include "usb_ops.h" 36 37 u8 r8712_read8(struct _adapter *adapter, u32 addr) 38 { 39 struct intf_hdl *hdl = &adapter->pio_queue->intf; 40 41 return hdl->io_ops._read8(hdl, addr); 42 } 43 44 u16 r8712_read16(struct _adapter *adapter, u32 addr) 45 { 46 struct intf_hdl *hdl = &adapter->pio_queue->intf; 47 48 return hdl->io_ops._read16(hdl, addr); 49 } 50 51 u32 r8712_read32(struct _adapter *adapter, u32 addr) 52 { 53 struct intf_hdl *hdl = &adapter->pio_queue->intf; 54 55 return hdl->io_ops._read32(hdl, addr); 56 } 57 58 void r8712_write8(struct _adapter *adapter, u32 addr, u8 val) 59 { 60 struct intf_hdl *hdl = &adapter->pio_queue->intf; 61 62 hdl->io_ops._write8(hdl, addr, val); 63 } 64 65 void r8712_write16(struct _adapter *adapter, u32 addr, u16 val) 66 { 67 struct intf_hdl *hdl = &adapter->pio_queue->intf; 68 69 hdl->io_ops._write16(hdl, addr, val); 70 } 71 72 void r8712_write32(struct _adapter *adapter, u32 addr, u32 val) 73 { 74 struct intf_hdl *hdl = &adapter->pio_queue->intf; 75 76 hdl->io_ops._write32(hdl, addr, val); 77 } 78 79 void r8712_read_mem(struct _adapter *adapter, u32 addr, u32 cnt, u8 *pmem) 80 { 81 struct intf_hdl *hdl = &adapter->pio_queue->intf; 82 83 if (adapter->bDriverStopped || adapter->bSurpriseRemoved) 84 return; 85 86 hdl->io_ops._read_mem(hdl, addr, cnt, pmem); 87 } 88 89 void r8712_write_mem(struct _adapter *adapter, u32 addr, u32 cnt, u8 *pmem) 90 { 91 struct intf_hdl *hdl = &adapter->pio_queue->intf; 92 93 hdl->io_ops._write_mem(hdl, addr, cnt, pmem); 94 } 95 96 void r8712_read_port(struct _adapter *adapter, u32 addr, u32 cnt, u8 *pmem) 97 { 98 struct intf_hdl *hdl = &adapter->pio_queue->intf; 99 100 if (adapter->bDriverStopped || adapter->bSurpriseRemoved) 101 return; 102 103 hdl->io_ops._read_port(hdl, addr, cnt, pmem); 104 } 105 106 void r8712_write_port(struct _adapter *adapter, u32 addr, u32 cnt, u8 *pmem) 107 { 108 struct intf_hdl *hdl = &adapter->pio_queue->intf; 109 110 hdl->io_ops._write_port(hdl, addr, cnt, pmem); 111 } 112