Skip to content

Commit

Permalink
ACPI processor: introduce module parameter processor.ignore_tpc
Browse files Browse the repository at this point in the history
Introduce module parameter processor.ignore_tpc.

Some laptops are shipped with buggy _TPC,
this module parameter is used to to disable the buggy support.

http://bugzilla.kernel.org/show_bug.cgi?id=13259

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Tested-by: James Ettle <theholyettlz@googlemail.com>
Signed-off-by: Len Brown <len.brown@intel.com>
  • Loading branch information
Zhang Rui authored and Len Brown committed May 16, 2009
1 parent 091bf76 commit 56c213f
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions drivers/acpi/processor_throttling.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,14 @@
#define _COMPONENT ACPI_PROCESSOR_COMPONENT
ACPI_MODULE_NAME("processor_throttling");

/* ignore_tpc:
* 0 -> acpi processor driver doesn't ignore _TPC values
* 1 -> acpi processor driver ignores _TPC values
*/
static int ignore_tpc;
module_param(ignore_tpc, int, 0644);
MODULE_PARM_DESC(ignore_tpc, "Disable broken BIOS _TPC throttling support");

struct throttling_tstate {
unsigned int cpu; /* cpu nr */
int target_state; /* target T-state */
Expand Down Expand Up @@ -283,13 +291,19 @@ static int acpi_processor_get_platform_limit(struct acpi_processor *pr)

if (!pr)
return -EINVAL;

if (ignore_tpc)
goto end;

status = acpi_evaluate_integer(pr->handle, "_TPC", NULL, &tpc);
if (ACPI_FAILURE(status)) {
if (status != AE_NOT_FOUND) {
ACPI_EXCEPTION((AE_INFO, status, "Evaluating _TPC"));
}
return -ENODEV;
}

end:
pr->throttling_platform_limit = (int)tpc;
return 0;
}
Expand All @@ -302,6 +316,9 @@ int acpi_processor_tstate_has_changed(struct acpi_processor *pr)
struct acpi_processor_limit *limit;
int target_state;

if (ignore_tpc)
return 0;

result = acpi_processor_get_platform_limit(pr);
if (result) {
/* Throttling Limit is unsupported */
Expand Down

0 comments on commit 56c213f

Please sign in to comment.