Thread (130 messages) 130 messages, 14 authors, 2014-10-07

Re: [PATCH v3 13/15] input: gpio_keys_polled - Add ACPI probing support

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2014-10-01 16:28:09
Also in: linux-acpi, lkml

On Wed, Oct 01, 2014 at 12:15:35PM +0300, Mika Westerberg wrote:
On Wed, Oct 01, 2014 at 12:48:46AM -0700, Dmitry Torokhov wrote:
quoted
On Wed, Oct 01, 2014 at 04:20:43AM +0200, Rafael J. Wysocki wrote:
quoted
From: Mika Westerberg <mika.westerberg@linux.intel.com>

Allow the driver to probe from ACPI namespace.

Signed-off-by: Aaron Lu <redacted>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <redacted>
---
 drivers/input/keyboard/gpio_keys_polled.c |    7 +++++++
 1 file changed, 7 insertions(+)

Index: linux-pm/drivers/input/keyboard/gpio_keys_polled.c
===================================================================
--- linux-pm.orig/drivers/input/keyboard/gpio_keys_polled.c
+++ linux-pm/drivers/input/keyboard/gpio_keys_polled.c
@@ -181,6 +181,12 @@ static const struct of_device_id gpio_ke
 };
 MODULE_DEVICE_TABLE(of, gpio_keys_polled_of_match);
 
+static const struct acpi_device_id gpio_keys_polled_acpi_match[] = {
+	{ "PRP0001" }, /* Device Tree shoehorned into ACPI */
+	{ },
+};
+MODULE_DEVICE_TABLE(acpi, gpio_keys_polled_acpi_match);
+
 static int gpio_keys_polled_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
@@ -309,6 +315,7 @@ static struct platform_driver gpio_keys_
 		.name	= DRV_NAME,
 		.owner	= THIS_MODULE,
 		.of_match_table = gpio_keys_polled_of_match,
+		.acpi_match_table = gpio_keys_polled_acpi_match,
o
Hmm, why do we need the generic "PRP0001" in every driver? The ACPI device
should have PRP0001 and ACPI bus should know to look into OF matching table
for such devices.
Arnd had a good idea for this. How about,

	.acpi_match_table = acpi_match_by_of_compatible,

where acpi_match_by_of_compatible is provided by ACPI core? Does that
work better for you?
I still do not see the point. ACPI core knows how to handle
drv->of_match_table, so unless we need to support ACPI_only binding in a
given driver I do not understand why we need to add boilerplate code.

Thanks.

-- 
Dmitry
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help