[PATCH] drm/gma500: Add CedarView LVDS blacklist
Hans de Goede
hdegoede at redhat.com
Tue Apr 9 06:51:23 UTC 2019
Some CedarView VBT-s claim that there is a LVDS panel, while there is none.
Specifically this happens on the Thecus N2800 / N5550 NAS models.
This commit adds a LVDS blacklist to deal with this and adds an entry for
the Thecus NAS-es.
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1665766
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
---
drivers/gpu/drm/gma500/cdv_intel_lvds.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c
index de9531caaca0..268643af114c 100644
--- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c
+++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c
@@ -572,6 +572,20 @@ static bool lvds_is_present_in_vbt(struct drm_device *dev,
return false;
}
+static const struct dmi_system_id cdv_intel_lvds_blacklist[] = {
+ {
+ /* Thecus N2800 and N5550 family NAS-es */
+ .matches = {
+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Milstead Platform"),
+ DMI_EXACT_MATCH(DMI_BOARD_NAME, "Granite Well"),
+ /* BIOS version is CDV_T<version> X64 */
+ DMI_MATCH(DMI_BIOS_VERSION, "CDV_T"),
+ },
+ },
+ {}
+};
+
/**
* cdv_intel_lvds_init - setup LVDS connectors on this device
* @dev: drm device
@@ -594,6 +608,15 @@ void cdv_intel_lvds_init(struct drm_device *dev,
int pipe;
u8 pin;
+ /*
+ * Check blacklist for machines with BIOSes that list an LVDS panel
+ * without actually having one.
+ */
+ if (dmi_check_system(cdv_intel_lvds_blacklist)) {
+ dev_info(&dev->pdev->dev, "System is on LVDS blacklist, skipping LVDS panel detection\n");
+ return;
+ }
+
pin = GMBUS_PORT_PANEL;
if (!lvds_is_present_in_vbt(dev, &pin)) {
DRM_DEBUG_KMS("LVDS is not present in VBT\n");
--
2.21.0
More information about the dri-devel
mailing list