Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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: default avatarLuming Yu <luming.yu@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent ecc21ebe
Loading
Loading
Loading
Loading
+19 −5
Original line number Diff line number Diff line
@@ -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)
{
	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);