This patch adds facility to test future EC modification. All EC commits should enable TEST_HOTPLUG, and try a build/boot test. Since EC is currently a built-in module, this is the only mean for us to test the hotplug code. Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx> --- drivers/acpi/ec.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index b98474f..d3b1bd7 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c @@ -31,6 +31,7 @@ /* Uncomment next line to get verbose printout */ /* #define DEBUG */ +/* #define TEST_HOTPLUG */ #define pr_fmt(fmt) "ACPI : EC: " fmt #include <linux/kernel.h> @@ -128,6 +129,9 @@ static struct acpi_ec_query_handler * acpi_ec_get_query_handler(struct acpi_ec_query_handler *handler); static void acpi_ec_put_query_handler(struct acpi_ec_query_handler *handler); +static u32 acpi_ec_gpe_handler(acpi_handle gpe_device, + u32 gpe_number, void *data); + struct acpi_ec *boot_ec, *first_ec; EXPORT_SYMBOL(first_ec); @@ -787,6 +791,21 @@ static void acpi_ec_gpe_query(void *ec_cxt) mutex_lock(&ec->mutex); acpi_ec_sync_query(ec, NULL); mutex_unlock(&ec->mutex); + +#ifdef TEST_HOTPLUG + + /* Unit testing for driver hotplugging */ + + pr_info("Removing EC handlers...\n"); + acpi_ec_stop(ec); + acpi_remove_gpe_handler(NULL, ec->gpe, + &acpi_ec_gpe_handler); + pr_info("Installing EC handlers...\n"); + acpi_install_gpe_handler(NULL, ec->gpe, + ACPI_GPE_EDGE_TRIGGERED, + &acpi_ec_gpe_handler, ec); + acpi_ec_start(ec); +#endif } static int ec_check_sci(struct acpi_ec *ec, u8 state) -- 1.7.10 -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html