On 03/03/2015 03:39 PM, Hans de Goede wrote: > The native backlight behavior (so not registering both the acpi-video and the > vendor backlight driver) can be useful on some non win8 machines too, allow > the user to force this behavior by passing video.use_native_backlight=2 > on the kernel commandline. Just bikeshedding, what about doing it this way? In the acpi_video_use_native_backlight function: 1 If user has set a cmdline option, use that(no matter if it is a win8 system or not); 2 If the system is in a DMI table, use that(no matter if it is a win8 system or not); 3 return true if this is a win8 system; false otherwise. Something like this: diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c index debd30917010..4cd0c8a4fd9d 100644 --- a/drivers/acpi/video.c +++ b/drivers/acpi/video.c @@ -84,7 +84,7 @@ module_param(allow_duplicates, bool, 0644); */ static int use_native_backlight_param = -1; module_param_named(use_native_backlight, use_native_backlight_param, int, 0444); -static bool use_native_backlight_dmi = true; +static int use_native_backlight_dmi = -1; static int register_count; static struct mutex video_list_lock; @@ -239,13 +239,14 @@ static bool acpi_video_use_native_backlight(void) { if (use_native_backlight_param != -1) return use_native_backlight_param; - else + else if (use_native_backlight_dmi != -1) return use_native_backlight_dmi; + return acpi_osi_is_win8(); } bool acpi_video_verify_backlight_support(void) { - if (acpi_osi_is_win8() && acpi_video_use_native_backlight() && + if (acpi_video_use_native_backlight() && backlight_device_registered(BACKLIGHT_RAW)) return false; return acpi_video_backlight_support(); @@ -414,7 +415,7 @@ static int __init video_set_bqc_offset(const struct dmi_system_id *d) static int __init video_disable_native_backlight(const struct dmi_system_id *d) { - use_native_backlight_dmi = false; + use_native_backlight_dmi = 0; return 0; } Regards, Aaron > > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > --- > drivers/acpi/video.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c > index debd309..9817b52 100644 > --- a/drivers/acpi/video.c > +++ b/drivers/acpi/video.c > @@ -84,7 +84,7 @@ module_param(allow_duplicates, bool, 0644); > */ > static int use_native_backlight_param = -1; > module_param_named(use_native_backlight, use_native_backlight_param, int, 0444); > -static bool use_native_backlight_dmi = true; > +static int use_native_backlight_dmi = 1; > > static int register_count; > static struct mutex video_list_lock; > @@ -235,7 +235,7 @@ static int acpi_video_get_next_level(struct acpi_video_device *device, > u32 level_current, u32 event); > static void acpi_video_switch_brightness(struct work_struct *work); > > -static bool acpi_video_use_native_backlight(void) > +static int acpi_video_use_native_backlight(void) > { > if (use_native_backlight_param != -1) > return use_native_backlight_param; > @@ -245,7 +245,8 @@ static bool acpi_video_use_native_backlight(void) > > bool acpi_video_verify_backlight_support(void) > { > - if (acpi_osi_is_win8() && acpi_video_use_native_backlight() && > + if (((acpi_video_use_native_backlight() == 2) || > + (acpi_video_use_native_backlight() == 1 && acpi_osi_is_win8())) && > backlight_device_registered(BACKLIGHT_RAW)) > return false; > return acpi_video_backlight_support(); > @@ -414,7 +415,7 @@ static int __init video_set_bqc_offset(const struct dmi_system_id *d) > > static int __init video_disable_native_backlight(const struct dmi_system_id *d) > { > - use_native_backlight_dmi = false; > + use_native_backlight_dmi = 0; > return 0; > } > > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html