Thread (6 messages) 6 messages, 3 authors, 2019-09-02

Re: [PATCH 2/2] touchscreen: goodix: define GPIO mapping for GPD P2 Max

From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date: 2019-08-30 11:55:12
Also in: linux-acpi, linux-gpio, lkml

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help