linux/drivers/acpi
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
..
dispatcher ACPICA: fix AML mutex re-entrancy 2007-02-15 16:13:16 -05:00
events ACPICA: revert "acpi_serialize" changes 2007-03-15 04:10:36 -04:00
executer ACPICA: revert "acpi_serialize" changes 2007-03-15 04:10:36 -04:00
hardware ACPI: resolve HP nx6125 S3 immediate wakeup regression 2007-03-12 14:49:26 -04:00
namespace ACPICA: revert "acpi_serialize" changes 2007-03-15 04:10:36 -04:00
parser ACPICA: Update copyright to 2007. 2007-02-02 21:14:31 -05:00
resources ACPI: fix boot hang w/o "noapic" on MSI MS-6390-L 2007-03-08 03:42:42 -05:00
sleep PM: Separate hibernation code from suspend code 2007-05-09 12:30:48 -07:00
tables ACPICA: clear fields reserved before FADT r3 2007-04-28 20:55:06 -04:00
utilities ACPICA: fix AML mutex re-entrancy 2007-02-15 16:13:16 -05:00
ac.c ACPI: delete extra #defines in /drivers/acpi/ drivers 2007-02-12 23:50:52 -05:00
acpi_memhotplug.c ACPI: Remove duplicate definitions for _STA bits 2007-04-25 14:17:39 -04:00
asus_acpi.c backlight: Separate backlight properties from backlight ops pointers 2007-02-20 09:26:53 +00:00
battery.c Pull bugzilla-7200 into release branch 2007-02-16 22:11:37 -05:00
bay.c Pull fluff into release branch 2007-02-16 22:10:32 -05:00
blacklist.c ACPI: make blacklist more verbose 2007-03-09 21:19:05 -05:00
bus.c ACPI: use _STA bit names rather than 0x0F 2007-04-25 14:20:58 -04:00
button.c ACPI: delete extra #defines in /drivers/acpi/ drivers 2007-02-12 23:50:52 -05:00
cm_sbs.c ACPI: clean up ACPI_MODULE_NAME() use 2007-02-12 22:42:12 -05:00
container.c ACPI: Remove duplicate definitions for _STA bits 2007-04-25 14:17:39 -04:00
debug.c ACPI: clean up ACPI_MODULE_NAME() use 2007-02-12 22:42:12 -05:00
dock.c ACPI: dock: use NULL for pointer 2007-03-28 23:31:43 -04:00
ec.c acpi,msi-laptop: Fall back to EC polling mode for MSI laptop specific EC commands 2007-05-10 03:52:22 -04:00
event.c ACPI: clean up ACPI_MODULE_NAME() use 2007-02-12 22:42:12 -05:00
fan.c ACPI: delete extra #defines in /drivers/acpi/ drivers 2007-02-12 23:50:52 -05:00
glue.c workaround rtc-related acpi table bugs 2007-05-08 11:15:18 -07:00
Kconfig Pull sbs into release branch 2007-04-28 23:16:59 -04:00
Makefile Pull sbs into release branch 2007-04-28 23:16:59 -04:00
numa.c Fix unnecesary meminit 2007-05-08 20:41:14 -07:00
osl.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
pci_bind.c ACPI: clean up ACPI_MODULE_NAME() use 2007-02-12 22:42:12 -05:00
pci_irq.c ACPI: clean up ACPI_MODULE_NAME() use 2007-02-12 22:42:12 -05:00
pci_link.c ACPI: delete extra #defines in /drivers/acpi/ drivers 2007-02-12 23:50:52 -05:00
pci_root.c ACPI: delete extra #defines in /drivers/acpi/ drivers 2007-02-12 23:50:52 -05:00
power.c Pull misc-for-upstream into release branch 2007-03-09 23:19:50 -05:00
processor_core.c ACPI: Remove duplicate definitions for _STA bits 2007-04-25 14:17:39 -04:00
processor_idle.c [PATCH] x86: Log reason why TSC was marked unstable 2007-05-02 19:27:08 +02:00
processor_perflib.c [CPUFREQ] Remove deprecated /proc/acpi/processor/performance write support 2007-04-26 14:32:02 -04:00
processor_thermal.c ACPI: delete extra #defines in /drivers/acpi/ drivers 2007-02-12 23:50:52 -05:00
processor_throttling.c ACPI: delete extra #defines in /drivers/acpi/ drivers 2007-02-12 23:50:52 -05:00
sbs.c ACPI: sbs: Common interface with CM battery 2007-03-22 01:15:58 -04:00
scan.c PNPACPI sets pnpdev->dev.archdata 2007-05-08 11:15:08 -07:00
system.c ACPI: delete extra #defines in /drivers/acpi/ drivers 2007-02-12 23:50:52 -05:00
tables.c Revert "ACPI: parse 2nd MADT by default" 2007-03-30 14:16:10 -04:00
thermal.c acpi-thermal: fix mod_timer() interval 2007-04-24 08:23:08 -07:00
toshiba_acpi.c backlight: Separate backlight properties from backlight ops pointers 2007-02-20 09:26:53 +00:00
utils.c ACPI: clean up ACPI_MODULE_NAME() use 2007-02-12 22:42:12 -05:00
video.c ACPI: video: Fix spelling and grammar mistakes 2007-03-09 21:37:07 -05:00