All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and Precision M5530
@ 2018-01-29  6:10 Kai-Heng Feng
  2018-01-29 12:56 ` Andy Shevchenko
  0 siblings, 1 reply; 12+ messages in thread
From: Kai-Heng Feng @ 2018-01-29  6:10 UTC (permalink / raw)
  To: rjw, lenb; +Cc: linux-acpi, linux-kernel, Kai-Heng Feng, Mario Limonciello

The i2c touchpad on Dell XPS 9570 and Precision M5530 doesn't work out
of box.

The touchpad relies on its _INI method to update its _HID value from
XXXX0000 to SYNA2393.
Also, the _STA relies on value of I2CN to report correct status.

Set acpi_gbl_parse_table_as_term_list so the value of I2CN can be
correctly set up, and _INI can get run. The ACPI table in this machine
is designed to get parsed this way.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=198515
Cc: Mario Limonciello <mario.limonciello@dell.com>
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
---
 drivers/acpi/bus.c | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index 4d0979e02a28..4da34d67e23d 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -88,6 +86,45 @@ static const struct dmi_system_id dsdt_dmi_table[] __initconst = {
 };
 #endif
 
+#ifdef CONFIG_X86
+static int set_gbl_term_list(const struct dmi_system_id *id)
+{
+	pr_notice("%s detected - parse the entire table as a term_list\n",
+		  id->ident);
+	acpi_gbl_parse_table_as_term_list = 1;
+	return 0;
+}
+
+static const struct dmi_system_id gbl_term_list_dmi_table[] __initconst = {
+	/*
+	 * Touchpad on Dell XPS 9570/Precision M5530 doesn't work under I2C
+	 * mode.
+	 * https://bugzilla.kernel.org/show_bug.cgi?id=198515
+	 */
+	{
+		.callback = set_gbl_term_list,
+		.ident = "Dell Precision M5530",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Precision M5530"),
+		},
+	},
+	{
+		.callback = set_gbl_term_list,
+		.ident = "Dell XPS 15 9570",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "XPS 15 9570"),
+		},
+	},
+	{}
+};
+#else
+static const struct dmi_system_id gbl_term_list_dmi_table[] __initconst = {
+	{}
+};
+#endif
+
 /* --------------------------------------------------------------------------
                                 Device Management
    -------------------------------------------------------------------------- */
@@ -1007,6 +1046,8 @@ void __init acpi_early_init(void)
 	 */
 	dmi_check_system(dsdt_dmi_table);
 
+	dmi_check_system(gbl_term_list_dmi_table);
+
 	status = acpi_reallocate_root_table();
 	if (ACPI_FAILURE(status)) {
 		printk(KERN_ERR PREFIX
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and Precision M5530
  2018-01-29  6:10 [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and Precision M5530 Kai-Heng Feng
@ 2018-01-29 12:56 ` Andy Shevchenko
  2018-01-30  2:46   ` Kai Heng Feng
  0 siblings, 1 reply; 12+ messages in thread
From: Andy Shevchenko @ 2018-01-29 12:56 UTC (permalink / raw)
  To: Kai-Heng Feng
  Cc: Rafael J. Wysocki, Len Brown, ACPI Devel Maling List,
	Linux Kernel Mailing List, Mario Limonciello

On Mon, Jan 29, 2018 at 8:10 AM, Kai-Heng Feng
<kai.heng.feng@canonical.com> wrote:
> The i2c touchpad on Dell XPS 9570 and Precision M5530 doesn't work out
> of box.
>
> The touchpad relies on its _INI method to update its _HID value from
> XXXX0000 to SYNA2393.
> Also, the _STA relies on value of I2CN to report correct status.
>
> Set acpi_gbl_parse_table_as_term_list so the value of I2CN can be
> correctly set up, and _INI can get run. The ACPI table in this machine
> is designed to get parsed this way.

> +#ifdef CONFIG_X86

Why do you need separate #ifdef?

> +static const struct dmi_system_id gbl_term_list_dmi_table[] __initconst = {

I think you can just add new items to the existing table, while renaming it like

dsdt_dmi_table -> acpi_quirks_dmi_table

-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and Precision M5530
  2018-01-29 12:56 ` Andy Shevchenko
@ 2018-01-30  2:46   ` Kai Heng Feng
  0 siblings, 0 replies; 12+ messages in thread
From: Kai Heng Feng @ 2018-01-30  2:46 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Rafael J. Wysocki, Len Brown, ACPI Devel Maling List,
	Linux Kernel Mailing List, Mario Limonciello



> On 29 Jan 2018, at 8:56 PM, Andy Shevchenko <andy.shevchenko@gmail.com> wrote:
> 
> On Mon, Jan 29, 2018 at 8:10 AM, Kai-Heng Feng
> <kai.heng.feng@canonical.com> wrote:
>> The i2c touchpad on Dell XPS 9570 and Precision M5530 doesn't work out
>> of box.
>> 
>> The touchpad relies on its _INI method to update its _HID value from
>> XXXX0000 to SYNA2393.
>> Also, the _STA relies on value of I2CN to report correct status.
>> 
>> Set acpi_gbl_parse_table_as_term_list so the value of I2CN can be
>> correctly set up, and _INI can get run. The ACPI table in this machine
>> is designed to get parsed this way.
> 
>> +#ifdef CONFIG_X86
> 
> Why do you need separate #ifdef?
> 
>> +static const struct dmi_system_id gbl_term_list_dmi_table[] __initconst = {
> 
> I think you can just add new items to the existing table, while renaming it like
> 
> dsdt_dmi_table -> acpi_quirks_dmi_table

Thanks for your suggestion, this is a better approach.
I’ll address them in V2 patch.

Kai-Heng

> 
> -- 
> With Best Regards,
> Andy Shevchenko


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and Precision M5530
  2018-01-30 20:09       ` Moore, Robert
@ 2018-02-08  9:48         ` Rafael J. Wysocki
  0 siblings, 0 replies; 12+ messages in thread
From: Rafael J. Wysocki @ 2018-02-08  9:48 UTC (permalink / raw)
  To: Moore, Robert
  Cc: Mario.Limonciello, Schmauss, Erik, andy.shevchenko,
	kai.heng.feng, lenb, linux-acpi, linux-kernel

On Tuesday, January 30, 2018 9:09:04 PM CET Moore, Robert wrote:
> 
> > -----Original Message-----
> > From: Mario.Limonciello@dell.com [mailto:Mario.Limonciello@dell.com]
> > Sent: Tuesday, January 30, 2018 11:03 AM
> > To: Schmauss, Erik <erik.schmauss@intel.com>; andy.shevchenko@gmail.com;
> > kai.heng.feng@canonical.com
> > Cc: rjw@rjwysocki.net; lenb@kernel.org; linux-acpi@vger.kernel.org;
> > linux-kernel@vger.kernel.org; Moore, Robert <robert.moore@intel.com>
> > Subject: RE: [PATCH] ACPI: Parse entire table as a term_list for Dell
> > XPS 9570 and Precision M5530
> > 
> > 
> > 
> > > -----Original Message-----
> > > From: Schmauss, Erik [mailto:erik.schmauss@intel.com]
> > > Sent: Tuesday, January 30, 2018 12:38 PM
> > > To: Andy Shevchenko <andy.shevchenko@gmail.com>; Kai-Heng Feng
> > > <kai.heng.feng@canonical.com>
> > > Cc: Rafael J. Wysocki <rjw@rjwysocki.net>; Len Brown
> > > <lenb@kernel.org>; ACPI Devel Maling List
> > > <linux-acpi@vger.kernel.org>; Linux Kernel Mailing List <linux-
> > > kernel@vger.kernel.org>; Limonciello, Mario
> > > <Mario_Limonciello@Dell.com>; Moore, Robert <robert.moore@intel.com>
> > > Subject: RE: [PATCH] ACPI: Parse entire table as a term_list for Dell
> > > XPS 9570 and Precision M5530
> > >
> > > Hi,
> > > > -----Original Message-----
> > > > From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> > > > owner@vger.kernel.org] On Behalf Of Andy Shevchenko
> > > > Sent: Tuesday, January 30, 2018 10:18 AM
> > > > To: Kai-Heng Feng <kai.heng.feng@canonical.com>
> > > > Cc: Rafael J. Wysocki <rjw@rjwysocki.net>; Len Brown
> > > > <lenb@kernel.org>; ACPI Devel Maling List
> > > > <linux-acpi@vger.kernel.org>; Linux Kernel Mailing List <linux-
> > > > kernel@vger.kernel.org>; Mario Limonciello
> > > > <mario.limonciello@dell.com>
> > > > Subject: Re: [PATCH] ACPI: Parse entire table as a term_list for
> > > > Dell XPS 9570 and Precision M5530
> > > >
> > > > On Tue, Jan 30, 2018 at 8:07 AM, Kai-Heng Feng
> > > > <kai.heng.feng@canonical.com> wrote:
> > > > > The i2c touchpad on Dell XPS 9570 and Precision M5530 doesn't work
> > > > > out of box.
> > > > >
> > > > > The touchpad relies on its _INI method to update its _HID value
> > > > > from
> > > > > XXXX0000 to SYNA2393.
> > > > > Also, the _STA relies on value of I2CN to report correct status.
> > > > >
> > > > > Set acpi_gbl_parse_table_as_term_list so the value of I2CN can be
> > > > > correctly set up, and _INI can get run. The ACPI table in this
> > > > > machine is designed to get parsed this way.
> > >
> > > I thought I would give everyone an update: we are getting close to
> > > finishing patches to enable this term list parsing by default as well
> > > as a few other fixes with forward referencing of package elements.
> > > Once we have established that these patches are stable, we will get
> > > rid of acpi_gbl_parse_table_as_term_list. So this quirk may not be
> > needed in the near future...
> > 
> > Rafael,
> > 
> > Would you be opposed to carrying a patch similar to this (proposed)
> > quirk patch in kernel and reverting when Erik submits patches that get
> > rid of acpi_gbl_parse_table_as_term_list?
> > 
> > The reason being, I think this could also be a candidate to bring back
> > to @stable and fix this problem on earlier kernels too.
> > 
> > I don’t believe the patches that get rid of
> > acpi_gbl_parse_table_as_term_list likely will be good candidates for
> > @stable.
> > 
> 
> 
> Does anyone remember what was the exact problem that forced the creation of
> parse_table_as_term_list in the first place?

I don't remember exactly, but it was related to the MLC code.

That was introduced by this kernel commit:

commit de56ba95e8d6d760910711744a548b50b3a4262d
Author: Lv Zheng <lv.zheng@intel.com>
Date:   Wed Sep 7 14:06:54 2016 +0800

    ACPICA: Interpreter: Fix MLC issues by switching to new term_list grammar for table loading
    
    ACPICA commit 0e24fb67cde08d7df7671d7d7b183490dc79707e

which has a very detailed changelog including links to several bug entries.

Thanks,
Rafael


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and Precision M5530
  2018-01-30 18:37   ` Schmauss, Erik
  2018-01-30 19:03       ` Mario.Limonciello
@ 2018-01-31  4:27     ` Kai Heng Feng
  1 sibling, 0 replies; 12+ messages in thread
From: Kai Heng Feng @ 2018-01-31  4:27 UTC (permalink / raw)
  To: Schmauss, Erik
  Cc: Andy Shevchenko, Rafael J. Wysocki, Len Brown,
	ACPI Devel Maling List, Linux Kernel Mailing List,
	Mario Limonciello, Moore, Robert



> On 31 Jan 2018, at 2:37 AM, Schmauss, Erik <erik.schmauss@intel.com> wrote:
> 
> Hi,
>> -----Original Message-----
>> From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
>> owner@vger.kernel.org] On Behalf Of Andy Shevchenko
>> Sent: Tuesday, January 30, 2018 10:18 AM
>> To: Kai-Heng Feng <kai.heng.feng@canonical.com>
>> Cc: Rafael J. Wysocki <rjw@rjwysocki.net>; Len Brown <lenb@kernel.org>; ACPI
>> Devel Maling List <linux-acpi@vger.kernel.org>; Linux Kernel Mailing List <linux-
>> kernel@vger.kernel.org>; Mario Limonciello <mario.limonciello@dell.com>
>> Subject: Re: [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and
>> Precision M5530
>> 
>> On Tue, Jan 30, 2018 at 8:07 AM, Kai-Heng Feng
>> <kai.heng.feng@canonical.com> wrote:
>>> The i2c touchpad on Dell XPS 9570 and Precision M5530 doesn't work out
>>> of box.
>>> 
>>> The touchpad relies on its _INI method to update its _HID value from
>>> XXXX0000 to SYNA2393.
>>> Also, the _STA relies on value of I2CN to report correct status.
>>> 
>>> Set acpi_gbl_parse_table_as_term_list so the value of I2CN can be
>>> correctly set up, and _INI can get run. The ACPI table in this machine
>>> is designed to get parsed this way.
> 
> I thought I would give everyone an update: we are getting close to finishing patches to enable this term list parsing by default as well as a few other fixes with forward referencing of package elements. Once we have established that these patches are stable, we will get rid of acpi_gbl_parse_table_as_term_list. So this quirk may not be needed in the near future…

I am aware it will land into mainline soon, the target version is v4.17 IIRC.
Since the laptops in question are going to hit the market soon,
we want to support it sooner rather then later.

Also, as Mario pointed out, backport is a big factor here.
v4.14 is the current LTS kernel, v4.15 will be used in Ubuntu 18.04,
both of them will have lots of users.
So being able to backport to v4.14 and v4.15 is quite important.

Kai-Heng

> 
> Erik
>>> 
>>> Also, change the quirk table to a more generic name.
>> 
>>> +static int set_gbl_term_list(const struct dmi_system_id *id) {
>>> +       pr_notice("%s detected - parse the entire table as a term_list\n",
>>> +                 id->ident);
>>> +       acpi_gbl_parse_table_as_term_list = 1;
>>> +       return 0;
>>> +}
>>> #endif
>> 
>> The above should be outside of another #ifdef. Basically after the above #endif.
>> 
>>> #else
>> 
>>> #endif
>> 
>>> @@ -1005,7 +1034,7 @@ void __init acpi_early_init(void)
>> 
>>>         * If the machine falls into the DMI check table,
>>>         * DSDT will be copied to memory
>>>         */
>> 
>> It might make sense to adjust comment above that it's about quirks in general.
>> And, if needed, move current content to actual DMI group of records.
>> 
>>> -       dmi_check_system(dsdt_dmi_table);
>>> +       dmi_check_system(acpi_quirks_dmi_table);
>> 
>> --
>> With Best Regards,
>> Andy Shevchenko
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of
>> a message to majordomo@vger.kernel.org More majordomo info at
>> http://vger.kernel.org/majordomo-info.html


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and Precision M5530
  2018-01-30 18:17 ` Andy Shevchenko
  2018-01-30 18:37   ` Schmauss, Erik
@ 2018-01-31  4:20   ` Kai Heng Feng
  1 sibling, 0 replies; 12+ messages in thread
From: Kai Heng Feng @ 2018-01-31  4:20 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Rafael J. Wysocki, Len Brown, ACPI Devel Maling List,
	Linux Kernel Mailing List, Mario Limonciello



> On 31 Jan 2018, at 2:17 AM, Andy Shevchenko <andy.shevchenko@gmail.com> wrote:
> 
> On Tue, Jan 30, 2018 at 8:07 AM, Kai-Heng Feng
> <kai.heng.feng@canonical.com> wrote:
>> The i2c touchpad on Dell XPS 9570 and Precision M5530 doesn't work out
>> of box.
>> 
>> The touchpad relies on its _INI method to update its _HID value from
>> XXXX0000 to SYNA2393.
>> Also, the _STA relies on value of I2CN to report correct status.
>> 
>> Set acpi_gbl_parse_table_as_term_list so the value of I2CN can be
>> correctly set up, and _INI can get run. The ACPI table in this machine
>> is designed to get parsed this way.
>> 
>> Also, change the quirk table to a more generic name.
> 
>> +static int set_gbl_term_list(const struct dmi_system_id *id)
>> +{
>> +       pr_notice("%s detected - parse the entire table as a term_list\n",
>> +                 id->ident);
>> +       acpi_gbl_parse_table_as_term_list = 1;
>> +       return 0;
>> +}
>> #endif
> 
> The above should be outside of another #ifdef. Basically after the above #endif.

Right, I overlooked that. Thanks.

> 
>> #else
> 
>> #endif
> 
>> @@ -1005,7 +1034,7 @@ void __init acpi_early_init(void)
> 
>>         * If the machine falls into the DMI check table,
>>         * DSDT will be copied to memory
>>         */
> 
> It might make sense to adjust comment above that it's about quirks in
> general. And, if needed, move current content to actual DMI group of
> records.

Thanks for the suggestions.

I’ll address them in patch v3.

Kai-Heng

> 
>> -       dmi_check_system(dsdt_dmi_table);
>> +       dmi_check_system(acpi_quirks_dmi_table);
> 
> -- 
> With Best Regards,
> Andy Shevchenko


^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and Precision M5530
  2018-01-30 19:03       ` Mario.Limonciello
  (?)
@ 2018-01-30 20:09       ` Moore, Robert
  2018-02-08  9:48         ` Rafael J. Wysocki
  -1 siblings, 1 reply; 12+ messages in thread
From: Moore, Robert @ 2018-01-30 20:09 UTC (permalink / raw)
  To: Mario.Limonciello, Schmauss, Erik, andy.shevchenko, kai.heng.feng
  Cc: rjw, lenb, linux-acpi, linux-kernel



> -----Original Message-----
> From: Mario.Limonciello@dell.com [mailto:Mario.Limonciello@dell.com]
> Sent: Tuesday, January 30, 2018 11:03 AM
> To: Schmauss, Erik <erik.schmauss@intel.com>; andy.shevchenko@gmail.com;
> kai.heng.feng@canonical.com
> Cc: rjw@rjwysocki.net; lenb@kernel.org; linux-acpi@vger.kernel.org;
> linux-kernel@vger.kernel.org; Moore, Robert <robert.moore@intel.com>
> Subject: RE: [PATCH] ACPI: Parse entire table as a term_list for Dell
> XPS 9570 and Precision M5530
> 
> 
> 
> > -----Original Message-----
> > From: Schmauss, Erik [mailto:erik.schmauss@intel.com]
> > Sent: Tuesday, January 30, 2018 12:38 PM
> > To: Andy Shevchenko <andy.shevchenko@gmail.com>; Kai-Heng Feng
> > <kai.heng.feng@canonical.com>
> > Cc: Rafael J. Wysocki <rjw@rjwysocki.net>; Len Brown
> > <lenb@kernel.org>; ACPI Devel Maling List
> > <linux-acpi@vger.kernel.org>; Linux Kernel Mailing List <linux-
> > kernel@vger.kernel.org>; Limonciello, Mario
> > <Mario_Limonciello@Dell.com>; Moore, Robert <robert.moore@intel.com>
> > Subject: RE: [PATCH] ACPI: Parse entire table as a term_list for Dell
> > XPS 9570 and Precision M5530
> >
> > Hi,
> > > -----Original Message-----
> > > From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> > > owner@vger.kernel.org] On Behalf Of Andy Shevchenko
> > > Sent: Tuesday, January 30, 2018 10:18 AM
> > > To: Kai-Heng Feng <kai.heng.feng@canonical.com>
> > > Cc: Rafael J. Wysocki <rjw@rjwysocki.net>; Len Brown
> > > <lenb@kernel.org>; ACPI Devel Maling List
> > > <linux-acpi@vger.kernel.org>; Linux Kernel Mailing List <linux-
> > > kernel@vger.kernel.org>; Mario Limonciello
> > > <mario.limonciello@dell.com>
> > > Subject: Re: [PATCH] ACPI: Parse entire table as a term_list for
> > > Dell XPS 9570 and Precision M5530
> > >
> > > On Tue, Jan 30, 2018 at 8:07 AM, Kai-Heng Feng
> > > <kai.heng.feng@canonical.com> wrote:
> > > > The i2c touchpad on Dell XPS 9570 and Precision M5530 doesn't work
> > > > out of box.
> > > >
> > > > The touchpad relies on its _INI method to update its _HID value
> > > > from
> > > > XXXX0000 to SYNA2393.
> > > > Also, the _STA relies on value of I2CN to report correct status.
> > > >
> > > > Set acpi_gbl_parse_table_as_term_list so the value of I2CN can be
> > > > correctly set up, and _INI can get run. The ACPI table in this
> > > > machine is designed to get parsed this way.
> >
> > I thought I would give everyone an update: we are getting close to
> > finishing patches to enable this term list parsing by default as well
> > as a few other fixes with forward referencing of package elements.
> > Once we have established that these patches are stable, we will get
> > rid of acpi_gbl_parse_table_as_term_list. So this quirk may not be
> needed in the near future...
> 
> Rafael,
> 
> Would you be opposed to carrying a patch similar to this (proposed)
> quirk patch in kernel and reverting when Erik submits patches that get
> rid of acpi_gbl_parse_table_as_term_list?
> 
> The reason being, I think this could also be a candidate to bring back
> to @stable and fix this problem on earlier kernels too.
> 
> I don’t believe the patches that get rid of
> acpi_gbl_parse_table_as_term_list likely will be good candidates for
> @stable.
> 


Does anyone remember what was the exact problem that forced the creation of parse_table_as_term_list in the first place?

Bob


> 
> >
> > Erik
> > > >
> > > > Also, change the quirk table to a more generic name.
> > >
> > > > +static int set_gbl_term_list(const struct dmi_system_id *id) {
> > > > +       pr_notice("%s detected - parse the entire table as a
> term_list\n",
> > > > +                 id->ident);
> > > > +       acpi_gbl_parse_table_as_term_list = 1;
> > > > +       return 0;
> > > > +}
> > > >  #endif
> > >
> > > The above should be outside of another #ifdef. Basically after the
> above #endif.
> > >
> > > >  #else
> > >
> > > >  #endif
> > >
> > > > @@ -1005,7 +1034,7 @@ void __init acpi_early_init(void)
> > >
> > > >          * If the machine falls into the DMI check table,
> > > >          * DSDT will be copied to memory
> > > >          */
> > >
> > > It might make sense to adjust comment above that it's about quirks
> in general.
> > > And, if needed, move current content to actual DMI group of records.
> > >
> > > > -       dmi_check_system(dsdt_dmi_table);
> > > > +       dmi_check_system(acpi_quirks_dmi_table);
> > >
> > > --
> > > With Best Regards,
> > > Andy Shevchenko
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe
> > > linux-acpi" in the body of a message to majordomo@vger.kernel.org
> > > More majordomo info at http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and Precision M5530
  2018-01-30 18:37   ` Schmauss, Erik
@ 2018-01-30 19:03       ` Mario.Limonciello
  2018-01-31  4:27     ` Kai Heng Feng
  1 sibling, 0 replies; 12+ messages in thread
From: Mario.Limonciello @ 2018-01-30 19:03 UTC (permalink / raw)
  To: erik.schmauss, andy.shevchenko, kai.heng.feng
  Cc: rjw, lenb, linux-acpi, linux-kernel, robert.moore



> -----Original Message-----
> From: Schmauss, Erik [mailto:erik.schmauss@intel.com]
> Sent: Tuesday, January 30, 2018 12:38 PM
> To: Andy Shevchenko <andy.shevchenko@gmail.com>; Kai-Heng Feng
> <kai.heng.feng@canonical.com>
> Cc: Rafael J. Wysocki <rjw@rjwysocki.net>; Len Brown <lenb@kernel.org>; ACPI
> Devel Maling List <linux-acpi@vger.kernel.org>; Linux Kernel Mailing List <linux-
> kernel@vger.kernel.org>; Limonciello, Mario <Mario_Limonciello@Dell.com>;
> Moore, Robert <robert.moore@intel.com>
> Subject: RE: [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and
> Precision M5530
> 
> Hi,
> > -----Original Message-----
> > From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> > owner@vger.kernel.org] On Behalf Of Andy Shevchenko
> > Sent: Tuesday, January 30, 2018 10:18 AM
> > To: Kai-Heng Feng <kai.heng.feng@canonical.com>
> > Cc: Rafael J. Wysocki <rjw@rjwysocki.net>; Len Brown <lenb@kernel.org>; ACPI
> > Devel Maling List <linux-acpi@vger.kernel.org>; Linux Kernel Mailing List <linux-
> > kernel@vger.kernel.org>; Mario Limonciello <mario.limonciello@dell.com>
> > Subject: Re: [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and
> > Precision M5530
> >
> > On Tue, Jan 30, 2018 at 8:07 AM, Kai-Heng Feng
> > <kai.heng.feng@canonical.com> wrote:
> > > The i2c touchpad on Dell XPS 9570 and Precision M5530 doesn't work out
> > > of box.
> > >
> > > The touchpad relies on its _INI method to update its _HID value from
> > > XXXX0000 to SYNA2393.
> > > Also, the _STA relies on value of I2CN to report correct status.
> > >
> > > Set acpi_gbl_parse_table_as_term_list so the value of I2CN can be
> > > correctly set up, and _INI can get run. The ACPI table in this machine
> > > is designed to get parsed this way.
> 
> I thought I would give everyone an update: we are getting close to finishing patches
> to enable this term list parsing by default as well as a few other fixes with forward
> referencing of package elements. Once we have established that these patches are
> stable, we will get rid of acpi_gbl_parse_table_as_term_list. So this quirk may not
> be needed in the near future...

Rafael,

Would you be opposed to carrying a patch similar to this (proposed) quirk patch in 
kernel and reverting when Erik submits patches that get rid of
acpi_gbl_parse_table_as_term_list?

The reason being, I think this could also be a candidate to bring back to @stable
and fix this problem on earlier kernels too.

I don’t believe the patches that get rid of acpi_gbl_parse_table_as_term_list likely
will be good candidates for @stable.


> 
> Erik
> > >
> > > Also, change the quirk table to a more generic name.
> >
> > > +static int set_gbl_term_list(const struct dmi_system_id *id) {
> > > +       pr_notice("%s detected - parse the entire table as a term_list\n",
> > > +                 id->ident);
> > > +       acpi_gbl_parse_table_as_term_list = 1;
> > > +       return 0;
> > > +}
> > >  #endif
> >
> > The above should be outside of another #ifdef. Basically after the above #endif.
> >
> > >  #else
> >
> > >  #endif
> >
> > > @@ -1005,7 +1034,7 @@ void __init acpi_early_init(void)
> >
> > >          * If the machine falls into the DMI check table,
> > >          * DSDT will be copied to memory
> > >          */
> >
> > It might make sense to adjust comment above that it's about quirks in general.
> > And, if needed, move current content to actual DMI group of records.
> >
> > > -       dmi_check_system(dsdt_dmi_table);
> > > +       dmi_check_system(acpi_quirks_dmi_table);
> >
> > --
> > With Best Regards,
> > Andy Shevchenko
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of
> > a message to majordomo@vger.kernel.org More majordomo info at
> > http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and Precision M5530
@ 2018-01-30 19:03       ` Mario.Limonciello
  0 siblings, 0 replies; 12+ messages in thread
From: Mario.Limonciello @ 2018-01-30 19:03 UTC (permalink / raw)
  To: erik.schmauss, andy.shevchenko, kai.heng.feng
  Cc: rjw, lenb, linux-acpi, linux-kernel, robert.moore



> -----Original Message-----
> From: Schmauss, Erik [mailto:erik.schmauss@intel.com]
> Sent: Tuesday, January 30, 2018 12:38 PM
> To: Andy Shevchenko <andy.shevchenko@gmail.com>; Kai-Heng Feng
> <kai.heng.feng@canonical.com>
> Cc: Rafael J. Wysocki <rjw@rjwysocki.net>; Len Brown <lenb@kernel.org>; ACPI
> Devel Maling List <linux-acpi@vger.kernel.org>; Linux Kernel Mailing List <linux-
> kernel@vger.kernel.org>; Limonciello, Mario <Mario_Limonciello@Dell.com>;
> Moore, Robert <robert.moore@intel.com>
> Subject: RE: [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and
> Precision M5530
> 
> Hi,
> > -----Original Message-----
> > From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> > owner@vger.kernel.org] On Behalf Of Andy Shevchenko
> > Sent: Tuesday, January 30, 2018 10:18 AM
> > To: Kai-Heng Feng <kai.heng.feng@canonical.com>
> > Cc: Rafael J. Wysocki <rjw@rjwysocki.net>; Len Brown <lenb@kernel.org>; ACPI
> > Devel Maling List <linux-acpi@vger.kernel.org>; Linux Kernel Mailing List <linux-
> > kernel@vger.kernel.org>; Mario Limonciello <mario.limonciello@dell.com>
> > Subject: Re: [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and
> > Precision M5530
> >
> > On Tue, Jan 30, 2018 at 8:07 AM, Kai-Heng Feng
> > <kai.heng.feng@canonical.com> wrote:
> > > The i2c touchpad on Dell XPS 9570 and Precision M5530 doesn't work out
> > > of box.
> > >
> > > The touchpad relies on its _INI method to update its _HID value from
> > > XXXX0000 to SYNA2393.
> > > Also, the _STA relies on value of I2CN to report correct status.
> > >
> > > Set acpi_gbl_parse_table_as_term_list so the value of I2CN can be
> > > correctly set up, and _INI can get run. The ACPI table in this machine
> > > is designed to get parsed this way.
> 
> I thought I would give everyone an update: we are getting close to finishing patches
> to enable this term list parsing by default as well as a few other fixes with forward
> referencing of package elements. Once we have established that these patches are
> stable, we will get rid of acpi_gbl_parse_table_as_term_list. So this quirk may not
> be needed in the near future...

Rafael,

Would you be opposed to carrying a patch similar to this (proposed) quirk patch in 
kernel and reverting when Erik submits patches that get rid of
acpi_gbl_parse_table_as_term_list?

The reason being, I think this could also be a candidate to bring back to @stable
and fix this problem on earlier kernels too.

I don’t believe the patches that get rid of acpi_gbl_parse_table_as_term_list likely
will be good candidates for @stable.


> 
> Erik
> > >
> > > Also, change the quirk table to a more generic name.
> >
> > > +static int set_gbl_term_list(const struct dmi_system_id *id) {
> > > +       pr_notice("%s detected - parse the entire table as a term_list\n",
> > > +                 id->ident);
> > > +       acpi_gbl_parse_table_as_term_list = 1;
> > > +       return 0;
> > > +}
> > >  #endif
> >
> > The above should be outside of another #ifdef. Basically after the above #endif.
> >
> > >  #else
> >
> > >  #endif
> >
> > > @@ -1005,7 +1034,7 @@ void __init acpi_early_init(void)
> >
> > >          * If the machine falls into the DMI check table,
> > >          * DSDT will be copied to memory
> > >          */
> >
> > It might make sense to adjust comment above that it's about quirks in general.
> > And, if needed, move current content to actual DMI group of records.
> >
> > > -       dmi_check_system(dsdt_dmi_table);
> > > +       dmi_check_system(acpi_quirks_dmi_table);
> >
> > --
> > With Best Regards,
> > Andy Shevchenko
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of
> > a message to majordomo@vger.kernel.org More majordomo info at
> > http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and Precision M5530
  2018-01-30 18:17 ` Andy Shevchenko
@ 2018-01-30 18:37   ` Schmauss, Erik
  2018-01-30 19:03       ` Mario.Limonciello
  2018-01-31  4:27     ` Kai Heng Feng
  2018-01-31  4:20   ` Kai Heng Feng
  1 sibling, 2 replies; 12+ messages in thread
From: Schmauss, Erik @ 2018-01-30 18:37 UTC (permalink / raw)
  To: Andy Shevchenko, Kai-Heng Feng
  Cc: Rafael J. Wysocki, Len Brown, ACPI Devel Maling List,
	Linux Kernel Mailing List, Mario Limonciello, Moore, Robert

Hi,
> -----Original Message-----
> From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> owner@vger.kernel.org] On Behalf Of Andy Shevchenko
> Sent: Tuesday, January 30, 2018 10:18 AM
> To: Kai-Heng Feng <kai.heng.feng@canonical.com>
> Cc: Rafael J. Wysocki <rjw@rjwysocki.net>; Len Brown <lenb@kernel.org>; ACPI
> Devel Maling List <linux-acpi@vger.kernel.org>; Linux Kernel Mailing List <linux-
> kernel@vger.kernel.org>; Mario Limonciello <mario.limonciello@dell.com>
> Subject: Re: [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and
> Precision M5530
> 
> On Tue, Jan 30, 2018 at 8:07 AM, Kai-Heng Feng
> <kai.heng.feng@canonical.com> wrote:
> > The i2c touchpad on Dell XPS 9570 and Precision M5530 doesn't work out
> > of box.
> >
> > The touchpad relies on its _INI method to update its _HID value from
> > XXXX0000 to SYNA2393.
> > Also, the _STA relies on value of I2CN to report correct status.
> >
> > Set acpi_gbl_parse_table_as_term_list so the value of I2CN can be
> > correctly set up, and _INI can get run. The ACPI table in this machine
> > is designed to get parsed this way.

I thought I would give everyone an update: we are getting close to finishing patches to enable this term list parsing by default as well as a few other fixes with forward referencing of package elements. Once we have established that these patches are stable, we will get rid of acpi_gbl_parse_table_as_term_list. So this quirk may not be needed in the near future...

Erik
> >
> > Also, change the quirk table to a more generic name.
> 
> > +static int set_gbl_term_list(const struct dmi_system_id *id) {
> > +       pr_notice("%s detected - parse the entire table as a term_list\n",
> > +                 id->ident);
> > +       acpi_gbl_parse_table_as_term_list = 1;
> > +       return 0;
> > +}
> >  #endif
> 
> The above should be outside of another #ifdef. Basically after the above #endif.
> 
> >  #else
> 
> >  #endif
> 
> > @@ -1005,7 +1034,7 @@ void __init acpi_early_init(void)
> 
> >          * If the machine falls into the DMI check table,
> >          * DSDT will be copied to memory
> >          */
> 
> It might make sense to adjust comment above that it's about quirks in general.
> And, if needed, move current content to actual DMI group of records.
> 
> > -       dmi_check_system(dsdt_dmi_table);
> > +       dmi_check_system(acpi_quirks_dmi_table);
> 
> --
> With Best Regards,
> Andy Shevchenko
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of
> a message to majordomo@vger.kernel.org More majordomo info at
> http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and Precision M5530
  2018-01-30  6:07 Kai-Heng Feng
@ 2018-01-30 18:17 ` Andy Shevchenko
  2018-01-30 18:37   ` Schmauss, Erik
  2018-01-31  4:20   ` Kai Heng Feng
  0 siblings, 2 replies; 12+ messages in thread
From: Andy Shevchenko @ 2018-01-30 18:17 UTC (permalink / raw)
  To: Kai-Heng Feng
  Cc: Rafael J. Wysocki, Len Brown, ACPI Devel Maling List,
	Linux Kernel Mailing List, Mario Limonciello

On Tue, Jan 30, 2018 at 8:07 AM, Kai-Heng Feng
<kai.heng.feng@canonical.com> wrote:
> The i2c touchpad on Dell XPS 9570 and Precision M5530 doesn't work out
> of box.
>
> The touchpad relies on its _INI method to update its _HID value from
> XXXX0000 to SYNA2393.
> Also, the _STA relies on value of I2CN to report correct status.
>
> Set acpi_gbl_parse_table_as_term_list so the value of I2CN can be
> correctly set up, and _INI can get run. The ACPI table in this machine
> is designed to get parsed this way.
>
> Also, change the quirk table to a more generic name.

> +static int set_gbl_term_list(const struct dmi_system_id *id)
> +{
> +       pr_notice("%s detected - parse the entire table as a term_list\n",
> +                 id->ident);
> +       acpi_gbl_parse_table_as_term_list = 1;
> +       return 0;
> +}
>  #endif

The above should be outside of another #ifdef. Basically after the above #endif.

>  #else

>  #endif

> @@ -1005,7 +1034,7 @@ void __init acpi_early_init(void)

>          * If the machine falls into the DMI check table,
>          * DSDT will be copied to memory
>          */

It might make sense to adjust comment above that it's about quirks in
general. And, if needed, move current content to actual DMI group of
records.

> -       dmi_check_system(dsdt_dmi_table);
> +       dmi_check_system(acpi_quirks_dmi_table);

-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and Precision M5530
@ 2018-01-30  6:07 Kai-Heng Feng
  2018-01-30 18:17 ` Andy Shevchenko
  0 siblings, 1 reply; 12+ messages in thread
From: Kai-Heng Feng @ 2018-01-30  6:07 UTC (permalink / raw)
  To: rjw
  Cc: lenb, andy.shevchenko, linux-acpi, linux-kernel, Kai-Heng Feng,
	Mario Limonciello

The i2c touchpad on Dell XPS 9570 and Precision M5530 doesn't work out
of box.

The touchpad relies on its _INI method to update its _HID value from
XXXX0000 to SYNA2393.
Also, the _STA relies on value of I2CN to report correct status.

Set acpi_gbl_parse_table_as_term_list so the value of I2CN can be
correctly set up, and _INI can get run. The ACPI table in this machine
is designed to get parsed this way.

Also, change the quirk table to a more generic name.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=198515
Cc: Mario Limonciello <mario.limonciello@dell.com>
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
---
v2: Andy's suggestion, merge to a single quirk table.

 drivers/acpi/bus.c | 35 ++++++++++++++++++++++++++++++++---
 1 file changed, 32 insertions(+), 3 deletions(-)

diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index 4d0979e02a28..3999e175b6f4 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -65,9 +65,38 @@ static int set_copy_dsdt(const struct dmi_system_id *id)
 	acpi_gbl_copy_dsdt_locally = 1;
 	return 0;
 }
+
+static int set_gbl_term_list(const struct dmi_system_id *id)
+{
+	pr_notice("%s detected - parse the entire table as a term_list\n",
+		  id->ident);
+	acpi_gbl_parse_table_as_term_list = 1;
+	return 0;
+}
 #endif
 
-static const struct dmi_system_id dsdt_dmi_table[] __initconst = {
+static const struct dmi_system_id acpi_quirks_dmi_table[] __initconst = {
+	/*
+	 * Touchpad on Dell XPS 9570/Precision M5530 doesn't work under I2C
+	 * mode.
+	 * https://bugzilla.kernel.org/show_bug.cgi?id=198515
+	 */
+	{
+		.callback = set_gbl_term_list,
+		.ident = "Dell Precision M5530",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Precision M5530"),
+		},
+	},
+	{
+		.callback = set_gbl_term_list,
+		.ident = "Dell XPS 15 9570",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "XPS 15 9570"),
+		},
+	},
 	/*
 	 * Invoke DSDT corruption work-around on all Toshiba Satellite.
 	 * https://bugzilla.kernel.org/show_bug.cgi?id=14679
@@ -83,7 +112,7 @@ static const struct dmi_system_id dsdt_dmi_table[] __initconst = {
 	{}
 };
 #else
-static const struct dmi_system_id dsdt_dmi_table[] __initconst = {
+static const struct dmi_system_id acpi_quirks_dmi_table[] __initconst = {
 	{}
 };
 #endif
@@ -1005,7 +1034,7 @@ void __init acpi_early_init(void)
 	 * If the machine falls into the DMI check table,
 	 * DSDT will be copied to memory
 	 */
-	dmi_check_system(dsdt_dmi_table);
+	dmi_check_system(acpi_quirks_dmi_table);
 
 	status = acpi_reallocate_root_table();
 	if (ACPI_FAILURE(status)) {
-- 
2.15.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2018-02-08  9:49 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-29  6:10 [PATCH] ACPI: Parse entire table as a term_list for Dell XPS 9570 and Precision M5530 Kai-Heng Feng
2018-01-29 12:56 ` Andy Shevchenko
2018-01-30  2:46   ` Kai Heng Feng
2018-01-30  6:07 Kai-Heng Feng
2018-01-30 18:17 ` Andy Shevchenko
2018-01-30 18:37   ` Schmauss, Erik
2018-01-30 19:03     ` Mario.Limonciello
2018-01-30 19:03       ` Mario.Limonciello
2018-01-30 20:09       ` Moore, Robert
2018-02-08  9:48         ` Rafael J. Wysocki
2018-01-31  4:27     ` Kai Heng Feng
2018-01-31  4:20   ` Kai Heng Feng

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.