aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/ABI/testing/sysfs-firmware-acpi
blob: 9470ed9afcc07238077440312c24af3d5ef88ad0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
What:		/sys/firmware/acpi/interrupts/
Date:		February 2008
Contact:	Len Brown <lenb@kernel.org>
Description:
		All ACPI interrupts are handled via a single IRQ,
		the System Control Interrupt (SCI), which appears
		as "acpi" in /proc/interrupts.

		However, one of the main functions of ACPI is to make
		the platform understand random hardware without
		special driver support.  So while the SCI handles a few
		well known (fixed feature) interrupts sources, such
		as the power button, it can also handle a variable
		number of a "General Purpose Events" (GPE).

		A GPE vectors to a specified handler in AML, which
		can do a anything the BIOS writer wants from
		OS context.  GPE 0x12, for example, would vector
		to a level or edge handler called _L12 or _E12.
		The handler may do its business and return.
		Or the handler may send send a Notify event
		to a Linux device driver registered on an ACPI device,
		such as a battery, or a processor.

		To figure out where all the SCI's are coming from,
		/sys/firmware/acpi/interrupts contains a file listing
		every possible source, and the count of how many
		times it has triggered.

		$ cd /sys/firmware/acpi/interrupts
		$ grep . *
		error:0
		ff_gbl_lock:0
		ff_pmtimer:0
		ff_pwr_btn:0
		ff_rt_clk:0
		ff_slp_btn:0
		gpe00:0
		gpe01:0
		gpe02:0
		gpe03:0
		gpe04:0
		gpe05:0
		gpe06:0
		gpe07:0
		gpe08:0
		gpe09:174
		gpe0A:0
		gpe0B:0
		gpe0C:0
		gpe0D:0
		gpe0E:0
		gpe0F:0
		gpe10:0
		gpe11:60
		gpe12:0
		gpe13:0
		gpe14:0
		gpe15:0
		gpe16:0
		gpe17:0
		gpe18:0
		gpe19:7
		gpe1A:0
		gpe1B:0
		gpe1C:0
		gpe1D:0
		gpe1E:0
		gpe1F:0
		gpe_all:241
		sci:241

		sci - The total number of times the ACPI SCI
		has claimed an interrupt.

		gpe_all - count of SCI caused by GPEs.

		gpeXX - count for individual GPE source

		ff_gbl_lock - Global Lock

		ff_pmtimer - PM Timer

		ff_pwr_btn - Power Button

		ff_rt_clk - Real Time Clock

		ff_slp_btn - Sleep Button

		error - an interrupt that can't be accounted for above.

		Root has permission to clear any of these counters.  Eg.
		# echo 0 > gpe11

		All counters can be cleared by clearing the total "sci":
		# echo 0 > sci

		None of these counters has an effect on the function
		of the system, they are simply statistics.