diff options
author | Michał Kępień <kernel@kempniu.pl> | 2017-03-10 11:50:34 +0100 |
---|---|---|
committer | Darren Hart <dvhart@infradead.org> | 2017-03-14 22:57:17 -0700 |
commit | 1877e267b39eceac0499af11993bfe00819bb65b (patch) | |
tree | 76e22df6a39118556ca756f58c9522168b0890f0 | |
parent | b8d69c16a0bdc2cae1ad709f0a9e6a2484c457a9 (diff) | |
download | linux-stable-1877e267b39eceac0499af11993bfe00819bb65b.tar.gz linux-stable-1877e267b39eceac0499af11993bfe00819bb65b.tar.bz2 linux-stable-1877e267b39eceac0499af11993bfe00819bb65b.zip |
platform/x86: fujitsu-laptop: sync backlight power status in acpi_fujitsu_laptop_add()
Registering an ACPI driver does not mean the device it handles has to
exist. As the code which syncs backlight power status uses
call_fext_func(), it needs the FUJ02E3 ACPI device to be present, so
ensure that code is only run once the FUJ02E3 device is detected.
Signed-off-by: Michał Kępień <kernel@kempniu.pl>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-and-tested-by: Jonathan Woithe <jwoithe@just42.net>
-rw-r--r-- | drivers/platform/x86/fujitsu-laptop.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/platform/x86/fujitsu-laptop.c b/drivers/platform/x86/fujitsu-laptop.c index 897438f81f09..d96f739f8d85 100644 --- a/drivers/platform/x86/fujitsu-laptop.c +++ b/drivers/platform/x86/fujitsu-laptop.c @@ -947,6 +947,14 @@ static int acpi_fujitsu_laptop_add(struct acpi_device *device) /* Suspect this is a keymap of the application panel, print it */ pr_info("BTNI: [0x%x]\n", call_fext_func(FUNC_BUTTONS, 0x0, 0x0, 0x0)); + /* Sync backlight power status */ + if (acpi_video_get_backlight_type() == acpi_backlight_vendor) { + if (call_fext_func(FUNC_BACKLIGHT, 0x2, 0x4, 0x0) == 3) + fujitsu_bl->bl_device->props.power = FB_BLANK_POWERDOWN; + else + fujitsu_bl->bl_device->props.power = FB_BLANK_UNBLANK; + } + #if IS_ENABLED(CONFIG_LEDS_CLASS) if (call_fext_func(FUNC_LEDS, 0x0, 0x0, 0x0) & LOGOLAMP_POWERON) { result = led_classdev_register(&fujitsu_bl->pf_device->dev, @@ -1264,14 +1272,6 @@ static int __init fujitsu_init(void) if (ret) goto fail_laptop1; - /* Sync backlight power status (needs FUJ02E3 device, hence deferred) */ - if (acpi_video_get_backlight_type() == acpi_backlight_vendor) { - if (call_fext_func(FUNC_BACKLIGHT, 0x2, 0x4, 0x0) == 3) - fujitsu_bl->bl_device->props.power = FB_BLANK_POWERDOWN; - else - fujitsu_bl->bl_device->props.power = FB_BLANK_UNBLANK; - } - pr_info("driver " FUJITSU_DRIVER_VERSION " successfully loaded\n"); return 0; |