1 /* SPDX-License-Identifier: GPL-2.0-or-later * << 2 /* 1 /* 3 * acpi_drivers.h ($Revision: 31 $) 2 * acpi_drivers.h ($Revision: 31 $) 4 * 3 * 5 * Copyright (C) 2001, 2002 Andy Grover <andr 4 * Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com> 6 * Copyright (C) 2001, 2002 Paul Diefenbaugh 5 * Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com> >> 6 * >> 7 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> 8 * >> 9 * This program is free software; you can redistribute it and/or modify >> 10 * it under the terms of the GNU General Public License as published by >> 11 * the Free Software Foundation; either version 2 of the License, or (at >> 12 * your option) any later version. >> 13 * >> 14 * This program is distributed in the hope that it will be useful, but >> 15 * WITHOUT ANY WARRANTY; without even the implied warranty of >> 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> 17 * General Public License for more details. >> 18 * >> 19 * You should have received a copy of the GNU General Public License along >> 20 * with this program; if not, write to the Free Software Foundation, Inc., >> 21 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. >> 22 * >> 23 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 7 */ 24 */ 8 25 9 #ifndef __ACPI_DRIVERS_H__ 26 #ifndef __ACPI_DRIVERS_H__ 10 #define __ACPI_DRIVERS_H__ 27 #define __ACPI_DRIVERS_H__ 11 28 >> 29 #include <linux/acpi.h> >> 30 #include <acpi/acpi_bus.h> >> 31 >> 32 12 #define ACPI_MAX_STRING 80 33 #define ACPI_MAX_STRING 80 13 34 14 /* !! 35 #define ACPI_BUS_COMPONENT 0x00010000 15 * _HID definitions !! 36 #define ACPI_SYSTEM_COMPONENT 0x02000000 16 * HIDs must conform to ACPI spec(6.1.4) << 17 * Linux specific HIDs do not apply to this an << 18 */ << 19 37 20 #define ACPI_POWER_HID "LNXPO !! 38 /* _HID definitions */ 21 #define ACPI_PROCESSOR_OBJECT_HID "LNXCP !! 39 22 #define ACPI_SYSTEM_HID "LNXSY !! 40 #define ACPI_POWER_HID "ACPI_PWR" 23 #define ACPI_THERMAL_HID "LNXTH !! 41 #define ACPI_PROCESSOR_HID "ACPI_CPU" 24 #define ACPI_BUTTON_HID_POWERF "LNXPW !! 42 #define ACPI_SYSTEM_HID "ACPI_SYS" 25 #define ACPI_BUTTON_HID_SLEEPF "LNXSL !! 43 #define ACPI_THERMAL_HID "ACPI_THM" 26 #define ACPI_VIDEO_HID "LNXVI !! 44 #define ACPI_BUTTON_HID_POWERF "ACPI_FPB" 27 #define ACPI_BAY_HID "LNXIO !! 45 #define ACPI_BUTTON_HID_SLEEPF "ACPI_FSB" 28 #define ACPI_DOCK_HID "LNXDO << 29 #define ACPI_ECDT_HID "LNXEC << 30 /* SMBUS HID definition as supported by Micros << 31 #define ACPI_SMBUS_MS_HID "SMB00 << 32 /* Quirk for broken IBM BIOSes */ << 33 #define ACPI_SMBUS_IBM_HID "SMBUS << 34 46 35 /* << 36 * For fixed hardware buttons, we fabricate ac << 37 * ACPI_BUTTON_HID_POWERF or ACPI_BUTTON_HID_S << 38 * signals only an event; it doesn't supply a << 39 * To allow drivers to treat notifications fro << 40 * same as those from real devices, we turn th << 41 * notification value. << 42 */ << 43 #define ACPI_FIXED_HARDWARE_EVENT 0x100 << 44 47 45 /* ------------------------------------------- 48 /* -------------------------------------------------------------------------- 46 PCI 49 PCI 47 ------------------------------------------- 50 -------------------------------------------------------------------------- */ 48 51 >> 52 #ifdef CONFIG_ACPI_PCI >> 53 >> 54 #define ACPI_PCI_COMPONENT 0x00400000 >> 55 >> 56 /* ACPI PCI Root Bridge (pci_root.c) */ >> 57 >> 58 void acpi_pci_get_translations (struct acpi_pci_id* id, u64* mem_tra, u64* io_tra); >> 59 >> 60 /* ACPI PCI Interrupt Link (pci_link.c) */ 49 61 50 /* ACPI PCI Interrupt Link */ !! 62 int acpi_pci_link_check (void); >> 63 int acpi_pci_link_get_irq (acpi_handle handle, int index, int* edge_level, int* active_high_low); 51 64 52 int acpi_irq_penalty_init(void); !! 65 /* ACPI PCI Interrupt Routing (pci_irq.c) */ 53 int acpi_pci_link_allocate_irq(acpi_handle han << 54 int *polarity, << 55 int acpi_pci_link_free_irq(acpi_handle handle) << 56 66 57 /* ACPI PCI Device Binding */ !! 67 int acpi_pci_irq_add_prt (acpi_handle handle, int segment, int bus); >> 68 >> 69 /* ACPI PCI Device Binding (pci_bind.c) */ 58 70 59 struct pci_bus; 71 struct pci_bus; 60 72 61 #ifdef CONFIG_PCI !! 73 int acpi_pci_bind (struct acpi_device *device); 62 struct pci_dev *acpi_get_pci_dev(acpi_handle); !! 74 int acpi_pci_bind_root (struct acpi_device *device, struct acpi_pci_id *id, struct pci_bus *bus); 63 #else << 64 static inline struct pci_dev *acpi_get_pci_dev << 65 { << 66 return NULL; << 67 } << 68 #endif << 69 75 70 /* Arch-defined function to add a bus to the s 76 /* Arch-defined function to add a bus to the system */ 71 77 72 struct pci_bus *pci_acpi_scan_root(struct acpi !! 78 struct pci_bus *pci_acpi_scan_root(struct acpi_device *device, int domain, int bus); >> 79 >> 80 #endif /*CONFIG_ACPI_PCI*/ 73 81 74 #ifdef CONFIG_X86 !! 82 75 void pci_acpi_crs_quirks(void); !! 83 /* -------------------------------------------------------------------------- 76 #else !! 84 Power Resource 77 static inline void pci_acpi_crs_quirks(void) { !! 85 -------------------------------------------------------------------------- */ >> 86 >> 87 #ifdef CONFIG_ACPI_POWER >> 88 >> 89 int acpi_power_get_inferred_state (struct acpi_device *device); >> 90 int acpi_power_transition (struct acpi_device *device, int state); 78 #endif 91 #endif 79 92 80 /*-------------------------------------------- !! 93 81 Dock Station !! 94 /* -------------------------------------------------------------------------- 82 -------------------------------------------- !! 95 Embedded Controller 83 !! 96 -------------------------------------------------------------------------- */ 84 #ifdef CONFIG_ACPI_DOCK !! 97 #ifdef CONFIG_ACPI_EC 85 extern int is_dock_device(struct acpi_device * !! 98 int acpi_ec_ecdt_probe (void); 86 #else !! 99 #endif 87 static inline int is_dock_device(struct acpi_d !! 100 >> 101 /* -------------------------------------------------------------------------- >> 102 Processor >> 103 -------------------------------------------------------------------------- */ >> 104 >> 105 #define ACPI_PROCESSOR_LIMIT_NONE 0x00 >> 106 #define ACPI_PROCESSOR_LIMIT_INCREMENT 0x01 >> 107 #define ACPI_PROCESSOR_LIMIT_DECREMENT 0x02 >> 108 >> 109 int acpi_processor_set_thermal_limit(acpi_handle handle, int type); >> 110 >> 111 >> 112 /* -------------------------------------------------------------------------- >> 113 Debug Support >> 114 -------------------------------------------------------------------------- */ >> 115 >> 116 #define ACPI_DEBUG_RESTORE 0 >> 117 #define ACPI_DEBUG_LOW 1 >> 118 #define ACPI_DEBUG_MEDIUM 2 >> 119 #define ACPI_DEBUG_HIGH 3 >> 120 #define ACPI_DEBUG_DRIVERS 4 >> 121 >> 122 extern u32 acpi_dbg_level; >> 123 extern u32 acpi_dbg_layer; >> 124 >> 125 static inline void >> 126 acpi_set_debug ( >> 127 u32 flag) 88 { 128 { 89 return 0; !! 129 static u32 layer_save; >> 130 static u32 level_save; >> 131 >> 132 switch (flag) { >> 133 case ACPI_DEBUG_RESTORE: >> 134 acpi_dbg_layer = layer_save; >> 135 acpi_dbg_level = level_save; >> 136 break; >> 137 case ACPI_DEBUG_LOW: >> 138 case ACPI_DEBUG_MEDIUM: >> 139 case ACPI_DEBUG_HIGH: >> 140 case ACPI_DEBUG_DRIVERS: >> 141 layer_save = acpi_dbg_layer; >> 142 level_save = acpi_dbg_level; >> 143 break; >> 144 } >> 145 >> 146 switch (flag) { >> 147 case ACPI_DEBUG_LOW: >> 148 acpi_dbg_layer = ACPI_COMPONENT_DEFAULT | ACPI_ALL_DRIVERS; >> 149 acpi_dbg_level = ACPI_DEBUG_DEFAULT; >> 150 break; >> 151 case ACPI_DEBUG_MEDIUM: >> 152 acpi_dbg_layer = ACPI_COMPONENT_DEFAULT | ACPI_ALL_DRIVERS; >> 153 acpi_dbg_level = ACPI_LV_FUNCTIONS | ACPI_LV_ALL_EXCEPTIONS; >> 154 break; >> 155 case ACPI_DEBUG_HIGH: >> 156 acpi_dbg_layer = 0xFFFFFFFF; >> 157 acpi_dbg_level = 0xFFFFFFFF; >> 158 break; >> 159 case ACPI_DEBUG_DRIVERS: >> 160 acpi_dbg_layer = ACPI_ALL_DRIVERS; >> 161 acpi_dbg_level = 0xFFFFFFFF; >> 162 break; >> 163 } 90 } 164 } 91 #endif /* CONFIG_ACPI_DOCK */ !! 165 92 166 93 #endif /*__ACPI_DRIVERS_H__*/ 167 #endif /*__ACPI_DRIVERS_H__*/ 94 168
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.