|
@@ -353,6 +353,7 @@ struct samsung_quirks {
|
|
|
bool broken_acpi_video;
|
|
|
bool four_kbd_backlight_levels;
|
|
|
bool enable_kbd_backlight;
|
|
|
+ bool use_native_backlight;
|
|
|
};
|
|
|
|
|
|
static struct samsung_quirks samsung_unknown = {};
|
|
@@ -361,6 +362,10 @@ static struct samsung_quirks samsung_broken_acpi_video = {
|
|
|
.broken_acpi_video = true,
|
|
|
};
|
|
|
|
|
|
+static struct samsung_quirks samsung_use_native_backlight = {
|
|
|
+ .use_native_backlight = true,
|
|
|
+};
|
|
|
+
|
|
|
static struct samsung_quirks samsung_np740u3e = {
|
|
|
.four_kbd_backlight_levels = true,
|
|
|
.enable_kbd_backlight = true,
|
|
@@ -1507,7 +1512,7 @@ static struct dmi_system_id __initdata samsung_dmi_table[] = {
|
|
|
DMI_MATCH(DMI_PRODUCT_NAME, "N150P"),
|
|
|
DMI_MATCH(DMI_BOARD_NAME, "N150P"),
|
|
|
},
|
|
|
- .driver_data = &samsung_broken_acpi_video,
|
|
|
+ .driver_data = &samsung_use_native_backlight,
|
|
|
},
|
|
|
{
|
|
|
.callback = samsung_dmi_matched,
|
|
@@ -1517,7 +1522,7 @@ static struct dmi_system_id __initdata samsung_dmi_table[] = {
|
|
|
DMI_MATCH(DMI_PRODUCT_NAME, "N145P/N250P/N260P"),
|
|
|
DMI_MATCH(DMI_BOARD_NAME, "N145P/N250P/N260P"),
|
|
|
},
|
|
|
- .driver_data = &samsung_broken_acpi_video,
|
|
|
+ .driver_data = &samsung_use_native_backlight,
|
|
|
},
|
|
|
{
|
|
|
.callback = samsung_dmi_matched,
|
|
@@ -1557,7 +1562,7 @@ static struct dmi_system_id __initdata samsung_dmi_table[] = {
|
|
|
DMI_MATCH(DMI_PRODUCT_NAME, "N250P"),
|
|
|
DMI_MATCH(DMI_BOARD_NAME, "N250P"),
|
|
|
},
|
|
|
- .driver_data = &samsung_broken_acpi_video,
|
|
|
+ .driver_data = &samsung_use_native_backlight,
|
|
|
},
|
|
|
{
|
|
|
.callback = samsung_dmi_matched,
|
|
@@ -1616,6 +1621,15 @@ static int __init samsung_init(void)
|
|
|
pr_info("Disabling ACPI video driver\n");
|
|
|
acpi_video_unregister();
|
|
|
}
|
|
|
+
|
|
|
+ if (samsung->quirks->use_native_backlight) {
|
|
|
+ pr_info("Using native backlight driver\n");
|
|
|
+ /* Tell acpi-video to not handle the backlight */
|
|
|
+ acpi_video_dmi_promote_vendor();
|
|
|
+ acpi_video_unregister();
|
|
|
+ /* And also do not handle it ourselves */
|
|
|
+ samsung->handle_backlight = false;
|
|
|
+ }
|
|
|
#endif
|
|
|
|
|
|
ret = samsung_platform_init(samsung);
|