1/* 2 * This program is free software; you can redistribute it and/or 3 * modify it under the terms of the GNU General Public License 4 * as published by the Free Software Foundation; either version 5 * 2 of the License, or (at your option) any later version. 6 */ 7#ifndef _ASM_GENERIC_PCI_BRIDGE_H 8#define _ASM_GENERIC_PCI_BRIDGE_H 9 10#ifdef __KERNEL__ 11 12enum { 13 /* Force re-assigning all resources (ignore firmware 14 * setup completely) 15 */ 16 PCI_REASSIGN_ALL_RSRC = 0x00000001, 17 18 /* Re-assign all bus numbers */ 19 PCI_REASSIGN_ALL_BUS = 0x00000002, 20 21 /* Do not try to assign, just use existing setup */ 22 PCI_PROBE_ONLY = 0x00000004, 23 24 /* Don't bother with ISA alignment unless the bridge has 25 * ISA forwarding enabled 26 */ 27 PCI_CAN_SKIP_ISA_ALIGN = 0x00000008, 28 29 /* Enable domain numbers in /proc */ 30 PCI_ENABLE_PROC_DOMAINS = 0x00000010, 31 /* ... except for domain 0 */ 32 PCI_COMPAT_DOMAIN_0 = 0x00000020, 33 34 /* PCIe downstream ports are bridges that normally lead to only a 35 * device 0, but if this is set, we scan all possible devices, not 36 * just device 0. 37 */ 38 PCI_SCAN_ALL_PCIE_DEVS = 0x00000040, 39}; 40 41#ifdef CONFIG_PCI 42extern unsigned int pci_flags; 43 44static inline void pci_set_flags(int flags) 45{ 46 pci_flags = flags; 47} 48 49static inline void pci_add_flags(int flags) 50{ 51 pci_flags |= flags; 52} 53 54static inline void pci_clear_flags(int flags) 55{ 56 pci_flags &= ~flags; 57} 58 59static inline int pci_has_flag(int flag) 60{ 61 return pci_flags & flag; 62} 63#else 64static inline void pci_set_flags(int flags) { } 65static inline void pci_add_flags(int flags) { } 66static inline void pci_clear_flags(int flags) { } 67static inline int pci_has_flag(int flag) 68{ 69 return 0; 70} 71#endif /* CONFIG_PCI */ 72 73#endif /* __KERNEL__ */ 74#endif /* _ASM_GENERIC_PCI_BRIDGE_H */ 75