Re: [PATCH] acpi: video: fix reversed indexed BQC

Aaron Lu
2013-08-02T02:03:19Z

On 08/02/2013 07:34 AM, Felipe Contreras wrote:
> Commit 1a7c618 (ACPI video: support _BQC/_BCL/_BCM methods that use
> index values) assumed that bl->levels were not reverted, but at this
> point they already are, so there's no need to revert them yet again.

When acpi_video_bqc_value_to_level is called, bl->levels is not
reverted. Can you please point me the code path when it is called and
bl->levels were still reverted? I think we will need to fix that then.

-Aaron

>
> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
> ---
> drivers/acpi/video.c | 13 ++-----------
> 1 file changed, 2 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
> index 0ec434d..b27c049 100644
> --- a/drivers/acpi/video.c
> +++ b/drivers/acpi/video.c
> @@ -499,19 +499,10 @@ acpi_video_bqc_value_to_level(struct acpi_video_device *device,
> {
> unsigned long long level;
>
> - if (device->brightness->flags._BQC_use_index) {
> - /*
> - * _BQC returns an index that doesn't account for
> - * the first 2 items with special meaning, so we need
> - * to compensate for that by offsetting ourselves
> - */
> - if (device->brightness->flags._BCL_reversed)
> - bqc_value = device->brightness->count - 3 - bqc_value;
> -
> + if (device->brightness->flags._BQC_use_index)
> level = device->brightness->levels[bqc_value + 2];
> - } else {
> + else
> level = bqc_value;
> - }
>
> level += bqc_offset_aml_bug_workaround;
>
>