Skip to content

Commit

Permalink
thinkpad-acpi: untangle ACPI/vendor backlight selection
Browse files Browse the repository at this point in the history
acpi_video_backlight_support() already tells us if ACPI is handling
backlight control through the generic ACPI handle.  It is better to just
trust it.

While at it, adjust down a printk priority, and test earlier for
brightness_enable=0.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
  • Loading branch information
Henrique de Moraes Holschuh authored and Matthew Garrett committed Aug 16, 2010
1 parent 122f267 commit 217f096
Showing 2 changed files with 24 additions and 22 deletions.
4 changes: 4 additions & 0 deletions Documentation/laptops/thinkpad-acpi.txt
Original file line number Diff line number Diff line change
@@ -1024,6 +1024,10 @@ ThinkPad-specific interface. The driver will disable its native
backlight brightness control interface if it detects that the standard
ACPI interface is available in the ThinkPad.

If you want to use the thinkpad-acpi backlight brightness control
instead of the generic ACPI video backlight brightness control for some
reason, you should use the acpi_backlight=vendor kernel parameter.

The brightness_enable module parameter can be used to control whether
the LCD brightness control feature will be enabled when available.
brightness_enable=0 forces it to be disabled. brightness_enable=1
42 changes: 20 additions & 22 deletions drivers/platform/x86/thinkpad_acpi.c
Original file line number Diff line number Diff line change
@@ -6216,35 +6216,33 @@ static int __init brightness_init(struct ibm_init_struct *iibm)
if (tp_features.bright_unkfw)
return 1;

if (tp_features.bright_acpimode) {
if (acpi_video_backlight_support()) {
if (brightness_enable > 1) {
printk(TPACPI_NOTICE
"Standard ACPI backlight interface "
"available, not loading native one.\n");
return 1;
} else if (brightness_enable == 1) {
printk(TPACPI_NOTICE
"Backlight control force enabled, even if standard "
"ACPI backlight interface is available\n");
}
} else {
if (brightness_enable > 1) {
printk(TPACPI_NOTICE
"Standard ACPI backlight interface not "
"available, thinkpad_acpi native "
"brightness control enabled\n");
}
}
}

if (!brightness_enable) {
dbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_BRGHT,
"brightness support disabled by "
"module parameter\n");
return 1;
}

if (acpi_video_backlight_support()) {
if (brightness_enable > 1) {
printk(TPACPI_INFO
"Standard ACPI backlight interface "
"available, not loading native one.\n");
return 1;
} else if (brightness_enable == 1) {
printk(TPACPI_WARN
"Cannot enable backlight brightness support, "
"ACPI is already handling it. Refer to the "
"acpi_backlight kernel parameter\n");
return 1;
}
} else if (tp_features.bright_acpimode && brightness_enable > 1) {
printk(TPACPI_NOTICE
"Standard ACPI backlight interface not "
"available, thinkpad_acpi native "
"brightness control enabled\n");
}

/*
* Check for module parameter bogosity, note that we
* init brightness_mode to TPACPI_BRGHT_MODE_MAX in order to be

0 comments on commit 217f096

Please sign in to comment.