platform/x86: panasonic-laptop: Use acpi_video_get_backlight_type()
Use acpi_video_get_backlight_type() to determine if we should register the panasonic specific backlight interface. To avoid registering this on systems where the ACPI or GPU native backlight control methods should be used instead. Tested-by: Stefan Seyfried <seife+kernel@b1-systems.com> Tested-by: Kenneth Chan <kenneth.t.chan@gmail.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://lore.kernel.org/r/20220624112340.10130-8-hdegoede@redhat.com
This commit is contained in:
parent
5e24e1eca1
commit
4da4742236
@ -998,19 +998,23 @@ static int acpi_pcc_hotkey_add(struct acpi_device *device)
|
||||
pr_err("Couldn't retrieve BIOS data\n");
|
||||
goto out_input;
|
||||
}
|
||||
/* initialize backlight */
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.type = BACKLIGHT_PLATFORM;
|
||||
props.max_brightness = pcc->sinf[SINF_AC_MAX_BRIGHT];
|
||||
pcc->backlight = backlight_device_register("panasonic", NULL, pcc,
|
||||
&pcc_backlight_ops, &props);
|
||||
if (IS_ERR(pcc->backlight)) {
|
||||
result = PTR_ERR(pcc->backlight);
|
||||
goto out_input;
|
||||
}
|
||||
|
||||
/* read the initial brightness setting from the hardware */
|
||||
pcc->backlight->props.brightness = pcc->sinf[SINF_AC_CUR_BRIGHT];
|
||||
if (acpi_video_get_backlight_type() == acpi_backlight_vendor) {
|
||||
/* initialize backlight */
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.type = BACKLIGHT_PLATFORM;
|
||||
props.max_brightness = pcc->sinf[SINF_AC_MAX_BRIGHT];
|
||||
|
||||
pcc->backlight = backlight_device_register("panasonic", NULL, pcc,
|
||||
&pcc_backlight_ops, &props);
|
||||
if (IS_ERR(pcc->backlight)) {
|
||||
result = PTR_ERR(pcc->backlight);
|
||||
goto out_input;
|
||||
}
|
||||
|
||||
/* read the initial brightness setting from the hardware */
|
||||
pcc->backlight->props.brightness = pcc->sinf[SINF_AC_CUR_BRIGHT];
|
||||
}
|
||||
|
||||
/* Reset initial sticky key mode since the hardware register state is not consistent */
|
||||
acpi_pcc_write_sset(pcc, SINF_STICKY_KEY, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user