Commit fb9802fa authored by Luming Yu's avatar Luming Yu Committed by Len Brown
Browse files

[ACPI] generic Hot Key support

See Documentation/acpi-hotkey.txt

Use cmdline "acpi_specific_hotkey" to enable
legacy platform specific drivers.

http://bugzilla.kernel.org/show_bug.cgi?id=3887



Signed-off-by: default avatarLuming Yu <luming.yu@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent d58da590
Loading
Loading
Loading
Loading
+35 −0
Original line number Original line Diff line number Diff line
driver/acpi/hotkey.c implement:
1. /proc/acpi/hotkey/event_config 
(event based hotkey or event config interface):
a. add a  event based hotkey(event) : 
echo "0:bus::action:method:num:num" > event_config

b. delete a event based hotkey(event): 
echo "1:::::num:num" > event_config

c.  modify a event based hotkey(event):    
echo "2:bus::action:method:num:num" > event_config

2. /proc/acpi/hotkey/poll_config 
(polling based hotkey or event config interface):
a.add a polling based hotkey(event) : 	
echo "0:bus:method:action:method:num" > poll_config
this adding command will create a proc file 
/proc/acpi/hotkey/method, which is used to get 
result of polling.

b.delete a polling based hotkey(event): 	
echo "1:::::num" > event_config

c.modify a polling based hotkey(event):    
echo "2:bus:method:action:method:num" > poll_config

3./proc/acpi/hotkey/action 
(interface to call aml method associated with a 
specific hotkey(event))
echo "event_num:event_type:event_argument" > 
	/proc/acpi/hotkey/action.
The result of the execution of this aml method is 
attached to /proc/acpi/hotkey/poll_method, which is dnyamically
created.  Please use command "cat /proc/acpi/hotkey/polling_method" 
to retrieve it.
+9 −0
Original line number Original line Diff line number Diff line
@@ -123,6 +123,15 @@ config ACPI_VIDEO
	  Note that this is an ref. implementation only.  It may or may not work
	  Note that this is an ref. implementation only.  It may or may not work
	  for your integrated video device.
	  for your integrated video device.


config ACPI_HOTKEY
	tristate "Generic Hotkey"
	depends on ACPI_INTERPRETER
	depends on EXPERIMENTAL
	depends on !IA64_SGI_SN
	default m
	help
	ACPI generic hotkey

config ACPI_FAN
config ACPI_FAN
	tristate "Fan"
	tristate "Fan"
	depends on !IA64_SGI_SN
	depends on !IA64_SGI_SN
+2 −1
Original line number Original line Diff line number Diff line
@@ -43,6 +43,7 @@ obj-$(CONFIG_ACPI_BUTTON) += button.o
obj-$(CONFIG_ACPI_EC)		+= ec.o
obj-$(CONFIG_ACPI_EC)		+= ec.o
obj-$(CONFIG_ACPI_FAN)		+= fan.o
obj-$(CONFIG_ACPI_FAN)		+= fan.o
obj-$(CONFIG_ACPI_VIDEO)	+= video.o 
obj-$(CONFIG_ACPI_VIDEO)	+= video.o 
obj-$(CONFIG_ACPI_HOTKEY)	+= hotkey.o
obj-$(CONFIG_ACPI_PCI)		+= pci_root.o pci_link.o pci_irq.o pci_bind.o
obj-$(CONFIG_ACPI_PCI)		+= pci_root.o pci_link.o pci_irq.o pci_bind.o
obj-$(CONFIG_ACPI_POWER)	+= power.o
obj-$(CONFIG_ACPI_POWER)	+= power.o
obj-$(CONFIG_ACPI_PROCESSOR)	+= processor.o
obj-$(CONFIG_ACPI_PROCESSOR)	+= processor.o
+4 −0
Original line number Original line Diff line number Diff line
@@ -1204,6 +1204,10 @@ static int __init asus_acpi_init(void)
	if (acpi_disabled)
	if (acpi_disabled)
		return -ENODEV;
		return -ENODEV;


	if (!acpi_specific_hotkey_enabled){
		printk(KERN_ERR "Using generic hotkey driver\n");
		return -ENODEV;	
	}
	asus_proc_dir = proc_mkdir(PROC_ASUS, acpi_root_dir);
	asus_proc_dir = proc_mkdir(PROC_ASUS, acpi_root_dir);
	if (!asus_proc_dir) {
	if (!asus_proc_dir) {
		printk(KERN_ERR "Asus ACPI: Unable to create /proc entry\n");
		printk(KERN_ERR "Asus ACPI: Unable to create /proc entry\n");

drivers/acpi/hotkey.c

0 → 100644
+1018 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading