Re: [PATCH v3 10/15] leds: leds-gpio: Add ACPI probing support

Dmitry Torokhov
2014-10-01T18:21:53Z

On Wed, Oct 01, 2014 at 11:11:46AM -0700, Darren Hart wrote:
> On 10/1/14, 9:30, "Dmitry Torokhov" <dmitry.torokhov@gmail.com> wrote:
>
> >On Wed, Oct 01, 2014 at 10:13:04AM +0200, Arnd Bergmann wrote:
> >> On Wednesday 01 October 2014 04:17:02 Rafael J. Wysocki wrote:
> >> > Index: linux-pm/drivers/leds/leds-gpio.c
> >> > ===================================================================
> >> > --- linux-pm.orig/drivers/leds/leds-gpio.c
> >> > +++ linux-pm/drivers/leds/leds-gpio.c
> >> > @@ -231,6 +231,13 @@ static const struct of_device_id of_gpio
> >> >
> >> > MODULE_DEVICE_TABLE(of, of_gpio_leds_match);
> >> >
> >> > +static const struct acpi_device_id acpi_gpio_leds_match[] = {
> >> > + { "PRP0001" }, /* Device Tree shoehorned into ACPI */
> >> > + {},
> >> > +};
> >> > +
> >> > +MODULE_DEVICE_TABLE(acpi, acpi_gpio_leds_match);
> >> > +
> >> > static int gpio_led_probe(struct platform_device *pdev)
> >> > {
> >> > struct gpio_led_platform_data *pdata =
> >>dev_get_platdata(&pdev->dev);
> >> > @@ -286,6 +293,7 @@ static struct platform_driver gpio_led_d
> >> > .name = "leds-gpio",
> >> > .owner = THIS_MODULE,
> >> > .of_match_table = of_gpio_leds_match,
> >> > + .acpi_match_table = acpi_gpio_leds_match,
> >> > },
> >> > };
> >>
> >> Is this something you'd have to do in every driver you want to support
> >> _PRP based probing? For the ".acpi_match_table =" reference, I think
> >> you could actually provide a generic acpi_device_id table exported from
> >> core code that you refer to, so each driver just does
> >>
> >> .acpi_match_table = acpi_match_by_of_compatible,
> >
> >No, I think in absence of drv->acpi_match_table ACPI core should just go
> >and
> >use drv->of_match_table to do the matching and be done with it.
>
> But then you will match drivers that have of-only support that don't know
> anything about ACPI and haven't been updated to use the new API. Worse,
> some of those drivers will assume of node structs and such and potentially
> panic. Unless I'm sorry mistaken here....

Does ACPI set dev->of_node pointer? I'd expect them to fail right there...

--
Dmitry