Subject: [PATCH] [acpi video] Add helper for setting LCD level - Add video_dev_set_lcd() that will set the brightness level of the LCD device, provided the level is in the list of supported devices. Signed-off-by: Patrick Mochel --- drivers/acpi/drivers/video/dev-device.c | 23 +++++++++++++++++++++++ drivers/acpi/drivers/video/video.h | 1 + 2 files changed, 24 insertions(+), 0 deletions(-) applies-to: 884a69c5938b151d8eb88e3cde390a3d2efdb477 42dd036c7661d2931e378755e55b3a42e394aa0f diff --git a/drivers/acpi/drivers/video/dev-device.c b/drivers/acpi/drivers/video/dev-device.c index 8b79528..4fe943e 100644 --- a/drivers/acpi/drivers/video/dev-device.c +++ b/drivers/acpi/drivers/video/dev-device.c @@ -219,6 +219,29 @@ static int lcd_init(struct acpi_video_de return ret; } +int video_dev_set_lcd(struct acpi_video_dev * vd, u32 level) +{ + int i; + + /* + * No need to do anything if we're already there.. + */ + if (level == vd->v_br_current) + return 0; + + /* + * Make sure it's a supported level + */ + for (i = 0; i < vd->v_br_num; i++) { + if (level == vd->v_br_levels[i]) + goto SetLevel; + } + return -EINVAL; + + SetLevel: + return set_int(vd->v_ad, "_BCM", level); +} + static int hotkey_init(struct acpi_video_dev * vd) { diff --git a/drivers/acpi/drivers/video/video.h b/drivers/acpi/drivers/video/video.h index 4453576..eea10f3 100644 --- a/drivers/acpi/drivers/video/video.h +++ b/drivers/acpi/drivers/video/video.h @@ -78,6 +78,7 @@ extern int video_dev_edid(struct acpi_vi extern int video_dev_get_state(struct acpi_video_dev *, u32 *, u32 *); extern int video_dev_set_state(struct acpi_video_dev * vd, u32 output_state); +extern int video_dev_set_lcd(struct acpi_video_dev * vd, u32 level); extern int video_bus_attach(struct acpi_video_dev * vd); extern void video_bus_detach(struct acpi_video_dev * vd); --- 0.99.9.GIT