diff options
author | Luming Yu <luming.yu@intel.com> | 2005-08-03 17:38:04 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2005-08-03 17:40:43 -0400 |
commit | 7b15f5e7bb180ac7bfb8926dbbd8835fecc07fad (patch) | |
tree | fa5b48a0041c2f4896805a4762befabdfcea3031 /drivers/acpi/ec.c | |
parent | ecc21ebe603af31f172c43b8b261df79040790ef (diff) | |
download | kernel_samsung_smdk4412-7b15f5e7bb180ac7bfb8926dbbd8835fecc07fad.tar.gz kernel_samsung_smdk4412-7b15f5e7bb180ac7bfb8926dbbd8835fecc07fad.tar.bz2 kernel_samsung_smdk4412-7b15f5e7bb180ac7bfb8926dbbd8835fecc07fad.zip |
[ACPI] revert Embedded Controller to polling-mode by default (ala 2.6.12)
Burst mode isn't ready for prime time,
but can be enabled for test via "ec_burst=1"
Signed-off-by: Luming Yu <luming.yu@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/ec.c')
-rw-r--r-- | drivers/acpi/ec.c | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index 2dadb7f6326..1ac5731d45e 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c @@ -76,13 +76,14 @@ static int acpi_ec_remove (struct acpi_device *device, int type); static int acpi_ec_start (struct acpi_device *device); static int acpi_ec_stop (struct acpi_device *device, int type); static int acpi_ec_burst_add ( struct acpi_device *device); +static int acpi_ec_polling_add ( struct acpi_device *device); static struct acpi_driver acpi_ec_driver = { .name = ACPI_EC_DRIVER_NAME, .class = ACPI_EC_CLASS, .ids = ACPI_EC_HID, .ops = { - .add = acpi_ec_burst_add, + .add = acpi_ec_polling_add, .remove = acpi_ec_remove, .start = acpi_ec_start, .stop = acpi_ec_stop, @@ -164,7 +165,7 @@ static union acpi_ec *ec_ecdt; /* External interfaces use first EC only, so remember */ static struct acpi_device *first_ec; -static int acpi_ec_polling_mode; +static int acpi_ec_polling_mode = EC_POLLING; /* -------------------------------------------------------------------------- Transaction Management @@ -1710,11 +1711,24 @@ static int __init acpi_fake_ecdt_setup(char *str) acpi_fake_ecdt_enabled = 1; return 0; } + __setup("acpi_fake_ecdt", acpi_fake_ecdt_setup); static int __init acpi_ec_set_polling_mode(char *str) { - acpi_ec_polling_mode = EC_POLLING; - acpi_ec_driver.ops.add = acpi_ec_polling_add; + int burst; + + if (!get_option(&str, &burst)) + return 0; + + if (burst) { + acpi_ec_polling_mode = EC_BURST; + acpi_ec_driver.ops.add = acpi_ec_burst_add; + } else { + acpi_ec_polling_mode = EC_POLLING; + acpi_ec_driver.ops.add = acpi_ec_polling_add; + } + printk(KERN_INFO PREFIX "EC %s mode.\n", + burst ? "burst": "polling"); return 0; } -__setup("ec_polling", acpi_ec_set_polling_mode); +__setup("ec_burst=", acpi_ec_set_polling_mode); |