From dd26dc39516ffe5df397a690abfcc3a4a0bf6702 Mon Sep 17 00:00:00 2001 From: Zhang Rui Date: Wed, 14 Nov 2007 19:38:40 -0500 Subject: [PATCH] --- yaml --- r: 84095 b: refs/heads/master c: 4169c45f179e285feac6bcf25f4bd0db6b109bab h: refs/heads/master i: 84093: 8dbadd9d4112106c15f8d6e0b579e0164c8be420 84091: 93997bae0e9cac6e99d3a9c2052a0cf523458e51 84087: 9436bc10c9153e909f7673e25b4c94a35ea4a7f9 84079: a53fea8fda55bdb4c19e669711646a6d447f5c6a 84063: 93ec06834ad46763bbae2313a3b90e3684ca452d 84031: 9b9c86291a3a1babd34846f8ad9e475d54d2b4ca 83967: 710586e63e10d8bc9095c5ed2e951373c1315d4d v: v3 --- [refs] | 2 +- trunk/drivers/acpi/debug.c | 57 +++++++++++++++++++++++++++++++ trunk/drivers/acpi/events/evgpe.c | 8 ++--- 3 files changed, 62 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index d68c580b2144..4c9cd8b25938 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a7f9b1f24974da287771e2d70b30d9ca7bd66684 +refs/heads/master: 4169c45f179e285feac6bcf25f4bd0db6b109bab diff --git a/trunk/drivers/acpi/debug.c b/trunk/drivers/acpi/debug.c index bf513e07b773..6df564f4ca6e 100644 --- a/trunk/drivers/acpi/debug.c +++ b/trunk/drivers/acpi/debug.c @@ -130,6 +130,63 @@ static int param_get_debug_level(char *buffer, struct kernel_param *kp) { module_param_call(debug_layer, param_set_uint, param_get_debug_layer, &acpi_dbg_layer, 0644); module_param_call(debug_level, param_set_uint, param_get_debug_level, &acpi_dbg_level, 0644); +static char trace_method_name[6]; +module_param_string(trace_method_name, trace_method_name, 6, 0644); +static unsigned int trace_debug_layer; +module_param(trace_debug_layer, uint, 0644); +static unsigned int trace_debug_level; +module_param(trace_debug_level, uint, 0644); + +static int param_set_trace_state(const char *val, struct kernel_param *kp) +{ + int result = 0; + + if (!strncmp(val, "enable", strlen("enable") - 1)) { + result = acpi_debug_trace(trace_method_name, trace_debug_level, + trace_debug_layer, 0); + if (result) + result = -EBUSY; + goto exit; + } + + if (!strncmp(val, "disable", strlen("disable") - 1)) { + int name = 0; + result = acpi_debug_trace((char *)&name, trace_debug_level, + trace_debug_layer, 0); + if (result) + result = -EBUSY; + goto exit; + } + + if (!strncmp(val, "1", 1)) { + result = acpi_debug_trace(trace_method_name, trace_debug_level, + trace_debug_layer, 1); + if (result) + result = -EBUSY; + goto exit; + } + + result = -EINVAL; +exit: + return result; +} + +static int param_get_trace_state(char *buffer, struct kernel_param *kp) +{ + if (!acpi_gbl_trace_method_name) + return sprintf(buffer, "disable"); + else { + if (acpi_gbl_trace_flags & 1) + return sprintf(buffer, "1"); + else + return sprintf(buffer, "enable"); + } + return 0; +} + +module_param_call(trace_state, param_set_trace_state, param_get_trace_state, + NULL, 0644); + /* -------------------------------------------------------------------------- FS Interface (/proc) -------------------------------------------------------------------------- */ diff --git a/trunk/drivers/acpi/events/evgpe.c b/trunk/drivers/acpi/events/evgpe.c index 056b78844829..e22f4a973c0f 100644 --- a/trunk/drivers/acpi/events/evgpe.c +++ b/trunk/drivers/acpi/events/evgpe.c @@ -270,18 +270,18 @@ acpi_status acpi_ev_disable_gpe(struct acpi_gpe_event_info *gpe_event_info) case ACPI_GPE_TYPE_WAKE_RUN: ACPI_CLEAR_BIT(gpe_event_info->flags, ACPI_GPE_WAKE_ENABLED); - /* fallthrough */ + /*lint -fallthrough */ case ACPI_GPE_TYPE_RUNTIME: /* Disable the requested runtime GPE */ ACPI_CLEAR_BIT(gpe_event_info->flags, ACPI_GPE_RUN_ENABLED); - - /* fallthrough */ + status = acpi_hw_write_gpe_enable_reg(gpe_event_info); + break; default: - acpi_hw_write_gpe_enable_reg(gpe_event_info); + return_ACPI_STATUS(AE_BAD_PARAMETER); } return_ACPI_STATUS(AE_OK);