On Thu, 2010-01-28 at 02:02 +0800, Edward Shao wrote: > On Tue, Jan 26, 2010 at 8:58 AM, Zhang Rui <rui.zhang@xxxxxxxxx> wrote: > > On Mon, 2010-01-25 at 17:45 +0800, luke lin wrote: > >> Hi all, > >> > >> I read the drivers/acpi/video.c: > >> > >> 895 result = acpi_video_device_lcd_set_level(device, max_level); > >> 896 if (result) > >> 897 goto out_free_levels; > >> 898 > >> 899 result = acpi_video_device_lcd_get_level_current(device, &level); > >> 900 if (result) > >> 901 goto out_free_levels; > >> 902 > >> 903 br->flags._BQC_use_index = (level == max_level ? 0 : 1); > >> 904 > >> 905 if (!br->flags._BQC_use_index) { > >> 912 for (i = 2; i < br->count; i++) > >> 913 if (level_old == br->levels[i]) > >> 914 level = level_old; > >> 915 goto set_level; > >> 916 } > >> why after level == max_level, it will still need set_level again? > >> is this a bug, or it is necessary. > >> > > Because setting the backlight to max_level is just to check if _BQC uses > > indexed value. We need to set the backlight back after this is done. > > > > thanks, > > rui > > Hi~ > > I'm wondering why check (level == max_level) can make sure if _BQC > uses indexed value? > Is it possible that both level and max_level is indexed value? > If both _BQC and _BCL uses indexed value, then we don't need to treat them as indexed value. :p for example, _BCL returns {0, 1, 2, 3, 4, 5, ... }, the index of level n is n. If _BQC uses indexed value, it should returns n for level n. so this equals a BIOS that both _BCL and _BQC use percentage values. thanks, rui > Thank you very much. > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html