On Fri, Aug 30, 2019 at 08:00:24AM +0800, Peter Cai wrote: > The firmware of GPD P2 Max could not handle panel resets although code > is present in DSDT. The kernel needs to take on this job instead, but > the DSDT does not provide _DSD, rendering kernel helpless when trying to > find the respective GPIO pins. > > Fortunately, this time GPD has proper DMI vendor / product strings that > we could match against. We simply apply an acpi_gpio_mapping table when > GPD P2 Max is matched. > > Additionally, the DSDT definition of the irq pin specifies a wrong > polarity. The new quirk introduced in the previous patch > (ACPI_GPIO_QUIRK_OVERRIDE_POLARITY) is applied to correct this. > +#ifdef CONFIG_ACPI I guess most of these #ifdef:s makes code less readable for exchange of saving few bytes in the module footprint. > + { "irq-gpios", &irq_gpios_default, 1, > + ACPI_GPIO_QUIRK_OVERRIDE_POLARITY }, One line? > + .matches = { > + DMI_MATCH(DMI_SYS_VENDOR, "GPD"), > + DMI_MATCH(DMI_PRODUCT_NAME, "P2 MAX") Comma at the end? > + }, > + .driver_data = &gpio_mapping_force_irq_active_high Ditto. -- With Best Regards, Andy Shevchenko