diff mbox series

drm/gma500: Add CedarView LVDS blacklist

Message ID 20190409065123.4174-1-hdegoede@redhat.com (mailing list archive)
State New, archived
Headers show
Series drm/gma500: Add CedarView LVDS blacklist | expand

Commit Message

Hans de Goede April 9, 2019, 6:51 a.m. UTC
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@redhat.com>
---
 drivers/gpu/drm/gma500/cdv_intel_lvds.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

Comments

Patrik Jakobsson April 9, 2019, 9:47 a.m. UTC | #1
On Tue, Apr 9, 2019 at 8:51 AM Hans de Goede <hdegoede@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?

Thanks
Patrik

>
> BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1665766
> Signed-off-by: Hans de Goede <hdegoede@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
>
Hans de Goede April 9, 2019, 10:20 a.m. UTC | #2
Hi,

On 09-04-19 11:47, Patrik Jakobsson wrote:
> On Tue, Apr 9, 2019 at 8:51 AM Hans de Goede <hdegoede@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.

Regards,

Hans



>> BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1665766
>> Signed-off-by: Hans de Goede <hdegoede@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
>>
Patrik Jakobsson April 9, 2019, 12:05 p.m. UTC | #3
On Tue, Apr 9, 2019 at 12:20 PM Hans de Goede <hdegoede@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 <hdegoede@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 <hdegoede@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
> >>
Hans de Goede April 9, 2019, 2:44 p.m. UTC | #4
Hi,

On 09-04-19 14:05, Patrik Jakobsson wrote:
> On Tue, Apr 9, 2019 at 12:20 PM Hans de Goede <hdegoede@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 <hdegoede@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.

Milstead is the name of Intel's NAS reference design:

https://www.hardwarezone.com.my/tech-news-intel-unveils-milstead-platform-nas-devices

I seriously doubt that any NAS-es have a LVDS (laptop/tablet) LCD panel.

> 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?

No there are no better DMI strings to match against I'm afraid.

Regards,

Hans



>>>> BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1665766
>>>> Signed-off-by: Hans de Goede <hdegoede@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
>>>>
Dominik 'Rathann' Mierzejewski April 9, 2019, 7:31 p.m. UTC | #5
Hello,

On Tuesday, 09 April 2019 at 16:44, Hans de Goede wrote:
> Hi,
> 
> On 09-04-19 14:05, Patrik Jakobsson wrote:
> > On Tue, Apr 9, 2019 at 12:20 PM Hans de Goede <hdegoede@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 <hdegoede@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.
> 
> Milstead is the name of Intel's NAS reference design:
> 
> https://www.hardwarezone.com.my/tech-news-intel-unveils-milstead-platform-nas-devices
> 
> I seriously doubt that any NAS-es have a LVDS (laptop/tablet) LCD panel.
> 
> > 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?
> 
> No there are no better DMI strings to match against I'm afraid.

I did load default settings in BIOS setup and there's no change in
behaviour. LVDS gets detected as connected:
$ cat /sys/class/drm/card0-LVDS-1/status 
connected

Only VGA output is physically connected at the moment.

Regards,
Dominik
Hans de Goede April 10, 2019, 7:27 a.m. UTC | #6
Hi,

On 09-04-19 21:31, Dominik 'Rathann' Mierzejewski wrote:
> Hello,
> 
> On Tuesday, 09 April 2019 at 16:44, Hans de Goede wrote:
>> Hi,
>>
>> On 09-04-19 14:05, Patrik Jakobsson wrote:
>>> On Tue, Apr 9, 2019 at 12:20 PM Hans de Goede <hdegoede@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 <hdegoede@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.
>>
>> Milstead is the name of Intel's NAS reference design:
>>
>> https://www.hardwarezone.com.my/tech-news-intel-unveils-milstead-platform-nas-devices
>>
>> I seriously doubt that any NAS-es have a LVDS (laptop/tablet) LCD panel.
>>
>>> 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?
>>
>> No there are no better DMI strings to match against I'm afraid.
> 
> I did load default settings in BIOS setup and there's no change in
> behaviour. LVDS gets detected as connected:
> $ cat /sys/class/drm/card0-LVDS-1/status
> connected
> 
> Only VGA output is physically connected at the moment.

To be clear what Dominik means here is that he has a VGA monitor
connected. There is no LVDS panel in this device at all.

Regards,

Hans
Patrik Jakobsson April 10, 2019, 9 a.m. UTC | #7
On Wed, Apr 10, 2019 at 9:27 AM Hans de Goede <hdegoede@redhat.com> wrote:
>
> Hi,
>
> On 09-04-19 21:31, Dominik 'Rathann' Mierzejewski wrote:
> > Hello,
> >
> > On Tuesday, 09 April 2019 at 16:44, Hans de Goede wrote:
> >> Hi,
> >>
> >> On 09-04-19 14:05, Patrik Jakobsson wrote:
> >>> On Tue, Apr 9, 2019 at 12:20 PM Hans de Goede <hdegoede@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 <hdegoede@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.
> >>
> >> Milstead is the name of Intel's NAS reference design:
> >>
> >> https://www.hardwarezone.com.my/tech-news-intel-unveils-milstead-platform-nas-devices
> >>
> >> I seriously doubt that any NAS-es have a LVDS (laptop/tablet) LCD panel.
> >>
> >>> 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?
> >>
> >> No there are no better DMI strings to match against I'm afraid.
> >
> > I did load default settings in BIOS setup and there's no change in
> > behaviour. LVDS gets detected as connected:
> > $ cat /sys/class/drm/card0-LVDS-1/status
> > connected
> >
> > Only VGA output is physically connected at the moment.
>
> To be clear what Dominik means here is that he has a VGA monitor
> connected. There is no LVDS panel in this device at all.

Thanks for testing. I dusted off my DN2800MT and tried turning LVDS
on/off in the BIOS. With LVDS disabled gma500 reports it as connected.
When LVDS is enabled in bios I instead get a connected eDP connector.
I'm starting to think that broken VBT parsing might be the actual
problem.

>
> Regards,
>
> Hans
>
Hans de Goede April 10, 2019, 9:08 a.m. UTC | #8
Hi,

On 10-04-19 11:00, Patrik Jakobsson wrote:
> On Wed, Apr 10, 2019 at 9:27 AM Hans de Goede <hdegoede@redhat.com> wrote:
>>
>> Hi,
>>
>> On 09-04-19 21:31, Dominik 'Rathann' Mierzejewski wrote:
>>> Hello,
>>>
>>> On Tuesday, 09 April 2019 at 16:44, Hans de Goede wrote:
>>>> Hi,
>>>>
>>>> On 09-04-19 14:05, Patrik Jakobsson wrote:
>>>>> On Tue, Apr 9, 2019 at 12:20 PM Hans de Goede <hdegoede@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 <hdegoede@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.
>>>>
>>>> Milstead is the name of Intel's NAS reference design:
>>>>
>>>> https://www.hardwarezone.com.my/tech-news-intel-unveils-milstead-platform-nas-devices
>>>>
>>>> I seriously doubt that any NAS-es have a LVDS (laptop/tablet) LCD panel.
>>>>
>>>>> 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?
>>>>
>>>> No there are no better DMI strings to match against I'm afraid.
>>>
>>> I did load default settings in BIOS setup and there's no change in
>>> behaviour. LVDS gets detected as connected:
>>> $ cat /sys/class/drm/card0-LVDS-1/status
>>> connected
>>>
>>> Only VGA output is physically connected at the moment.
>>
>> To be clear what Dominik means here is that he has a VGA monitor
>> connected. There is no LVDS panel in this device at all.
> 
> Thanks for testing. I dusted off my DN2800MT and tried turning LVDS
> on/off in the BIOS. With LVDS disabled gma500 reports it as connected.
> When LVDS is enabled in bios I instead get a connected eDP connector.
> I'm starting to think that broken VBT parsing might be the actual
> problem.

Maybe, but I assume there are CedarView based laptops with LVDS panels
which works, so I suspect this might be more of a bug in your BIOS.

So what is the next step in debugging this?

Regards,

Hans
Ville Syrjälä April 10, 2019, 10:43 a.m. UTC | #9
On Wed, Apr 10, 2019 at 11:00:23AM +0200, Patrik Jakobsson wrote:
> On Wed, Apr 10, 2019 at 9:27 AM Hans de Goede <hdegoede@redhat.com> wrote:
> >
> > Hi,
> >
> > On 09-04-19 21:31, Dominik 'Rathann' Mierzejewski wrote:
> > > Hello,
> > >
> > > On Tuesday, 09 April 2019 at 16:44, Hans de Goede wrote:
> > >> Hi,
> > >>
> > >> On 09-04-19 14:05, Patrik Jakobsson wrote:
> > >>> On Tue, Apr 9, 2019 at 12:20 PM Hans de Goede <hdegoede@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 <hdegoede@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.
> > >>
> > >> Milstead is the name of Intel's NAS reference design:
> > >>
> > >> https://www.hardwarezone.com.my/tech-news-intel-unveils-milstead-platform-nas-devices
> > >>
> > >> I seriously doubt that any NAS-es have a LVDS (laptop/tablet) LCD panel.
> > >>
> > >>> 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?
> > >>
> > >> No there are no better DMI strings to match against I'm afraid.
> > >
> > > I did load default settings in BIOS setup and there's no change in
> > > behaviour. LVDS gets detected as connected:
> > > $ cat /sys/class/drm/card0-LVDS-1/status
> > > connected
> > >
> > > Only VGA output is physically connected at the moment.
> >
> > To be clear what Dominik means here is that he has a VGA monitor
> > connected. There is no LVDS panel in this device at all.
> 
> Thanks for testing. I dusted off my DN2800MT and tried turning LVDS
> on/off in the BIOS. With LVDS disabled gma500 reports it as connected.
> When LVDS is enabled in bios I instead get a connected eDP connector.
> I'm starting to think that broken VBT parsing might be the actual
> problem.

Maybe try something like what I did in ca3b3fa34447 ("drm/i915: Consult
VBT "LVDS config" bits to determine whether internal LVDS is present") ?

Not that I know for sure that it actually works. So far we've had no
reports of the WARN I added. So either no one has tested a recent kernel
with any machine on the current DMI list, or my entire idea of trusting
the LVDS config bits is nonsense.
Dominik 'Rathann' Mierzejewski April 10, 2019, 11:18 a.m. UTC | #10
On Wednesday, 10 April 2019 at 11:08, Hans de Goede wrote:
> On 10-04-19 11:00, Patrik Jakobsson wrote:
> > On Wed, Apr 10, 2019 at 9:27 AM Hans de Goede <hdegoede@redhat.com> wrote:
> > > On 09-04-19 21:31, Dominik 'Rathann' Mierzejewski wrote:
> > > > On Tuesday, 09 April 2019 at 16:44, Hans de Goede wrote:
> > > > > On 09-04-19 14:05, Patrik Jakobsson wrote:
[...]
> > > > > > I'm not totally against this but not sure about the consequences. Is
> > > > > > there perhaps a better dmi string to match against?
> > > > > 
> > > > > No there are no better DMI strings to match against I'm afraid.
> > > > 
> > > > I did load default settings in BIOS setup and there's no change in
> > > > behaviour. LVDS gets detected as connected:
> > > > $ cat /sys/class/drm/card0-LVDS-1/status
> > > > connected
> > > > 
> > > > Only VGA output is physically connected at the moment.
> > > 
> > > To be clear what Dominik means here is that he has a VGA monitor
> > > connected. There is no LVDS panel in this device at all.
> > 
> > Thanks for testing. I dusted off my DN2800MT and tried turning LVDS
> > on/off in the BIOS. With LVDS disabled gma500 reports it as connected.
> > When LVDS is enabled in bios I instead get a connected eDP connector.
> > I'm starting to think that broken VBT parsing might be the actual
> > problem.
> 
> Maybe, but I assume there are CedarView based laptops with LVDS panels
> which works, so I suspect this might be more of a bug in your BIOS.
> 
> So what is the next step in debugging this?

To add a small twist, I got an updated BIOS from the vendor to fix
another issue (https://bugzilla.kernel.org/show_bug.cgi?id=199117)
and the DMI string has changed to: "CDV W Series 05", so Hans' patch
no longer matches my machine.

Regards,
Dominik
Patrik Jakobsson April 10, 2019, 11:33 a.m. UTC | #11
On Wed, Apr 10, 2019 at 1:18 PM Dominik 'Rathann' Mierzejewski
<dominik@greysector.net> wrote:
>
> On Wednesday, 10 April 2019 at 11:08, Hans de Goede wrote:
> > On 10-04-19 11:00, Patrik Jakobsson wrote:
> > > On Wed, Apr 10, 2019 at 9:27 AM Hans de Goede <hdegoede@redhat.com> wrote:
> > > > On 09-04-19 21:31, Dominik 'Rathann' Mierzejewski wrote:
> > > > > On Tuesday, 09 April 2019 at 16:44, Hans de Goede wrote:
> > > > > > On 09-04-19 14:05, Patrik Jakobsson wrote:
> [...]
> > > > > > > I'm not totally against this but not sure about the consequences. Is
> > > > > > > there perhaps a better dmi string to match against?
> > > > > >
> > > > > > No there are no better DMI strings to match against I'm afraid.
> > > > >
> > > > > I did load default settings in BIOS setup and there's no change in
> > > > > behaviour. LVDS gets detected as connected:
> > > > > $ cat /sys/class/drm/card0-LVDS-1/status
> > > > > connected
> > > > >
> > > > > Only VGA output is physically connected at the moment.
> > > >
> > > > To be clear what Dominik means here is that he has a VGA monitor
> > > > connected. There is no LVDS panel in this device at all.
> > >
> > > Thanks for testing. I dusted off my DN2800MT and tried turning LVDS
> > > on/off in the BIOS. With LVDS disabled gma500 reports it as connected.
> > > When LVDS is enabled in bios I instead get a connected eDP connector.
> > > I'm starting to think that broken VBT parsing might be the actual
> > > problem.
> >
> > Maybe, but I assume there are CedarView based laptops with LVDS panels
> > which works, so I suspect this might be more of a bug in your BIOS.
> >
> > So what is the next step in debugging this?
>
> To add a small twist, I got an updated BIOS from the vendor to fix
> another issue (https://bugzilla.kernel.org/show_bug.cgi?id=199117)
> and the DMI string has changed to: "CDV W Series 05", so Hans' patch
> no longer matches my machine.

Hi Dominik,

Do you have any option to enable/disable LVDS in your BIOS. The BIOS
default might not be to disable LVDS since they apparently solved the
issue on the command line anyway. If there is an option to turn it off
but you still get the same problem, then it is possible that detection
of "LVDS disabled" in the driver might be bad.

Thanks
Patrik

>
> Regards,
> Dominik
> --
> Fedora   https://getfedora.org  |  RPM Fusion  http://rpmfusion.org
> There should be a science of discontent. People need hard times and
> oppression to develop psychic muscles.
>         -- from "Collected Sayings of Muad'Dib" by the Princess Irulan
Patrik Jakobsson April 10, 2019, 11:34 a.m. UTC | #12
On Wed, Apr 10, 2019 at 12:43 PM Ville Syrjälä
<ville.syrjala@linux.intel.com> wrote:
>
> On Wed, Apr 10, 2019 at 11:00:23AM +0200, Patrik Jakobsson wrote:
> > On Wed, Apr 10, 2019 at 9:27 AM Hans de Goede <hdegoede@redhat.com> wrote:
> > >
> > > Hi,
> > >
> > > On 09-04-19 21:31, Dominik 'Rathann' Mierzejewski wrote:
> > > > Hello,
> > > >
> > > > On Tuesday, 09 April 2019 at 16:44, Hans de Goede wrote:
> > > >> Hi,
> > > >>
> > > >> On 09-04-19 14:05, Patrik Jakobsson wrote:
> > > >>> On Tue, Apr 9, 2019 at 12:20 PM Hans de Goede <hdegoede@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 <hdegoede@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.
> > > >>
> > > >> Milstead is the name of Intel's NAS reference design:
> > > >>
> > > >> https://www.hardwarezone.com.my/tech-news-intel-unveils-milstead-platform-nas-devices
> > > >>
> > > >> I seriously doubt that any NAS-es have a LVDS (laptop/tablet) LCD panel.
> > > >>
> > > >>> 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?
> > > >>
> > > >> No there are no better DMI strings to match against I'm afraid.
> > > >
> > > > I did load default settings in BIOS setup and there's no change in
> > > > behaviour. LVDS gets detected as connected:
> > > > $ cat /sys/class/drm/card0-LVDS-1/status
> > > > connected
> > > >
> > > > Only VGA output is physically connected at the moment.
> > >
> > > To be clear what Dominik means here is that he has a VGA monitor
> > > connected. There is no LVDS panel in this device at all.
> >
> > Thanks for testing. I dusted off my DN2800MT and tried turning LVDS
> > on/off in the BIOS. With LVDS disabled gma500 reports it as connected.
> > When LVDS is enabled in bios I instead get a connected eDP connector.
> > I'm starting to think that broken VBT parsing might be the actual
> > problem.
>
> Maybe try something like what I did in ca3b3fa34447 ("drm/i915: Consult
> VBT "LVDS config" bits to determine whether internal LVDS is present") ?
>
> Not that I know for sure that it actually works. So far we've had no
> reports of the WARN I added. So either no one has tested a recent kernel
> with any machine on the current DMI list, or my entire idea of trusting
> the LVDS config bits is nonsense.

Thanks, I'll give it a try.

>
> --
> Ville Syrjälä
> Intel
Patrik Jakobsson April 10, 2019, 11:37 a.m. UTC | #13
On Wed, Apr 10, 2019 at 11:09 AM Hans de Goede <hdegoede@redhat.com> wrote:
>
> Hi,
>
> On 10-04-19 11:00, Patrik Jakobsson wrote:
> > On Wed, Apr 10, 2019 at 9:27 AM Hans de Goede <hdegoede@redhat.com> wrote:
> >>
> >> Hi,
> >>
> >> On 09-04-19 21:31, Dominik 'Rathann' Mierzejewski wrote:
> >>> Hello,
> >>>
> >>> On Tuesday, 09 April 2019 at 16:44, Hans de Goede wrote:
> >>>> Hi,
> >>>>
> >>>> On 09-04-19 14:05, Patrik Jakobsson wrote:
> >>>>> On Tue, Apr 9, 2019 at 12:20 PM Hans de Goede <hdegoede@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 <hdegoede@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.
> >>>>
> >>>> Milstead is the name of Intel's NAS reference design:
> >>>>
> >>>> https://www.hardwarezone.com.my/tech-news-intel-unveils-milstead-platform-nas-devices
> >>>>
> >>>> I seriously doubt that any NAS-es have a LVDS (laptop/tablet) LCD panel.
> >>>>
> >>>>> 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?
> >>>>
> >>>> No there are no better DMI strings to match against I'm afraid.
> >>>
> >>> I did load default settings in BIOS setup and there's no change in
> >>> behaviour. LVDS gets detected as connected:
> >>> $ cat /sys/class/drm/card0-LVDS-1/status
> >>> connected
> >>>
> >>> Only VGA output is physically connected at the moment.
> >>
> >> To be clear what Dominik means here is that he has a VGA monitor
> >> connected. There is no LVDS panel in this device at all.
> >
> > Thanks for testing. I dusted off my DN2800MT and tried turning LVDS
> > on/off in the BIOS. With LVDS disabled gma500 reports it as connected.
> > When LVDS is enabled in bios I instead get a connected eDP connector.
> > I'm starting to think that broken VBT parsing might be the actual
> > problem.
>
> Maybe, but I assume there are CedarView based laptops with LVDS panels
> which works, so I suspect this might be more of a bug in your BIOS.

I was thinking of the case where LVDS is disabled. Things work fine
when there actually is a panel present.

>
> So what is the next step in debugging this?

I'll give Villes suggestion a try.

>
> Regards,
>
> Hans
>
Dominik 'Rathann' Mierzejewski April 10, 2019, 11:51 a.m. UTC | #14
On Wednesday, 10 April 2019 at 13:33, Patrik Jakobsson wrote:
> On Wed, Apr 10, 2019 at 1:18 PM Dominik 'Rathann' Mierzejewski
> <dominik@greysector.net> wrote:
> >
> > On Wednesday, 10 April 2019 at 11:08, Hans de Goede wrote:
> > > On 10-04-19 11:00, Patrik Jakobsson wrote:
> > > > On Wed, Apr 10, 2019 at 9:27 AM Hans de Goede <hdegoede@redhat.com> wrote:
> > > > > On 09-04-19 21:31, Dominik 'Rathann' Mierzejewski wrote:
> > > > > > On Tuesday, 09 April 2019 at 16:44, Hans de Goede wrote:
> > > > > > > On 09-04-19 14:05, Patrik Jakobsson wrote:
> > [...]
> > > > > > > > I'm not totally against this but not sure about the consequences. Is
> > > > > > > > there perhaps a better dmi string to match against?
> > > > > > >
> > > > > > > No there are no better DMI strings to match against I'm afraid.
> > > > > >
> > > > > > I did load default settings in BIOS setup and there's no change in
> > > > > > behaviour. LVDS gets detected as connected:
> > > > > > $ cat /sys/class/drm/card0-LVDS-1/status
> > > > > > connected
> > > > > >
> > > > > > Only VGA output is physically connected at the moment.
> > > > >
> > > > > To be clear what Dominik means here is that he has a VGA monitor
> > > > > connected. There is no LVDS panel in this device at all.
> > > >
> > > > Thanks for testing. I dusted off my DN2800MT and tried turning LVDS
> > > > on/off in the BIOS. With LVDS disabled gma500 reports it as connected.
> > > > When LVDS is enabled in bios I instead get a connected eDP connector.
> > > > I'm starting to think that broken VBT parsing might be the actual
> > > > problem.
> > >
> > > Maybe, but I assume there are CedarView based laptops with LVDS panels
> > > which works, so I suspect this might be more of a bug in your BIOS.
> > >
> > > So what is the next step in debugging this?
> >
> > To add a small twist, I got an updated BIOS from the vendor to fix
> > another issue (https://bugzilla.kernel.org/show_bug.cgi?id=199117)
> > and the DMI string has changed to: "CDV W Series 05", so Hans' patch
> > no longer matches my machine.
> 
> Hi Dominik,
> 
> Do you have any option to enable/disable LVDS in your BIOS. The BIOS
> default might not be to disable LVDS since they apparently solved the
> issue on the command line anyway. If there is an option to turn it off
> but you still get the same problem, then it is possible that detection
> of "LVDS disabled" in the driver might be bad.

No, there's no option to enable/disable LVDS. The machine is a NAS box
and doesn't have an LVDS physically. You can see the motherboard e.g.
here: https://youtu.be/ZYNQvZNGLsE?t=855 .

Regards,
Dominik
Patrik Jakobsson April 16, 2019, 2:32 p.m. UTC | #15
On Wed, Apr 10, 2019 at 1:51 PM Dominik 'Rathann' Mierzejewski
<dominik@greysector.net> wrote:
>
> On Wednesday, 10 April 2019 at 13:33, Patrik Jakobsson wrote:
> > On Wed, Apr 10, 2019 at 1:18 PM Dominik 'Rathann' Mierzejewski
> > <dominik@greysector.net> wrote:
> > >
> > > On Wednesday, 10 April 2019 at 11:08, Hans de Goede wrote:
> > > > On 10-04-19 11:00, Patrik Jakobsson wrote:
> > > > > On Wed, Apr 10, 2019 at 9:27 AM Hans de Goede <hdegoede@redhat.com> wrote:
> > > > > > On 09-04-19 21:31, Dominik 'Rathann' Mierzejewski wrote:
> > > > > > > On Tuesday, 09 April 2019 at 16:44, Hans de Goede wrote:
> > > > > > > > On 09-04-19 14:05, Patrik Jakobsson wrote:
> > > [...]
> > > > > > > > > I'm not totally against this but not sure about the consequences. Is
> > > > > > > > > there perhaps a better dmi string to match against?
> > > > > > > >
> > > > > > > > No there are no better DMI strings to match against I'm afraid.
> > > > > > >
> > > > > > > I did load default settings in BIOS setup and there's no change in
> > > > > > > behaviour. LVDS gets detected as connected:
> > > > > > > $ cat /sys/class/drm/card0-LVDS-1/status
> > > > > > > connected
> > > > > > >
> > > > > > > Only VGA output is physically connected at the moment.
> > > > > >
> > > > > > To be clear what Dominik means here is that he has a VGA monitor
> > > > > > connected. There is no LVDS panel in this device at all.
> > > > >
> > > > > Thanks for testing. I dusted off my DN2800MT and tried turning LVDS
> > > > > on/off in the BIOS. With LVDS disabled gma500 reports it as connected.
> > > > > When LVDS is enabled in bios I instead get a connected eDP connector.
> > > > > I'm starting to think that broken VBT parsing might be the actual
> > > > > problem.
> > > >
> > > > Maybe, but I assume there are CedarView based laptops with LVDS panels
> > > > which works, so I suspect this might be more of a bug in your BIOS.
> > > >
> > > > So what is the next step in debugging this?
> > >
> > > To add a small twist, I got an updated BIOS from the vendor to fix
> > > another issue (https://bugzilla.kernel.org/show_bug.cgi?id=199117)
> > > and the DMI string has changed to: "CDV W Series 05", so Hans' patch
> > > no longer matches my machine.
> >
> > Hi Dominik,
> >
> > Do you have any option to enable/disable LVDS in your BIOS. The BIOS
> > default might not be to disable LVDS since they apparently solved the
> > issue on the command line anyway. If there is an option to turn it off
> > but you still get the same problem, then it is possible that detection
> > of "LVDS disabled" in the driver might be bad.
>
> No, there's no option to enable/disable LVDS. The machine is a NAS box
> and doesn't have an LVDS physically. You can see the motherboard e.g.
> here: https://youtu.be/ZYNQvZNGLsE?t=855 .

I've posted a patch: https://patchwork.freedesktop.org/patch/299821/

Previously we only checked for a child device and ignored the lvds
config bits. Hopefully this fixes your problem.

-Patrik

>
> Regards,
> Dominik
> --
> Fedora   https://getfedora.org  |  RPM Fusion  http://rpmfusion.org
> There should be a science of discontent. People need hard times and
> oppression to develop psychic muscles.
>         -- from "Collected Sayings of Muad'Dib" by the Princess Irulan
Hans de Goede April 16, 2019, 3:36 p.m. UTC | #16
Hi,

On 16-04-19 16:32, Patrik Jakobsson wrote:
> On Wed, Apr 10, 2019 at 1:51 PM Dominik 'Rathann' Mierzejewski
> <dominik@greysector.net> wrote:
>>
>> On Wednesday, 10 April 2019 at 13:33, Patrik Jakobsson wrote:
>>> On Wed, Apr 10, 2019 at 1:18 PM Dominik 'Rathann' Mierzejewski
>>> <dominik@greysector.net> wrote:
>>>>
>>>> On Wednesday, 10 April 2019 at 11:08, Hans de Goede wrote:
>>>>> On 10-04-19 11:00, Patrik Jakobsson wrote:
>>>>>> On Wed, Apr 10, 2019 at 9:27 AM Hans de Goede <hdegoede@redhat.com> wrote:
>>>>>>> On 09-04-19 21:31, Dominik 'Rathann' Mierzejewski wrote:
>>>>>>>> On Tuesday, 09 April 2019 at 16:44, Hans de Goede wrote:
>>>>>>>>> On 09-04-19 14:05, Patrik Jakobsson wrote:
>>>> [...]
>>>>>>>>>> I'm not totally against this but not sure about the consequences. Is
>>>>>>>>>> there perhaps a better dmi string to match against?
>>>>>>>>>
>>>>>>>>> No there are no better DMI strings to match against I'm afraid.
>>>>>>>>
>>>>>>>> I did load default settings in BIOS setup and there's no change in
>>>>>>>> behaviour. LVDS gets detected as connected:
>>>>>>>> $ cat /sys/class/drm/card0-LVDS-1/status
>>>>>>>> connected
>>>>>>>>
>>>>>>>> Only VGA output is physically connected at the moment.
>>>>>>>
>>>>>>> To be clear what Dominik means here is that he has a VGA monitor
>>>>>>> connected. There is no LVDS panel in this device at all.
>>>>>>
>>>>>> Thanks for testing. I dusted off my DN2800MT and tried turning LVDS
>>>>>> on/off in the BIOS. With LVDS disabled gma500 reports it as connected.
>>>>>> When LVDS is enabled in bios I instead get a connected eDP connector.
>>>>>> I'm starting to think that broken VBT parsing might be the actual
>>>>>> problem.
>>>>>
>>>>> Maybe, but I assume there are CedarView based laptops with LVDS panels
>>>>> which works, so I suspect this might be more of a bug in your BIOS.
>>>>>
>>>>> So what is the next step in debugging this?
>>>>
>>>> To add a small twist, I got an updated BIOS from the vendor to fix
>>>> another issue (https://bugzilla.kernel.org/show_bug.cgi?id=199117)
>>>> and the DMI string has changed to: "CDV W Series 05", so Hans' patch
>>>> no longer matches my machine.
>>>
>>> Hi Dominik,
>>>
>>> Do you have any option to enable/disable LVDS in your BIOS. The BIOS
>>> default might not be to disable LVDS since they apparently solved the
>>> issue on the command line anyway. If there is an option to turn it off
>>> but you still get the same problem, then it is possible that detection
>>> of "LVDS disabled" in the driver might be bad.
>>
>> No, there's no option to enable/disable LVDS. The machine is a NAS box
>> and doesn't have an LVDS physically. You can see the motherboard e.g.
>> here: https://youtu.be/ZYNQvZNGLsE?t=855 .
> 
> I've posted a patch: https://patchwork.freedesktop.org/patch/299821/
> 
> Previously we only checked for a child device and ignored the lvds
> config bits. Hopefully this fixes your problem.

Dominik,

As also discussed in bugzilla:
https://bugzilla.redhat.com/show_bug.cgi?id=1665766#c23

I've started a Fedora kernel test-build with Patrik's patch added,
please test this:
https://koji.fedoraproject.org/koji/taskinfo?taskID=34215831

Regards,

Hans
diff mbox series

Patch

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");