1/****************************************************************************** 2 * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. 3 * 4 * Based on the r8180 driver, which is: 5 * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al. 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms of version 2 of the GNU General Public License as 8 * published by the Free Software Foundation. 9 * 10 * This program is distributed in the hope that it will be useful, but WITHOUT 11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 13 * more details. 14 * 15 * You should have received a copy of the GNU General Public License along with 16 * this program; if not, write to the Free Software Foundation, Inc., 17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 18 * 19 * The full GNU General Public License is included in this distribution in the 20 * file called LICENSE. 21 * 22 * Contact Information: 23 * wlanfae <wlanfae@realtek.com> 24 ******************************************************************************/ 25#ifndef _RTL_PCI_H 26#define _RTL_PCI_H 27 28#include <linux/types.h> 29#include <linux/pci.h> 30 31static inline void NdisRawWritePortUlong(u32 port, u32 val) 32{ 33 outl(val, port); 34} 35 36static inline void NdisRawWritePortUchar(u32 port, u8 val) 37{ 38 outb(val, port); 39} 40 41static inline void NdisRawReadPortUchar(u32 port, u8 *pval) 42{ 43 *pval = inb(port); 44} 45 46static inline void NdisRawReadPortUshort(u32 port, u16 *pval) 47{ 48 *pval = inw(port); 49} 50 51static inline void NdisRawReadPortUlong(u32 port, u32 *pval) 52{ 53 *pval = inl(port); 54} 55 56struct mp_adapter { 57 u8 LinkCtrlReg; 58 59 u8 BusNumber; 60 u8 DevNumber; 61 u8 FuncNumber; 62 63 u8 PciBridgeBusNum; 64 u8 PciBridgeDevNum; 65 u8 PciBridgeFuncNum; 66 u8 PciBridgeVendor; 67 u16 PciBridgeVendorId; 68 u16 PciBridgeDeviceId; 69 u8 PciBridgePCIeHdrOffset; 70 u8 PciBridgeLinkCtrlReg; 71}; 72 73struct rt_pci_capab_header { 74 unsigned char CapabilityID; 75 unsigned char Next; 76}; 77 78#define PCI_MAX_BRIDGE_NUMBER 255 79#define PCI_MAX_DEVICES 32 80#define PCI_MAX_FUNCTION 8 81 82#define PCI_CONF_ADDRESS 0x0CF8 83#define PCI_CONF_DATA 0x0CFC 84 85#define PCI_CLASS_BRIDGE_DEV 0x06 86#define PCI_SUBCLASS_BR_PCI_TO_PCI 0x04 87 88#define U1DONTCARE 0xFF 89#define U2DONTCARE 0xFFFF 90#define U4DONTCARE 0xFFFFFFFF 91 92#define INTEL_VENDOR_ID 0x8086 93#define SIS_VENDOR_ID 0x1039 94#define ATI_VENDOR_ID 0x1002 95#define ATI_DEVICE_ID 0x7914 96#define AMD_VENDOR_ID 0x1022 97 98#define PCI_CAPABILITY_ID_PCI_EXPRESS 0x10 99 100struct net_device; 101bool rtl8192_pci_findadapter(struct pci_dev *pdev, struct net_device *dev); 102 103#endif 104