| /****************************************************************************** |
| * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. |
| * |
| * Based on the r8180 driver, which is: |
| * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al. |
| * This program is free software; you can redistribute it and/or modify it |
| * under the terms of version 2 of the GNU General Public License as |
| * published by the Free Software Foundation. |
| * |
| * This program is distributed in the hope that it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
| * more details. |
| * |
| * You should have received a copy of the GNU General Public License along with |
| * this program; if not, write to the Free Software Foundation, Inc., |
| * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA |
| * |
| * The full GNU General Public License is included in this distribution in the |
| * file called LICENSE. |
| * |
| * Contact Information: |
| * wlanfae <wlanfae@realtek.com> |
| ******************************************************************************/ |
| #ifndef _RTL_PCI_H |
| #define _RTL_PCI_H |
| |
| #include <linux/types.h> |
| #include <linux/pci.h> |
| #include "rtllib.h" |
| |
| static inline void NdisRawWritePortUlong(u32 port, u32 val) |
| { |
| outl(val, port); |
| } |
| |
| static inline void NdisRawWritePortUchar(u32 port, u8 val) |
| { |
| outb(val, port); |
| } |
| |
| static inline void NdisRawReadPortUchar(u32 port, u8 *pval) |
| { |
| *pval = inb(port); |
| } |
| |
| static inline void NdisRawReadPortUshort(u32 port, u16 *pval) |
| { |
| *pval = inw(port); |
| } |
| |
| static inline void NdisRawReadPortUlong(u32 port, u32 *pval) |
| { |
| *pval = inl(port); |
| } |
| |
| struct mp_adapter { |
| u8 LinkCtrlReg; |
| |
| u8 BusNumber; |
| u8 DevNumber; |
| u8 FuncNumber; |
| |
| u8 PciBridgeBusNum; |
| u8 PciBridgeDevNum; |
| u8 PciBridgeFuncNum; |
| u8 PciBridgeVendor; |
| u16 PciBridgeVendorId; |
| u16 PciBridgeDeviceId; |
| u8 PciBridgePCIeHdrOffset; |
| u8 PciBridgeLinkCtrlReg; |
| }; |
| |
| struct rt_pci_capab_header { |
| unsigned char CapabilityID; |
| unsigned char Next; |
| }; |
| |
| #define PCI_MAX_BRIDGE_NUMBER 255 |
| #define PCI_MAX_DEVICES 32 |
| #define PCI_MAX_FUNCTION 8 |
| |
| #define PCI_CONF_ADDRESS 0x0CF8 |
| #define PCI_CONF_DATA 0x0CFC |
| |
| #define PCI_CLASS_BRIDGE_DEV 0x06 |
| #define PCI_SUBCLASS_BR_PCI_TO_PCI 0x04 |
| |
| #define U1DONTCARE 0xFF |
| #define U2DONTCARE 0xFFFF |
| #define U4DONTCARE 0xFFFFFFFF |
| |
| #define INTEL_VENDOR_ID 0x8086 |
| #define SIS_VENDOR_ID 0x1039 |
| #define ATI_VENDOR_ID 0x1002 |
| #define ATI_DEVICE_ID 0x7914 |
| #define AMD_VENDOR_ID 0x1022 |
| |
| #define PCI_CAPABILITY_ID_PCI_EXPRESS 0x10 |
| |
| struct net_device; |
| bool rtl8192_pci_findadapter(struct pci_dev *pdev, struct net_device *dev); |
| |
| #endif |