aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrique de Moraes Holschuh <hmh@hmh.eng.br>2007-04-24 10:48:20 -0400
committerLen Brown <len.brown@intel.com>2007-04-25 02:00:27 -0400
commit7d5a015eece8be9186d3613d595643a520555e33 (patch)
tree7ce09f4b768e2d471daa6a26ef7336965972004f
parentb616004c70dd7f60a1477c3e9d6fddd00ee1fa37 (diff)
ACPI: thinkpad-acpi: update brightness sysfs interface support
Update the brightness sysfs interface (done through the backlight class) to be in line with the rest of the thinkpad-acpi driver. This renames the incorrect, un-obvious, and clash-prone name of "ibm" for the backlight device to a much more fitting and descriptive "thinkpad_screen". This is something I wanted to do for quite a while... Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br> Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r--Documentation/thinkpad-acpi.txt52
-rw-r--r--drivers/misc/thinkpad_acpi.c5
-rw-r--r--drivers/misc/thinkpad_acpi.h2
3 files changed, 51 insertions, 8 deletions
diff --git a/Documentation/thinkpad-acpi.txt b/Documentation/thinkpad-acpi.txt
index 352e8aee63fe..eab4997efc0f 100644
--- a/Documentation/thinkpad-acpi.txt
+++ b/Documentation/thinkpad-acpi.txt
@@ -611,19 +611,59 @@ registers contain the current battery capacity, etc. If you experiment
611with this, do send me your results (including some complete dumps with 611with this, do send me your results (including some complete dumps with
612a description of the conditions when they were taken.) 612a description of the conditions when they were taken.)
613 613
614LCD brightness control -- /proc/acpi/ibm/brightness 614LCD brightness control
615--------------------------------------------------- 615----------------------
616
617procfs: /proc/acpi/ibm/brightness
618sysfs backlight device "thinkpad_screen"
616 619
617This feature allows software control of the LCD brightness on ThinkPad 620This feature allows software control of the LCD brightness on ThinkPad
618models which don't have a hardware brightness slider. The available 621models which don't have a hardware brightness slider.
619commands are: 622
623It has some limitations: the LCD backlight cannot be actually turned on or off
624by this interface, and in many ThinkPad models, the "dim while on battery"
625functionality will be enabled by the BIOS when this interface is used, and
626cannot be controlled.
627
628The backlight control has eight levels, ranging from 0 to 7. Some of the
629levels may not be distinct.
630
631Procfs notes:
632
633 The available commands are:
620 634
621 echo up >/proc/acpi/ibm/brightness 635 echo up >/proc/acpi/ibm/brightness
622 echo down >/proc/acpi/ibm/brightness 636 echo down >/proc/acpi/ibm/brightness
623 echo 'level <level>' >/proc/acpi/ibm/brightness 637 echo 'level <level>' >/proc/acpi/ibm/brightness
624 638
625The <level> number range is 0 to 7, although not all of them may be 639Sysfs notes:
626distinct. The current brightness level is shown in the file. 640
641The interface is implemented through the backlight sysfs class, which is poorly
642documented at this time.
643
644Locate the thinkpad_screen device under /sys/class/backlight, and inside it
645there will be the following attributes:
646
647 max_brightness:
648 Reads the maximum brightness the hardware can be set to.
649 The minimum is always zero.
650
651 actual_brightness:
652 Reads what brightness the screen is set to at this instant.
653
654 brightness:
655 Writes request the driver to change brightness to the given
656 value. Reads will tell you what brightness the driver is trying
657 to set the display to when "power" is set to zero and the display
658 has not been dimmed by a kernel power management event.
659
660 power:
661 power management mode, where 0 is "display on", and 1 to 3 will
662 dim the display backlight to brightness level 0 because
663 thinkpad-acpi cannot really turn the backlight off. Kernel
664 power management events can temporarily increase the current
665 power management level, i.e. they can dim the display.
666
627 667
628Volume control -- /proc/acpi/ibm/volume 668Volume control -- /proc/acpi/ibm/volume
629--------------------------------------- 669---------------------------------------
diff --git a/drivers/misc/thinkpad_acpi.c b/drivers/misc/thinkpad_acpi.c
index ba749df189ab..c0a023cc5ded 100644
--- a/drivers/misc/thinkpad_acpi.c
+++ b/drivers/misc/thinkpad_acpi.c
@@ -2414,8 +2414,9 @@ static int __init brightness_init(struct ibm_init_struct *iibm)
2414 if (b < 0) 2414 if (b < 0)
2415 return b; 2415 return b;
2416 2416
2417 ibm_backlight_device = backlight_device_register("ibm", NULL, NULL, 2417 ibm_backlight_device = backlight_device_register(
2418 &ibm_backlight_data); 2418 TPACPI_BACKLIGHT_DEV_NAME, NULL, NULL,
2419 &ibm_backlight_data);
2419 if (IS_ERR(ibm_backlight_device)) { 2420 if (IS_ERR(ibm_backlight_device)) {
2420 printk(IBM_ERR "Could not register backlight device\n"); 2421 printk(IBM_ERR "Could not register backlight device\n");
2421 return PTR_ERR(ibm_backlight_device); 2422 return PTR_ERR(ibm_backlight_device);
diff --git a/drivers/misc/thinkpad_acpi.h b/drivers/misc/thinkpad_acpi.h
index 2fe4d61cc27f..8348fc653009 100644
--- a/drivers/misc/thinkpad_acpi.h
+++ b/drivers/misc/thinkpad_acpi.h
@@ -296,6 +296,8 @@ static int bluetooth_write(char *buf);
296 * Brightness (backlight) subdriver 296 * Brightness (backlight) subdriver
297 */ 297 */
298 298
299#define TPACPI_BACKLIGHT_DEV_NAME "thinkpad_screen"
300
299static struct backlight_device *ibm_backlight_device; 301static struct backlight_device *ibm_backlight_device;
300static int brightness_offset = 0x31; 302static int brightness_offset = 0x31;
301 303