Re: [PATCH] Fix lock up when switching off discrete graphics card in Dell XPS 9560 https://bugzilla.kernel.org/show_bug.cgi?id=156341

From: Tobias Schumacher
Date: Tue Feb 21 2017 - 14:33:53 EST


Hi Ladislav,

Am Dienstag, den 21.02.2017, 10:41 +0100 schrieb Ladislav Michl:
> Hi Tobias,
>
> On Tue, Feb 21, 2017 at 01:36:25AM +0100, Tobias Schumacher wrote:
> > Signed-off-by: Tobias Schumacher <tobe.schumacher@xxxxxxxxx>
> > ---
> > Âdrivers/acpi/blacklist.c | 14 ++++++++++++++
> > Â1 file changed, 14 insertions(+)
> >
> > diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
> > index 4421f7c..7945f2f 100644
> > --- a/drivers/acpi/blacklist.c
> > +++ b/drivers/acpi/blacklist.c
> > @@ -188,6 +188,20 @@ static struct dmi_system_id
> > acpi_rev_dmi_table[] __initdata = {
> > Â ÂÂÂÂÂÂDMI_MATCH(DMI_PRODUCT_NAME, "Latitude
> > 3350"),
> > Â },
> > Â },
> > + /*
> > + Â* Resolves issues that cause the system to lock up
> > + Â* under certain conditions when the discrete graphics
> > + Â* card is turned off
> > + Â*/
> > + {
> > + Â.callback = dmi_enable_rev_override,
> > + Â.ident = "DELL XPS 15 (2017)",
> > + Â.matches = {
> > + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> > + DMI_MATCH(DMI_PRODUCT_NAME, "XPS 15
> > 9560"),
> > + },
> > + },
> > +
> > Â#endif
> > Â {}
> > Â};
>
> I thought conclusion was _not_ adding any new devices into this
> evergrowing
> list. Or am I mistaken? As otherwise I'll sent similar patch for my
> laptop ;-)

I don't know to be honest - I recently switched back from Mac to Linux
and searched for a way to get things working properly. Without any
kernel parameters and patches switching off the discrete graphics will
lead to lockups when executing for example lspci. Booting with
'acpi_osi=! acpi_osi="Windows 2009"' fixes this, but unfortunately the
touchpad will stop working properly. With this patch both things work.

If the conclusion is not adding new devices here, is there also a
prefered way of fixing this? I guess getting Dell to fix this would be
the ideal solution, but what can we do in the meantime? Would adding a
kernel parameter like acpi_rev that overrides the reported ACPI
revision be acceptable? The only other solution I could thing of would
be patching the ACPI tables.

Tobias