diff options
author | Len Brown <len.brown@intel.com> | 2010-10-25 02:14:50 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2010-10-25 02:14:50 -0400 |
commit | 4895ae6f9f81011bf3a6fea70d46bab08d58fd8c (patch) | |
tree | 33f36ed65e65c3cbf30c7c22286ea98af83bda8c /drivers | |
parent | 8c654bb80801aeafba071396602c777758604980 (diff) | |
parent | 7a18e96dcbdec3c96876444ae2c7e36ce458e151 (diff) |
Merge branch 'ec-param' into release
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/acpi/ec.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index f31291ba94d..372ff80b7b0 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c @@ -83,6 +83,11 @@ enum { EC_FLAGS_BLOCKED, /* Transactions are blocked */ }; +/* ec.c is compiled in acpi namespace so this shows up as acpi.ec_delay param */ +static unsigned int ec_delay __read_mostly = ACPI_EC_DELAY; +module_param(ec_delay, uint, 0644); +MODULE_PARM_DESC(ec_delay, "Timeout(ms) waited until an EC command completes"); + /* If we find an EC via the ECDT, we need to keep a ptr to its context */ /* External interfaces use first EC only, so remember */ typedef int (*acpi_ec_query_func) (void *data); @@ -210,7 +215,7 @@ static int ec_poll(struct acpi_ec *ec) int repeat = 2; /* number of command restarts */ while (repeat--) { unsigned long delay = jiffies + - msecs_to_jiffies(ACPI_EC_DELAY); + msecs_to_jiffies(ec_delay); do { /* don't sleep with disabled interrupts */ if (EC_FLAGS_MSI || irqs_disabled()) { @@ -265,7 +270,7 @@ static int ec_check_ibf0(struct acpi_ec *ec) static int ec_wait_ibf0(struct acpi_ec *ec) { - unsigned long delay = jiffies + msecs_to_jiffies(ACPI_EC_DELAY); + unsigned long delay = jiffies + msecs_to_jiffies(ec_delay); /* interrupt wait manually if GPE mode is not active */ while (time_before(jiffies, delay)) if (wait_event_timeout(ec->wait, ec_check_ibf0(ec), |