Loading drivers/acpi/video.c +22 −8 Original line number Diff line number Diff line Loading @@ -409,14 +409,17 @@ acpi_video_device_lcd_query_levels(struct acpi_video_device *device, static int acpi_video_device_lcd_set_level(struct acpi_video_device *device, int level) { int status; int status = AE_OK; union acpi_object arg0 = { ACPI_TYPE_INTEGER }; struct acpi_object_list args = { 1, &arg0 }; arg0.integer.value = level; status = acpi_evaluate_object(device->dev->handle, "_BCM", &args, NULL); if (device->cap._BCM) status = acpi_evaluate_object(device->dev->handle, "_BCM", &args, NULL); device->brightness->curr = level; return status; } Loading @@ -424,11 +427,11 @@ static int acpi_video_device_lcd_get_level_current(struct acpi_video_device *device, unsigned long *level) { int status; status = acpi_evaluate_integer(device->dev->handle, "_BQC", NULL, level); return status; if (device->cap._BQC) return acpi_evaluate_integer(device->dev->handle, "_BQC", NULL, level); *level = device->brightness->curr; return AE_OK; } static int Loading Loading @@ -1633,9 +1636,20 @@ static int acpi_video_get_next_level(struct acpi_video_device *device, u32 level_current, u32 event) { int min, max, min_above, max_below, i, l; int min, max, min_above, max_below, i, l, delta = 255; max = max_below = 0; min = min_above = 255; /* Find closest level to level_current */ for (i = 0; i < device->brightness->count; i++) { l = device->brightness->levels[i]; if (abs(l - level_current) < abs(delta)) { delta = l - level_current; if (!delta) break; } } /* Ajust level_current to closest available level */ level_current += delta; for (i = 0; i < device->brightness->count; i++) { l = device->brightness->levels[i]; if (l < min) Loading Loading
drivers/acpi/video.c +22 −8 Original line number Diff line number Diff line Loading @@ -409,14 +409,17 @@ acpi_video_device_lcd_query_levels(struct acpi_video_device *device, static int acpi_video_device_lcd_set_level(struct acpi_video_device *device, int level) { int status; int status = AE_OK; union acpi_object arg0 = { ACPI_TYPE_INTEGER }; struct acpi_object_list args = { 1, &arg0 }; arg0.integer.value = level; status = acpi_evaluate_object(device->dev->handle, "_BCM", &args, NULL); if (device->cap._BCM) status = acpi_evaluate_object(device->dev->handle, "_BCM", &args, NULL); device->brightness->curr = level; return status; } Loading @@ -424,11 +427,11 @@ static int acpi_video_device_lcd_get_level_current(struct acpi_video_device *device, unsigned long *level) { int status; status = acpi_evaluate_integer(device->dev->handle, "_BQC", NULL, level); return status; if (device->cap._BQC) return acpi_evaluate_integer(device->dev->handle, "_BQC", NULL, level); *level = device->brightness->curr; return AE_OK; } static int Loading Loading @@ -1633,9 +1636,20 @@ static int acpi_video_get_next_level(struct acpi_video_device *device, u32 level_current, u32 event) { int min, max, min_above, max_below, i, l; int min, max, min_above, max_below, i, l, delta = 255; max = max_below = 0; min = min_above = 255; /* Find closest level to level_current */ for (i = 0; i < device->brightness->count; i++) { l = device->brightness->levels[i]; if (abs(l - level_current) < abs(delta)) { delta = l - level_current; if (!delta) break; } } /* Ajust level_current to closest available level */ level_current += delta; for (i = 0; i < device->brightness->count; i++) { l = device->brightness->levels[i]; if (l < min) Loading