Re: [PATCH] net: rfkill: gpio: Add default GPIO driver mappings for ACPI

From: Linus Walleij
Date: Thu Oct 30 2014 - 11:20:50 EST


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-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/