@@ -132,6 +132,45 @@ find_video(acpi_handle handle, u32 lvl, void *context, void **rv)
return AE_OK;
}
+static struct dmi_system_id backlight_vendor_dmi_table[] = {
+ {
+ .ident = "Positivo M13",
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "POSITIVO"),
+ DMI_MATCH(DMI_BOARD_NAME, "M13"),
+ },
+ },
+ {
+ .ident = "Positivo M14",
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "POSITIVO"),
+ DMI_MATCH(DMI_BOARD_NAME, "M14"),
+ },
+ },
+ {
+ .ident = "Positivo A14IM01",
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "POSITIVO"),
+ DMI_MATCH(DMI_BOARD_NAME, "A14IM01"),
+ },
+ },
+ {
+ .ident = "Positivo J14IM21",
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "POSITIVO"),
+ DMI_MATCH(DMI_BOARD_NAME, "J14IM21"),
+ },
+ },
+ {
+ .ident = "Positivo SINM10BZ",
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Positivo Informatica SA"),
+ DMI_MATCH(DMI_BOARD_NAME, "POS-SINM10BZ"),
+ },
+ },
+ {}
+};
+
/*
* Returns the video capabilities of a specific ACPI graphics device
*
@@ -156,16 +195,13 @@ long acpi_video_get_capabilities(acpi_handle graphics_handle)
/* There might be boot param flags set already... */
acpi_video_support |= caps;
acpi_video_caps_checked = 1;
- /* Add blacklists here. Be careful to use the right *DMI* bits
- * to still be able to override logic via boot params, e.g.:
- *
- * if (dmi_name_in_vendors("XY")) {
- * acpi_video_support |=
- * ACPI_VIDEO_OUTPUT_SWITCHING_DMI_VENDOR;
- * acpi_video_support |=
- * ACPI_VIDEO_BACKLIGHT_DMI_VENDOR;
- *}
- */
+ /* Add blacklists here (systems which don't work properly with
+ * acpi video and needs a special platform driver) */
+ if (dmi_check_system(backlight_vendor_dmi_table))
+ acpi_video_support |= ACPI_VIDEO_BACKLIGHT_DMI_VENDOR;
+ /*if (dmi_check_system(output_switching_vendor_dmi_table))
+ acpi_video_support |=
+ ACPI_VIDEO_OUTPUT_SWITCHING_DMI_VENDOR;*/
} else {
status = acpi_bus_get_device(graphics_handle, &tmp_dev);
if (ACPI_FAILURE(status)) {