public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH]: ACPI: Skip the first two elements in the _BCL package
@ 2009-02-02  3:33 yakui_zhao
  2009-02-03  3:39 ` Len Brown
  2009-02-03 13:56 ` Thomas Renninger
  0 siblings, 2 replies; 9+ messages in thread
From: yakui_zhao @ 2009-02-02  3:33 UTC (permalink / raw)
  To: lenb; +Cc: linux-acpi

Subject: ACPI: Skip the first two elements in the _BCL package
From: Zhao Yakui <yakui.zhao@intel.com> 
   According to the Spec the first two elements in the _BCL package won't be
regarded as the available brightness level. The first is the brightness when 
full power is connected to the box(It means that the AC adapter is plugged).
The second is the brightness level when the box is on battery.
    If the first two elements are still used while finding the next brightness
level, it will fall back to the lowest level when keeping on pressing 
hotkey. (On some boxes the brightness will be changed twice when hotkey is
pressed once. One is in the ACPI video driver. The other is changed by sys I/F.
In the ACPI video driver the first two elements will be used while changing
the brightness. But the first two elements is skipped while using sys I/F.
In such case there exists the inconsistency).
    So he first two elements had better be skipped while showing the available
brightness or finding the next brightness level.
     
http://bugzilla.kernel.org/show_bug.cgi?id=12450

Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
cc: Zhang Rui <rui.zhang@intel.com>
---
 drivers/acpi/video.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Index: linux-2.6/drivers/acpi/video.c
===================================================================
--- linux-2.6.orig/drivers/acpi/video.c	2009-01-23 14:47:25.000000000 +0800
+++ linux-2.6/drivers/acpi/video.c	2009-02-02 11:11:55.000000000 +0800
@@ -1020,7 +1020,7 @@
 	}
 
 	seq_printf(seq, "levels: ");
-	for (i = 0; i < dev->brightness->count; i++)
+	for (i = 2; i < dev->brightness->count; i++)
 		seq_printf(seq, " %d", dev->brightness->levels[i]);
 	seq_printf(seq, "\ncurrent: %d\n", dev->brightness->curr);
 
@@ -1059,7 +1059,7 @@
 		return -EFAULT;
 
 	/* validate through the list of available levels */
-	for (i = 0; i < dev->brightness->count; i++)
+	for (i = 2; i < dev->brightness->count; i++)
 		if (level == dev->brightness->levels[i]) {
 			if (ACPI_SUCCESS
 			    (acpi_video_device_lcd_set_level(dev, level)))
@@ -1712,7 +1712,7 @@
 	max = max_below = 0;
 	min = min_above = 255;
 	/* Find closest level to level_current */
-	for (i = 0; i < device->brightness->count; i++) {
+	for (i = 2; i < device->brightness->count; i++) {
 		l = device->brightness->levels[i];
 		if (abs(l - level_current) < abs(delta)) {
 			delta = l - level_current;
@@ -1722,7 +1722,7 @@
 	}
 	/* Ajust level_current to closest available level */
 	level_current += delta;
-	for (i = 0; i < device->brightness->count; i++) {
+	for (i = 2; i < device->brightness->count; i++) {
 		l = device->brightness->levels[i];
 		if (l < min)
 			min = l;



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-02-04  6:09 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-02  3:33 [PATCH]: ACPI: Skip the first two elements in the _BCL package yakui_zhao
2009-02-03  3:39 ` Len Brown
2009-02-03 13:56 ` Thomas Renninger
2009-02-04  1:50   ` yakui_zhao
2009-02-04  4:25     ` Len Brown
2009-02-04  6:06       ` yakui_zhao
2009-02-04  6:08       ` Matthew Garrett
2009-02-04  4:09   ` Len Brown
2009-02-04  6:09     ` Matthew Garrett

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox