On Mon, Oct 27, 2014 at 11:15 AM, Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> wrote: > The driver uses devm_gpiod_get_index(..., index) so that the index refers > directly to the GpioIo resource under the ACPI device. The problem with > this is that if the ordering changes we get wrong GPIOs. > > With ACPI 5.1 _DSD we can now use names instead to reference GPIOs > analogous to Device Tree. However, we still have systems out there that do > not provide _DSD at all. These systems must be supported as well. > > Luckily we now have acpi_dev_add_driver_gpios() that can be used to provide > mappings for systems where _DSD is not provided and still take advantage of > _DSD if it exists. > > This patch changes the driver to create default GPIO mappings if we are > running on ACPI system. > > While there we can drop the indices completely and use devm_gpiod_get() > with name instead. > > Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> > --- > Hi, > > This patch is based on top of linux-pm/device-properties [1] and following > patch from Rafael [2]. > > Johannes, John, > > If you are happy with the patch, can you ACK it so that we can merge it > with the rest of the device-properties patches. Thanks. > > [1] git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git > [2] https://lkml.org/lkml/2014/10/24/690 (...) > +static const struct acpi_gpio_params reset_gpios = { 0, 0, false }; > +static const struct acpi_gpio_params shutdown_gpios = { 1, 0, false }; > + > +static const struct acpi_gpio_mapping acpi_rfkill_default_gpios[] = { > + { "reset-gpios", &reset_gpios, 1 }, > + { "shutdown-gpios", &shutdown_gpios, 1 }, > + { }, > +}; Jaysis, it could use a comment above the map telling the poor code reader what is actually going on. Other than that, this is what we have to live with I guess so: Acked-by: Linus Walleij <linus.walleij@xxxxxxxxxx> Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html