On Tue, Apr 9, 2019 at 12:20 PM Hans de Goede <hdego...@redhat.com> wrote: > > Hi, > > On 09-04-19 11:47, Patrik Jakobsson wrote: > > On Tue, Apr 9, 2019 at 8:51 AM Hans de Goede <hdego...@redhat.com> wrote: > >> > >> 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. > > > > Hi Hans, > > Sometimes LVDS can be configured in the BIOS on CDV devices. Can you > > check that it's not just a bad BIOS configuration first? > > I've asked the reporter to test, but even if there is a BIOS option it > seems that the BIOS default setting is wrong and we cannot expect every > user to go into the BIOS to fix a wrong BIOS setting. > > According to this blogpost, which is about the Linux the device ships with: > https://astroweasel.blogspot.com/2016/02/updating-thecus-n5550-nas-to-report.html > > The pre-installed grub config includes 'video=LVDS-1:d' on the kernel > commandline, so this clearly seems to be a case where the system is just > shipping with a broken BIOS or at least with default BIOS settings which > is just as bad.
I agree that we should try to fix a broken default but are you sure this will only affect the n5550? IIUC Milstead / Granite Well is an Intel product / board name and perhaps some of those use LVDS. Also, if the pre-installed OS solves this on the cmdline then it's only a problem if the user is trying to install a custom OS on the device. I would expect such a user to be able to change bios settings. I'm not totally against this but not sure about the consequences. Is there perhaps a better dmi string to match against? > > Regards, > > Hans > > > > >> BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1665766 > >> Signed-off-by: Hans de Goede <hdego...@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 > >> _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel