diff options
author | Len Brown <len.brown@intel.com> | 2008-02-07 03:13:36 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2008-02-07 03:13:36 -0500 |
commit | e5e54bc86a1fed9849b22fd736c30b23c4719046 (patch) | |
tree | c53d0d5a7d6e2806bc154f8fc1642ec7a6684ca1 /Documentation/ABI/testing/sysfs-firmware-acpi | |
parent | 70ec75c5b8e0bda7a16fb387f91e08545f379a0e (diff) | |
parent | 5229e87d59cef33539322948bd8e3b5a537f7c97 (diff) |
Merge branches 'release' and 'stats' into release
Diffstat (limited to 'Documentation/ABI/testing/sysfs-firmware-acpi')
-rw-r--r-- | Documentation/ABI/testing/sysfs-firmware-acpi | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/Documentation/ABI/testing/sysfs-firmware-acpi b/Documentation/ABI/testing/sysfs-firmware-acpi new file mode 100644 index 000000000000..9470ed9afcc0 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-firmware-acpi | |||
@@ -0,0 +1,99 @@ | |||
1 | What: /sys/firmware/acpi/interrupts/ | ||
2 | Date: February 2008 | ||
3 | Contact: Len Brown <lenb@kernel.org> | ||
4 | Description: | ||
5 | All ACPI interrupts are handled via a single IRQ, | ||
6 | the System Control Interrupt (SCI), which appears | ||
7 | as "acpi" in /proc/interrupts. | ||
8 | |||
9 | However, one of the main functions of ACPI is to make | ||
10 | the platform understand random hardware without | ||
11 | special driver support. So while the SCI handles a few | ||
12 | well known (fixed feature) interrupts sources, such | ||
13 | as the power button, it can also handle a variable | ||
14 | number of a "General Purpose Events" (GPE). | ||
15 | |||
16 | A GPE vectors to a specified handler in AML, which | ||
17 | can do a anything the BIOS writer wants from | ||
18 | OS context. GPE 0x12, for example, would vector | ||
19 | to a level or edge handler called _L12 or _E12. | ||
20 | The handler may do its business and return. | ||
21 | Or the handler may send send a Notify event | ||
22 | to a Linux device driver registered on an ACPI device, | ||
23 | such as a battery, or a processor. | ||
24 | |||
25 | To figure out where all the SCI's are coming from, | ||
26 | /sys/firmware/acpi/interrupts contains a file listing | ||
27 | every possible source, and the count of how many | ||
28 | times it has triggered. | ||
29 | |||
30 | $ cd /sys/firmware/acpi/interrupts | ||
31 | $ grep . * | ||
32 | error:0 | ||
33 | ff_gbl_lock:0 | ||
34 | ff_pmtimer:0 | ||
35 | ff_pwr_btn:0 | ||
36 | ff_rt_clk:0 | ||
37 | ff_slp_btn:0 | ||
38 | gpe00:0 | ||
39 | gpe01:0 | ||
40 | gpe02:0 | ||
41 | gpe03:0 | ||
42 | gpe04:0 | ||
43 | gpe05:0 | ||
44 | gpe06:0 | ||
45 | gpe07:0 | ||
46 | gpe08:0 | ||
47 | gpe09:174 | ||
48 | gpe0A:0 | ||
49 | gpe0B:0 | ||
50 | gpe0C:0 | ||
51 | gpe0D:0 | ||
52 | gpe0E:0 | ||
53 | gpe0F:0 | ||
54 | gpe10:0 | ||
55 | gpe11:60 | ||
56 | gpe12:0 | ||
57 | gpe13:0 | ||
58 | gpe14:0 | ||
59 | gpe15:0 | ||
60 | gpe16:0 | ||
61 | gpe17:0 | ||
62 | gpe18:0 | ||
63 | gpe19:7 | ||
64 | gpe1A:0 | ||
65 | gpe1B:0 | ||
66 | gpe1C:0 | ||
67 | gpe1D:0 | ||
68 | gpe1E:0 | ||
69 | gpe1F:0 | ||
70 | gpe_all:241 | ||
71 | sci:241 | ||
72 | |||
73 | sci - The total number of times the ACPI SCI | ||
74 | has claimed an interrupt. | ||
75 | |||
76 | gpe_all - count of SCI caused by GPEs. | ||
77 | |||
78 | gpeXX - count for individual GPE source | ||
79 | |||
80 | ff_gbl_lock - Global Lock | ||
81 | |||
82 | ff_pmtimer - PM Timer | ||
83 | |||
84 | ff_pwr_btn - Power Button | ||
85 | |||
86 | ff_rt_clk - Real Time Clock | ||
87 | |||
88 | ff_slp_btn - Sleep Button | ||
89 | |||
90 | error - an interrupt that can't be accounted for above. | ||
91 | |||
92 | Root has permission to clear any of these counters. Eg. | ||
93 | # echo 0 > gpe11 | ||
94 | |||
95 | All counters can be cleared by clearing the total "sci": | ||
96 | # echo 0 > sci | ||
97 | |||
98 | None of these counters has an effect on the function | ||
99 | of the system, they are simply statistics. | ||