linux/drivers
Lennart Poettering 00eb43a189 acpi,msi-laptop: Fall back to EC polling mode for MSI laptop specific EC commands
The ACPI EC that is used in MSI laptops knows some non-standard
commands for changing the screen brighntess and a few other things,
which are used by the msi-laptop.c driver. Unfortunately for these
commands no GPE events for IBF and OBF are triggered. Since nowadays
the EC code uses the ec_intr=1 mode by default, this causes these
operations to timeout, although they don't fail. In result, all
operations that you can do with the msi-laptop.c driver take more or
less 1s to complete, which is awfully slow.

In one of the more recent kernels (2.6.20?) the EC subsystem has been
revamped. With that change the EC timeout has been increased. before
that increase the MSI EC accesses were slow -- but not *that* slow,
hence I took notice of this limitation of the MSI EC hardware only very
recently.

The standard EC operations on the MSI EC as defined in the ACPI spec
support GPE events properly.

The following patch adds a new argument "force_poll" to the
ec_transaction() function (and friends). If set to 1, the function
will poll for IBF/OBF even if ec_intr=1 is enabled. If set to 0 the
current behaviour is used. The msi-laptop driver is modified to make
use of this new flag, so that OBF/IBF is polled for the special MSI EC
transactions -- but only for them.

Signed-off-by: Lennart Poettering <mzxreary@0pointer.de>
Acked-by: Alexey Starikovskiy <aystarik@gmail.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2007-05-10 03:52:22 -04:00
..
acorn
acpi acpi,msi-laptop: Fall back to EC polling mode for MSI laptop specific EC commands 2007-05-10 03:52:22 -04:00
amba
ata libata: fix kernel-doc parameters 2007-05-09 20:15:47 -04:00
atm PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
auxdisplay
base Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2007-05-09 12:54:17 -07:00
block Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2007-05-09 12:54:17 -07:00
bluetooth [Bluetooth] Correct SCO buffer for another Broadcom based dongle 2007-05-05 00:36:22 +02:00
cdrom mm: remove destroy_dirty_buffers from invalidate_bdev() 2007-05-07 12:12:55 -07:00
char Merge git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2007-05-09 13:38:45 -07:00
clocksource
connector
cpufreq Add suspend-related notifications for CPU hotplug 2007-05-09 12:30:56 -07:00
crypto Fix trivial typos in Kconfig* files 2007-05-09 07:12:20 +02:00
dio
dma
edac Fix 82875 PCI setup 2007-05-08 11:15:07 -07:00
eisa virtual_eisa_root_init() should be __init 2007-05-08 11:15:02 -07:00
fc4
firmware remove "struct subsystem" as it is no longer needed 2007-05-02 18:57:59 -07:00
hid header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
hwmon Add suspend-related notifications for CPU hotplug 2007-05-09 12:30:56 -07:00
i2c PM: Separate hibernation code from suspend code 2007-05-09 12:30:48 -07:00
ide Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6 2007-05-09 15:41:31 -07:00
ieee1394 Fix occurrences of "the the " 2007-05-09 08:57:56 +02:00
infiniband Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband 2007-05-09 19:40:09 -07:00
input Merge master.kernel.org:/pub/scm/linux/kernel/git/dtor/input 2007-05-08 11:51:43 -07:00
isdn misc doc and kconfig typos 2007-05-09 08:58:15 +02:00
kvm Add suspend-related notifications for CPU hotplug 2007-05-09 12:30:56 -07:00
leds fix file specification in comments 2007-05-09 08:58:16 +02:00
macintosh Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6 2007-05-09 15:41:31 -07:00
mca mca: add integrated device bus matching 2007-05-09 12:30:49 -07:00
md Revert "md: improve partition detection in md array" 2007-05-09 18:51:36 -07:00
media misc doc and kconfig typos 2007-05-09 08:58:15 +02:00
message misc doc and kconfig typos 2007-05-09 08:58:15 +02:00
mfd header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
misc acpi,msi-laptop: Fall back to EC polling mode for MSI laptop specific EC commands 2007-05-10 03:52:22 -04:00
mmc mmc build fix 2007-05-09 12:30:44 -07:00
mtd Merge git://git.infradead.org/mtd-2.6 2007-05-09 13:10:11 -07:00
net Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband 2007-05-09 19:40:09 -07:00
nubus
oprofile
parisc header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
parport parport_serial: fix PCI must_checks 2007-05-08 11:15:08 -07:00
pci Fix more "deprecated" spellos. 2007-05-09 07:19:14 +02:00
pcmcia fix hotplug for legacy platform drivers 2007-05-08 11:15:10 -07:00
pnp PNP: workaround HP BIOS defect that leaves SMCF010 device partly enabled 2007-05-08 11:15:23 -07:00
ps3 Merge branch 'linux-2.6' 2007-05-08 13:37:51 +10:00
rapidio
rtc Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6 2007-05-09 13:08:20 -07:00
s390 Fix occurrences of "the the " 2007-05-09 08:57:56 +02:00
sbus Fix misspellings collected by members of KJ list. 2007-05-09 07:14:03 +02:00
scsi Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6 2007-05-09 15:41:31 -07:00
serial Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2007-05-08 11:50:19 -07:00
sh
sn
spi atmel_spi: remove unnecessary (and wrong) #ifdefs 2007-05-09 12:30:50 -07:00
tc
telephony replace pci_find_device in drivers/telephony/ixj.c 2007-05-08 11:15:02 -07:00
usb Move USB network drivers to drivers/net/usb. 2007-05-09 21:31:55 -04:00
video Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2007-05-09 12:54:17 -07:00
w1 Driver for the Maxim DS1WM, a 1-wire bus master ASIC core 2007-05-08 11:15:14 -07:00
zorro Amiga Zorro bus: kill resource_size_t warnings 2007-05-04 17:59:08 -07:00
Kconfig
Makefile i2c: Add i2c_board_info and i2c_new_device() 2007-05-01 23:26:31 +02:00