Message ID | 20180130060744.19049-1-kai.heng.feng@canonical.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
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);
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
> -----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
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTWFyaW8uTGltb25jaWVs bG9AZGVsbC5jb20gW21haWx0bzpNYXJpby5MaW1vbmNpZWxsb0BkZWxsLmNvbV0NCj4gU2VudDog VHVlc2RheSwgSmFudWFyeSAzMCwgMjAxOCAxMTowMyBBTQ0KPiBUbzogU2NobWF1c3MsIEVyaWsg PGVyaWsuc2NobWF1c3NAaW50ZWwuY29tPjsgYW5keS5zaGV2Y2hlbmtvQGdtYWlsLmNvbTsNCj4g a2FpLmhlbmcuZmVuZ0BjYW5vbmljYWwuY29tDQo+IENjOiByandAcmp3eXNvY2tpLm5ldDsgbGVu YkBrZXJuZWwub3JnOyBsaW51eC1hY3BpQHZnZXIua2VybmVsLm9yZzsNCj4gbGludXgta2VybmVs QHZnZXIua2VybmVsLm9yZzsgTW9vcmUsIFJvYmVydCA8cm9iZXJ0Lm1vb3JlQGludGVsLmNvbT4N Cj4gU3ViamVjdDogUkU6IFtQQVRDSF0gQUNQSTogUGFyc2UgZW50aXJlIHRhYmxlIGFzIGEgdGVy bV9saXN0IGZvciBEZWxsDQo+IFhQUyA5NTcwIGFuZCBQcmVjaXNpb24gTTU1MzANCj4gDQo+IA0K PiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFNjaG1hdXNzLCBF cmlrIFttYWlsdG86ZXJpay5zY2htYXVzc0BpbnRlbC5jb21dDQo+ID4gU2VudDogVHVlc2RheSwg SmFudWFyeSAzMCwgMjAxOCAxMjozOCBQTQ0KPiA+IFRvOiBBbmR5IFNoZXZjaGVua28gPGFuZHku c2hldmNoZW5rb0BnbWFpbC5jb20+OyBLYWktSGVuZyBGZW5nDQo+ID4gPGthaS5oZW5nLmZlbmdA Y2Fub25pY2FsLmNvbT4NCj4gPiBDYzogUmFmYWVsIEouIFd5c29ja2kgPHJqd0Byand5c29ja2ku bmV0PjsgTGVuIEJyb3duDQo+ID4gPGxlbmJAa2VybmVsLm9yZz47IEFDUEkgRGV2ZWwgTWFsaW5n IExpc3QNCj4gPiA8bGludXgtYWNwaUB2Z2VyLmtlcm5lbC5vcmc+OyBMaW51eCBLZXJuZWwgTWFp bGluZyBMaXN0IDxsaW51eC0NCj4gPiBrZXJuZWxAdmdlci5rZXJuZWwub3JnPjsgTGltb25jaWVs bG8sIE1hcmlvDQo+ID4gPE1hcmlvX0xpbW9uY2llbGxvQERlbGwuY29tPjsgTW9vcmUsIFJvYmVy dCA8cm9iZXJ0Lm1vb3JlQGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBSRTogW1BBVENIXSBBQ1BJ OiBQYXJzZSBlbnRpcmUgdGFibGUgYXMgYSB0ZXJtX2xpc3QgZm9yIERlbGwNCj4gPiBYUFMgOTU3 MCBhbmQgUHJlY2lzaW9uIE01NTMwDQo+ID4NCj4gPiBIaSwNCj4gPiA+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBsaW51eC1hY3BpLW93bmVyQHZnZXIua2VybmVsLm9y ZyBbbWFpbHRvOmxpbnV4LWFjcGktDQo+ID4gPiBvd25lckB2Z2VyLmtlcm5lbC5vcmddIE9uIEJl aGFsZiBPZiBBbmR5IFNoZXZjaGVua28NCj4gPiA+IFNlbnQ6IFR1ZXNkYXksIEphbnVhcnkgMzAs IDIwMTggMTA6MTggQU0NCj4gPiA+IFRvOiBLYWktSGVuZyBGZW5nIDxrYWkuaGVuZy5mZW5nQGNh bm9uaWNhbC5jb20+DQo+ID4gPiBDYzogUmFmYWVsIEouIFd5c29ja2kgPHJqd0Byand5c29ja2ku bmV0PjsgTGVuIEJyb3duDQo+ID4gPiA8bGVuYkBrZXJuZWwub3JnPjsgQUNQSSBEZXZlbCBNYWxp bmcgTGlzdA0KPiA+ID4gPGxpbnV4LWFjcGlAdmdlci5rZXJuZWwub3JnPjsgTGludXggS2VybmVs IE1haWxpbmcgTGlzdCA8bGludXgtDQo+ID4gPiBrZXJuZWxAdmdlci5rZXJuZWwub3JnPjsgTWFy aW8gTGltb25jaWVsbG8NCj4gPiA+IDxtYXJpby5saW1vbmNpZWxsb0BkZWxsLmNvbT4NCj4gPiA+ IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIEFDUEk6IFBhcnNlIGVudGlyZSB0YWJsZSBhcyBhIHRlcm1f bGlzdCBmb3INCj4gPiA+IERlbGwgWFBTIDk1NzAgYW5kIFByZWNpc2lvbiBNNTUzMA0KPiA+ID4N Cj4gPiA+IE9uIFR1ZSwgSmFuIDMwLCAyMDE4IGF0IDg6MDcgQU0sIEthaS1IZW5nIEZlbmcNCj4g PiA+IDxrYWkuaGVuZy5mZW5nQGNhbm9uaWNhbC5jb20+IHdyb3RlOg0KPiA+ID4gPiBUaGUgaTJj IHRvdWNocGFkIG9uIERlbGwgWFBTIDk1NzAgYW5kIFByZWNpc2lvbiBNNTUzMCBkb2Vzbid0IHdv cmsNCj4gPiA+ID4gb3V0IG9mIGJveC4NCj4gPiA+ID4NCj4gPiA+ID4gVGhlIHRvdWNocGFkIHJl bGllcyBvbiBpdHMgX0lOSSBtZXRob2QgdG8gdXBkYXRlIGl0cyBfSElEIHZhbHVlDQo+ID4gPiA+ IGZyb20NCj4gPiA+ID4gWFhYWDAwMDAgdG8gU1lOQTIzOTMuDQo+ID4gPiA+IEFsc28sIHRoZSBf U1RBIHJlbGllcyBvbiB2YWx1ZSBvZiBJMkNOIHRvIHJlcG9ydCBjb3JyZWN0IHN0YXR1cy4NCj4g PiA+ID4NCj4gPiA+ID4gU2V0IGFjcGlfZ2JsX3BhcnNlX3RhYmxlX2FzX3Rlcm1fbGlzdCBzbyB0 aGUgdmFsdWUgb2YgSTJDTiBjYW4gYmUNCj4gPiA+ID4gY29ycmVjdGx5IHNldCB1cCwgYW5kIF9J TkkgY2FuIGdldCBydW4uIFRoZSBBQ1BJIHRhYmxlIGluIHRoaXMNCj4gPiA+ID4gbWFjaGluZSBp cyBkZXNpZ25lZCB0byBnZXQgcGFyc2VkIHRoaXMgd2F5Lg0KPiA+DQo+ID4gSSB0aG91Z2h0IEkg d291bGQgZ2l2ZSBldmVyeW9uZSBhbiB1cGRhdGU6IHdlIGFyZSBnZXR0aW5nIGNsb3NlIHRvDQo+ ID4gZmluaXNoaW5nIHBhdGNoZXMgdG8gZW5hYmxlIHRoaXMgdGVybSBsaXN0IHBhcnNpbmcgYnkg ZGVmYXVsdCBhcyB3ZWxsDQo+ID4gYXMgYSBmZXcgb3RoZXIgZml4ZXMgd2l0aCBmb3J3YXJkIHJl ZmVyZW5jaW5nIG9mIHBhY2thZ2UgZWxlbWVudHMuDQo+ID4gT25jZSB3ZSBoYXZlIGVzdGFibGlz aGVkIHRoYXQgdGhlc2UgcGF0Y2hlcyBhcmUgc3RhYmxlLCB3ZSB3aWxsIGdldA0KPiA+IHJpZCBv ZiBhY3BpX2dibF9wYXJzZV90YWJsZV9hc190ZXJtX2xpc3QuIFNvIHRoaXMgcXVpcmsgbWF5IG5v dCBiZQ0KPiBuZWVkZWQgaW4gdGhlIG5lYXIgZnV0dXJlLi4uDQo+IA0KPiBSYWZhZWwsDQo+IA0K PiBXb3VsZCB5b3UgYmUgb3Bwb3NlZCB0byBjYXJyeWluZyBhIHBhdGNoIHNpbWlsYXIgdG8gdGhp cyAocHJvcG9zZWQpDQo+IHF1aXJrIHBhdGNoIGluIGtlcm5lbCBhbmQgcmV2ZXJ0aW5nIHdoZW4g RXJpayBzdWJtaXRzIHBhdGNoZXMgdGhhdCBnZXQNCj4gcmlkIG9mIGFjcGlfZ2JsX3BhcnNlX3Rh YmxlX2FzX3Rlcm1fbGlzdD8NCj4gDQo+IFRoZSByZWFzb24gYmVpbmcsIEkgdGhpbmsgdGhpcyBj b3VsZCBhbHNvIGJlIGEgY2FuZGlkYXRlIHRvIGJyaW5nIGJhY2sNCj4gdG8gQHN0YWJsZSBhbmQg Zml4IHRoaXMgcHJvYmxlbSBvbiBlYXJsaWVyIGtlcm5lbHMgdG9vLg0KPiANCj4gSSBkb27igJl0 IGJlbGlldmUgdGhlIHBhdGNoZXMgdGhhdCBnZXQgcmlkIG9mDQo+IGFjcGlfZ2JsX3BhcnNlX3Rh YmxlX2FzX3Rlcm1fbGlzdCBsaWtlbHkgd2lsbCBiZSBnb29kIGNhbmRpZGF0ZXMgZm9yDQo+IEBz dGFibGUuDQo+IA0KDQoNCkRvZXMgYW55b25lIHJlbWVtYmVyIHdoYXQgd2FzIHRoZSBleGFjdCBw cm9ibGVtIHRoYXQgZm9yY2VkIHRoZSBjcmVhdGlvbiBvZiBwYXJzZV90YWJsZV9hc190ZXJtX2xp c3QgaW4gdGhlIGZpcnN0IHBsYWNlPw0KDQpCb2INCg0KDQo+IA0KPiA+DQo+ID4gRXJpaw0KPiA+ ID4gPg0KPiA+ID4gPiBBbHNvLCBjaGFuZ2UgdGhlIHF1aXJrIHRhYmxlIHRvIGEgbW9yZSBnZW5l cmljIG5hbWUuDQo+ID4gPg0KPiA+ID4gPiArc3RhdGljIGludCBzZXRfZ2JsX3Rlcm1fbGlzdChj b25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqaWQpIHsNCj4gPiA+ID4gKyAgICAgICBwcl9ub3Rp Y2UoIiVzIGRldGVjdGVkIC0gcGFyc2UgdGhlIGVudGlyZSB0YWJsZSBhcyBhDQo+IHRlcm1fbGlz dFxuIiwNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgaWQtPmlkZW50KTsNCj4gPiA+ID4gKyAg ICAgICBhY3BpX2dibF9wYXJzZV90YWJsZV9hc190ZXJtX2xpc3QgPSAxOw0KPiA+ID4gPiArICAg ICAgIHJldHVybiAwOw0KPiA+ID4gPiArfQ0KPiA+ID4gPiAgI2VuZGlmDQo+ID4gPg0KPiA+ID4g VGhlIGFib3ZlIHNob3VsZCBiZSBvdXRzaWRlIG9mIGFub3RoZXIgI2lmZGVmLiBCYXNpY2FsbHkg YWZ0ZXIgdGhlDQo+IGFib3ZlICNlbmRpZi4NCj4gPiA+DQo+ID4gPiA+ICAjZWxzZQ0KPiA+ID4N Cj4gPiA+ID4gICNlbmRpZg0KPiA+ID4NCj4gPiA+ID4gQEAgLTEwMDUsNyArMTAzNCw3IEBAIHZv aWQgX19pbml0IGFjcGlfZWFybHlfaW5pdCh2b2lkKQ0KPiA+ID4NCj4gPiA+ID4gICAgICAgICAg KiBJZiB0aGUgbWFjaGluZSBmYWxscyBpbnRvIHRoZSBETUkgY2hlY2sgdGFibGUsDQo+ID4gPiA+ ICAgICAgICAgICogRFNEVCB3aWxsIGJlIGNvcGllZCB0byBtZW1vcnkNCj4gPiA+ID4gICAgICAg ICAgKi8NCj4gPiA+DQo+ID4gPiBJdCBtaWdodCBtYWtlIHNlbnNlIHRvIGFkanVzdCBjb21tZW50 IGFib3ZlIHRoYXQgaXQncyBhYm91dCBxdWlya3MNCj4gaW4gZ2VuZXJhbC4NCj4gPiA+IEFuZCwg aWYgbmVlZGVkLCBtb3ZlIGN1cnJlbnQgY29udGVudCB0byBhY3R1YWwgRE1JIGdyb3VwIG9mIHJl Y29yZHMuDQo+ID4gPg0KPiA+ID4gPiAtICAgICAgIGRtaV9jaGVja19zeXN0ZW0oZHNkdF9kbWlf dGFibGUpOw0KPiA+ID4gPiArICAgICAgIGRtaV9jaGVja19zeXN0ZW0oYWNwaV9xdWlya3NfZG1p X3RhYmxlKTsNCj4gPiA+DQo+ID4gPiAtLQ0KPiA+ID4gV2l0aCBCZXN0IFJlZ2FyZHMsDQo+ID4g PiBBbmR5IFNoZXZjaGVua28NCj4gPiA+IC0tDQo+ID4gPiBUbyB1bnN1YnNjcmliZSBmcm9tIHRo aXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUNCj4gPiA+IGxpbnV4LWFjcGkiIGlu IHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnDQo+ID4g PiBNb3JlIG1ham9yZG9tbyBpbmZvIGF0IGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21v LWluZm8uaHRtbA0K -- 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
> 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 -- 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
> 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 -- 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
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 -- 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
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)) {
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(-)