Re: [PATCH v3 2/6] net: rfkill: gpio: convert to descriptor-based GPIO interface
On Mon, Dec 23, 2013 at 10:14 PM, Johannes Berg wrote: > On Mon, 2013-12-23 at 12:54 +0200, Mika Westerberg wrote: >> On Wed, Dec 11, 2013 at 01:00:18PM +0100, Linus Walleij wrote: >> > On Tue, Nov 26, 2013 at 11:05 AM, Mika Westerberg >> > wrote: >> > >> > > From: Heikki Krogerus >> > > >> > > Convert to the safer gpiod_* family of API functions. >> > > >> > > Signed-off-by: Heikki Krogerus >> > > Signed-off-by: Mika Westerberg >> > > Tested-by: Stephen Warren >> >> Johannes B, David M, >> >> Are you fine with this patch? If yes, could you ack it so that we could get >> it merged for 3.14. > > I have no objection to this particular patch. I can't really comment on > it, but I never really delved too deeply into the rfkill-gpio thing - I > guess it works for whoever needed it :) I take that as an ACK ;-) Patch applied. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 2/6] net: rfkill: gpio: convert to descriptor-based GPIO interface
On Mon, Dec 23, 2013 at 10:14 PM, Johannes Berg johan...@sipsolutions.net wrote: On Mon, 2013-12-23 at 12:54 +0200, Mika Westerberg wrote: On Wed, Dec 11, 2013 at 01:00:18PM +0100, Linus Walleij wrote: On Tue, Nov 26, 2013 at 11:05 AM, Mika Westerberg mika.westerb...@linux.intel.com wrote: From: Heikki Krogerus heikki.kroge...@linux.intel.com Convert to the safer gpiod_* family of API functions. Signed-off-by: Heikki Krogerus heikki.kroge...@linux.intel.com Signed-off-by: Mika Westerberg mika.westerb...@linux.intel.com Tested-by: Stephen Warren swar...@nvidia.com Johannes B, David M, Are you fine with this patch? If yes, could you ack it so that we could get it merged for 3.14. I have no objection to this particular patch. I can't really comment on it, but I never really delved too deeply into the rfkill-gpio thing - I guess it works for whoever needed it :) I take that as an ACK ;-) Patch applied. Yours, Linus Walleij -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 2/6] net: rfkill: gpio: convert to descriptor-based GPIO interface
On Mon, 2013-12-23 at 12:54 +0200, Mika Westerberg wrote: > On Wed, Dec 11, 2013 at 01:00:18PM +0100, Linus Walleij wrote: > > On Tue, Nov 26, 2013 at 11:05 AM, Mika Westerberg > > wrote: > > > > > From: Heikki Krogerus > > > > > > Convert to the safer gpiod_* family of API functions. > > > > > > Signed-off-by: Heikki Krogerus > > > Signed-off-by: Mika Westerberg > > > Tested-by: Stephen Warren > > Johannes B, David M, > > Are you fine with this patch? If yes, could you ack it so that we could get > it merged for 3.14. I have no objection to this particular patch. I can't really comment on it, but I never really delved too deeply into the rfkill-gpio thing - I guess it works for whoever needed it :) johannes -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 2/6] net: rfkill: gpio: convert to descriptor-based GPIO interface
On Wed, Dec 11, 2013 at 01:00:18PM +0100, Linus Walleij wrote: > On Tue, Nov 26, 2013 at 11:05 AM, Mika Westerberg > wrote: > > > From: Heikki Krogerus > > > > Convert to the safer gpiod_* family of API functions. > > > > Signed-off-by: Heikki Krogerus > > Signed-off-by: Mika Westerberg > > Tested-by: Stephen Warren Johannes B, David M, Are you fine with this patch? If yes, could you ack it so that we could get it merged for 3.14. Thanks! Here's a link to this series: https://lkml.org/lkml/2013/11/26/104 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 2/6] net: rfkill: gpio: convert to descriptor-based GPIO interface
On Wed, Dec 11, 2013 at 01:00:18PM +0100, Linus Walleij wrote: On Tue, Nov 26, 2013 at 11:05 AM, Mika Westerberg mika.westerb...@linux.intel.com wrote: From: Heikki Krogerus heikki.kroge...@linux.intel.com Convert to the safer gpiod_* family of API functions. Signed-off-by: Heikki Krogerus heikki.kroge...@linux.intel.com Signed-off-by: Mika Westerberg mika.westerb...@linux.intel.com Tested-by: Stephen Warren swar...@nvidia.com Johannes B, David M, Are you fine with this patch? If yes, could you ack it so that we could get it merged for 3.14. Thanks! Here's a link to this series: https://lkml.org/lkml/2013/11/26/104 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 2/6] net: rfkill: gpio: convert to descriptor-based GPIO interface
On Mon, 2013-12-23 at 12:54 +0200, Mika Westerberg wrote: On Wed, Dec 11, 2013 at 01:00:18PM +0100, Linus Walleij wrote: On Tue, Nov 26, 2013 at 11:05 AM, Mika Westerberg mika.westerb...@linux.intel.com wrote: From: Heikki Krogerus heikki.kroge...@linux.intel.com Convert to the safer gpiod_* family of API functions. Signed-off-by: Heikki Krogerus heikki.kroge...@linux.intel.com Signed-off-by: Mika Westerberg mika.westerb...@linux.intel.com Tested-by: Stephen Warren swar...@nvidia.com Johannes B, David M, Are you fine with this patch? If yes, could you ack it so that we could get it merged for 3.14. I have no objection to this particular patch. I can't really comment on it, but I never really delved too deeply into the rfkill-gpio thing - I guess it works for whoever needed it :) johannes -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 2/6] net: rfkill: gpio: convert to descriptor-based GPIO interface
On Tue, Nov 26, 2013 at 11:05 AM, Mika Westerberg wrote: > From: Heikki Krogerus > > Convert to the safer gpiod_* family of API functions. > > Signed-off-by: Heikki Krogerus > Signed-off-by: Mika Westerberg > Tested-by: Stephen Warren > --- > net/rfkill/rfkill-gpio.c | 77 > +--- > 1 file changed, 34 insertions(+), 43 deletions(-) > > diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c > index 5620d3c07479..bd2a5b90400c 100644 > --- a/net/rfkill/rfkill-gpio.c > +++ b/net/rfkill/rfkill-gpio.c > @@ -25,15 +25,15 @@ > #include > #include > #include > -#include > +#include > > #include > > struct rfkill_gpio_data { > const char *name; > enum rfkill_typetype; > - int reset_gpio; > - int shutdown_gpio; > + struct gpio_desc*reset_gpio; > + struct gpio_desc*shutdown_gpio; > > struct rfkill *rfkill_dev; > char*reset_name; > @@ -48,19 +48,15 @@ static int rfkill_gpio_set_power(void *data, bool blocked) > struct rfkill_gpio_data *rfkill = data; > > if (blocked) { > - if (gpio_is_valid(rfkill->shutdown_gpio)) > - gpio_set_value(rfkill->shutdown_gpio, 0); > - if (gpio_is_valid(rfkill->reset_gpio)) > - gpio_set_value(rfkill->reset_gpio, 0); > + gpiod_set_value(rfkill->shutdown_gpio, 0); > + gpiod_set_value(rfkill->reset_gpio, 0); > if (!IS_ERR(rfkill->clk) && rfkill->clk_enabled) > clk_disable(rfkill->clk); > } else { > if (!IS_ERR(rfkill->clk) && !rfkill->clk_enabled) > clk_enable(rfkill->clk); > - if (gpio_is_valid(rfkill->reset_gpio)) > - gpio_set_value(rfkill->reset_gpio, 1); > - if (gpio_is_valid(rfkill->shutdown_gpio)) > - gpio_set_value(rfkill->shutdown_gpio, 1); > + gpiod_set_value(rfkill->reset_gpio, 1); > + gpiod_set_value(rfkill->shutdown_gpio, 1); > } > > rfkill->clk_enabled = blocked; > @@ -83,8 +79,6 @@ static int rfkill_gpio_acpi_probe(struct device *dev, > > rfkill->name = dev_name(dev); > rfkill->type = (unsigned)id->driver_data; > - rfkill->reset_gpio = acpi_get_gpio_by_index(dev, 0, NULL); > - rfkill->shutdown_gpio = acpi_get_gpio_by_index(dev, 1, NULL); > > return 0; > } > @@ -94,8 +88,9 @@ static int rfkill_gpio_probe(struct platform_device *pdev) > struct rfkill_gpio_platform_data *pdata = pdev->dev.platform_data; > struct rfkill_gpio_data *rfkill; > const char *clk_name = NULL; > - int ret = 0; > - int len = 0; > + struct gpio_desc *gpio; > + int ret; > + int len; > > rfkill = devm_kzalloc(>dev, sizeof(*rfkill), GFP_KERNEL); > if (!rfkill) > @@ -109,28 +104,10 @@ static int rfkill_gpio_probe(struct platform_device > *pdev) > clk_name = pdata->power_clk_name; > rfkill->name = pdata->name; > rfkill->type = pdata->type; > - rfkill->reset_gpio = pdata->reset_gpio; > - rfkill->shutdown_gpio = pdata->shutdown_gpio; > } else { > return -ENODEV; > } > > - /* make sure at-least one of the GPIO is defined and that > -* a name is specified for this instance */ > - if ((!gpio_is_valid(rfkill->reset_gpio) && > -!gpio_is_valid(rfkill->shutdown_gpio)) || !rfkill->name) { > - pr_warn("%s: invalid platform data\n", __func__); > - return -EINVAL; > - } > - > - if (pdata && pdata->gpio_runtime_setup) { > - ret = pdata->gpio_runtime_setup(pdev); > - if (ret) { > - pr_warn("%s: can't set up gpio\n", __func__); > - return ret; > - } > - } > - > len = strlen(rfkill->name); > rfkill->reset_name = devm_kzalloc(>dev, len + 7, GFP_KERNEL); > if (!rfkill->reset_name) > @@ -145,20 +122,34 @@ static int rfkill_gpio_probe(struct platform_device > *pdev) > > rfkill->clk = devm_clk_get(>dev, clk_name); > > - if (gpio_is_valid(rfkill->reset_gpio)) { > - ret = devm_gpio_request_one(>dev, rfkill->reset_gpio, > - 0, rfkill->reset_name); > - if (ret) { > - pr_warn("%s: failed to get reset gpio.\n", __func__); > + gpio = devm_gpiod_get_index(>dev, rfkill->reset_name, 0); > + if (!IS_ERR(gpio)) { > + ret = gpiod_direction_output(gpio, 0); > + if (ret) > return ret; > - } > + rfkill->reset_gpio =
Re: [PATCH v3 2/6] net: rfkill: gpio: convert to descriptor-based GPIO interface
On Tue, Nov 26, 2013 at 11:05 AM, Mika Westerberg mika.westerb...@linux.intel.com wrote: From: Heikki Krogerus heikki.kroge...@linux.intel.com Convert to the safer gpiod_* family of API functions. Signed-off-by: Heikki Krogerus heikki.kroge...@linux.intel.com Signed-off-by: Mika Westerberg mika.westerb...@linux.intel.com Tested-by: Stephen Warren swar...@nvidia.com --- net/rfkill/rfkill-gpio.c | 77 +--- 1 file changed, 34 insertions(+), 43 deletions(-) diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c index 5620d3c07479..bd2a5b90400c 100644 --- a/net/rfkill/rfkill-gpio.c +++ b/net/rfkill/rfkill-gpio.c @@ -25,15 +25,15 @@ #include linux/clk.h #include linux/slab.h #include linux/acpi.h -#include linux/acpi_gpio.h +#include linux/gpio/consumer.h #include linux/rfkill-gpio.h struct rfkill_gpio_data { const char *name; enum rfkill_typetype; - int reset_gpio; - int shutdown_gpio; + struct gpio_desc*reset_gpio; + struct gpio_desc*shutdown_gpio; struct rfkill *rfkill_dev; char*reset_name; @@ -48,19 +48,15 @@ static int rfkill_gpio_set_power(void *data, bool blocked) struct rfkill_gpio_data *rfkill = data; if (blocked) { - if (gpio_is_valid(rfkill-shutdown_gpio)) - gpio_set_value(rfkill-shutdown_gpio, 0); - if (gpio_is_valid(rfkill-reset_gpio)) - gpio_set_value(rfkill-reset_gpio, 0); + gpiod_set_value(rfkill-shutdown_gpio, 0); + gpiod_set_value(rfkill-reset_gpio, 0); if (!IS_ERR(rfkill-clk) rfkill-clk_enabled) clk_disable(rfkill-clk); } else { if (!IS_ERR(rfkill-clk) !rfkill-clk_enabled) clk_enable(rfkill-clk); - if (gpio_is_valid(rfkill-reset_gpio)) - gpio_set_value(rfkill-reset_gpio, 1); - if (gpio_is_valid(rfkill-shutdown_gpio)) - gpio_set_value(rfkill-shutdown_gpio, 1); + gpiod_set_value(rfkill-reset_gpio, 1); + gpiod_set_value(rfkill-shutdown_gpio, 1); } rfkill-clk_enabled = blocked; @@ -83,8 +79,6 @@ static int rfkill_gpio_acpi_probe(struct device *dev, rfkill-name = dev_name(dev); rfkill-type = (unsigned)id-driver_data; - rfkill-reset_gpio = acpi_get_gpio_by_index(dev, 0, NULL); - rfkill-shutdown_gpio = acpi_get_gpio_by_index(dev, 1, NULL); return 0; } @@ -94,8 +88,9 @@ static int rfkill_gpio_probe(struct platform_device *pdev) struct rfkill_gpio_platform_data *pdata = pdev-dev.platform_data; struct rfkill_gpio_data *rfkill; const char *clk_name = NULL; - int ret = 0; - int len = 0; + struct gpio_desc *gpio; + int ret; + int len; rfkill = devm_kzalloc(pdev-dev, sizeof(*rfkill), GFP_KERNEL); if (!rfkill) @@ -109,28 +104,10 @@ static int rfkill_gpio_probe(struct platform_device *pdev) clk_name = pdata-power_clk_name; rfkill-name = pdata-name; rfkill-type = pdata-type; - rfkill-reset_gpio = pdata-reset_gpio; - rfkill-shutdown_gpio = pdata-shutdown_gpio; } else { return -ENODEV; } - /* make sure at-least one of the GPIO is defined and that -* a name is specified for this instance */ - if ((!gpio_is_valid(rfkill-reset_gpio) -!gpio_is_valid(rfkill-shutdown_gpio)) || !rfkill-name) { - pr_warn(%s: invalid platform data\n, __func__); - return -EINVAL; - } - - if (pdata pdata-gpio_runtime_setup) { - ret = pdata-gpio_runtime_setup(pdev); - if (ret) { - pr_warn(%s: can't set up gpio\n, __func__); - return ret; - } - } - len = strlen(rfkill-name); rfkill-reset_name = devm_kzalloc(pdev-dev, len + 7, GFP_KERNEL); if (!rfkill-reset_name) @@ -145,20 +122,34 @@ static int rfkill_gpio_probe(struct platform_device *pdev) rfkill-clk = devm_clk_get(pdev-dev, clk_name); - if (gpio_is_valid(rfkill-reset_gpio)) { - ret = devm_gpio_request_one(pdev-dev, rfkill-reset_gpio, - 0, rfkill-reset_name); - if (ret) { - pr_warn(%s: failed to get reset gpio.\n, __func__); + gpio = devm_gpiod_get_index(pdev-dev, rfkill-reset_name, 0); + if (!IS_ERR(gpio)) { + ret = gpiod_direction_output(gpio, 0); + if (ret)
Re: [PATCH v3 2/6] net: rfkill: gpio: convert to descriptor-based GPIO interface
On 11/26/2013 07:05 PM, Mika Westerberg wrote: From: Heikki Krogerus Convert to the safer gpiod_* family of API functions. Reviewed-by: Alexandre Courbot -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH v3 2/6] net: rfkill: gpio: convert to descriptor-based GPIO interface
From: Heikki Krogerus Convert to the safer gpiod_* family of API functions. Signed-off-by: Heikki Krogerus Signed-off-by: Mika Westerberg Tested-by: Stephen Warren --- net/rfkill/rfkill-gpio.c | 77 +--- 1 file changed, 34 insertions(+), 43 deletions(-) diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c index 5620d3c07479..bd2a5b90400c 100644 --- a/net/rfkill/rfkill-gpio.c +++ b/net/rfkill/rfkill-gpio.c @@ -25,15 +25,15 @@ #include #include #include -#include +#include #include struct rfkill_gpio_data { const char *name; enum rfkill_typetype; - int reset_gpio; - int shutdown_gpio; + struct gpio_desc*reset_gpio; + struct gpio_desc*shutdown_gpio; struct rfkill *rfkill_dev; char*reset_name; @@ -48,19 +48,15 @@ static int rfkill_gpio_set_power(void *data, bool blocked) struct rfkill_gpio_data *rfkill = data; if (blocked) { - if (gpio_is_valid(rfkill->shutdown_gpio)) - gpio_set_value(rfkill->shutdown_gpio, 0); - if (gpio_is_valid(rfkill->reset_gpio)) - gpio_set_value(rfkill->reset_gpio, 0); + gpiod_set_value(rfkill->shutdown_gpio, 0); + gpiod_set_value(rfkill->reset_gpio, 0); if (!IS_ERR(rfkill->clk) && rfkill->clk_enabled) clk_disable(rfkill->clk); } else { if (!IS_ERR(rfkill->clk) && !rfkill->clk_enabled) clk_enable(rfkill->clk); - if (gpio_is_valid(rfkill->reset_gpio)) - gpio_set_value(rfkill->reset_gpio, 1); - if (gpio_is_valid(rfkill->shutdown_gpio)) - gpio_set_value(rfkill->shutdown_gpio, 1); + gpiod_set_value(rfkill->reset_gpio, 1); + gpiod_set_value(rfkill->shutdown_gpio, 1); } rfkill->clk_enabled = blocked; @@ -83,8 +79,6 @@ static int rfkill_gpio_acpi_probe(struct device *dev, rfkill->name = dev_name(dev); rfkill->type = (unsigned)id->driver_data; - rfkill->reset_gpio = acpi_get_gpio_by_index(dev, 0, NULL); - rfkill->shutdown_gpio = acpi_get_gpio_by_index(dev, 1, NULL); return 0; } @@ -94,8 +88,9 @@ static int rfkill_gpio_probe(struct platform_device *pdev) struct rfkill_gpio_platform_data *pdata = pdev->dev.platform_data; struct rfkill_gpio_data *rfkill; const char *clk_name = NULL; - int ret = 0; - int len = 0; + struct gpio_desc *gpio; + int ret; + int len; rfkill = devm_kzalloc(>dev, sizeof(*rfkill), GFP_KERNEL); if (!rfkill) @@ -109,28 +104,10 @@ static int rfkill_gpio_probe(struct platform_device *pdev) clk_name = pdata->power_clk_name; rfkill->name = pdata->name; rfkill->type = pdata->type; - rfkill->reset_gpio = pdata->reset_gpio; - rfkill->shutdown_gpio = pdata->shutdown_gpio; } else { return -ENODEV; } - /* make sure at-least one of the GPIO is defined and that -* a name is specified for this instance */ - if ((!gpio_is_valid(rfkill->reset_gpio) && -!gpio_is_valid(rfkill->shutdown_gpio)) || !rfkill->name) { - pr_warn("%s: invalid platform data\n", __func__); - return -EINVAL; - } - - if (pdata && pdata->gpio_runtime_setup) { - ret = pdata->gpio_runtime_setup(pdev); - if (ret) { - pr_warn("%s: can't set up gpio\n", __func__); - return ret; - } - } - len = strlen(rfkill->name); rfkill->reset_name = devm_kzalloc(>dev, len + 7, GFP_KERNEL); if (!rfkill->reset_name) @@ -145,20 +122,34 @@ static int rfkill_gpio_probe(struct platform_device *pdev) rfkill->clk = devm_clk_get(>dev, clk_name); - if (gpio_is_valid(rfkill->reset_gpio)) { - ret = devm_gpio_request_one(>dev, rfkill->reset_gpio, - 0, rfkill->reset_name); - if (ret) { - pr_warn("%s: failed to get reset gpio.\n", __func__); + gpio = devm_gpiod_get_index(>dev, rfkill->reset_name, 0); + if (!IS_ERR(gpio)) { + ret = gpiod_direction_output(gpio, 0); + if (ret) return ret; - } + rfkill->reset_gpio = gpio; + } + + gpio = devm_gpiod_get_index(>dev, rfkill->shutdown_name, 1); + if (!IS_ERR(gpio)) { + ret = gpiod_direction_output(gpio, 0); + if (ret) + return ret; + rfkill->shutdown_gpio = gpio; } -
[PATCH v3 2/6] net: rfkill: gpio: convert to descriptor-based GPIO interface
From: Heikki Krogerus heikki.kroge...@linux.intel.com Convert to the safer gpiod_* family of API functions. Signed-off-by: Heikki Krogerus heikki.kroge...@linux.intel.com Signed-off-by: Mika Westerberg mika.westerb...@linux.intel.com Tested-by: Stephen Warren swar...@nvidia.com --- net/rfkill/rfkill-gpio.c | 77 +--- 1 file changed, 34 insertions(+), 43 deletions(-) diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c index 5620d3c07479..bd2a5b90400c 100644 --- a/net/rfkill/rfkill-gpio.c +++ b/net/rfkill/rfkill-gpio.c @@ -25,15 +25,15 @@ #include linux/clk.h #include linux/slab.h #include linux/acpi.h -#include linux/acpi_gpio.h +#include linux/gpio/consumer.h #include linux/rfkill-gpio.h struct rfkill_gpio_data { const char *name; enum rfkill_typetype; - int reset_gpio; - int shutdown_gpio; + struct gpio_desc*reset_gpio; + struct gpio_desc*shutdown_gpio; struct rfkill *rfkill_dev; char*reset_name; @@ -48,19 +48,15 @@ static int rfkill_gpio_set_power(void *data, bool blocked) struct rfkill_gpio_data *rfkill = data; if (blocked) { - if (gpio_is_valid(rfkill-shutdown_gpio)) - gpio_set_value(rfkill-shutdown_gpio, 0); - if (gpio_is_valid(rfkill-reset_gpio)) - gpio_set_value(rfkill-reset_gpio, 0); + gpiod_set_value(rfkill-shutdown_gpio, 0); + gpiod_set_value(rfkill-reset_gpio, 0); if (!IS_ERR(rfkill-clk) rfkill-clk_enabled) clk_disable(rfkill-clk); } else { if (!IS_ERR(rfkill-clk) !rfkill-clk_enabled) clk_enable(rfkill-clk); - if (gpio_is_valid(rfkill-reset_gpio)) - gpio_set_value(rfkill-reset_gpio, 1); - if (gpio_is_valid(rfkill-shutdown_gpio)) - gpio_set_value(rfkill-shutdown_gpio, 1); + gpiod_set_value(rfkill-reset_gpio, 1); + gpiod_set_value(rfkill-shutdown_gpio, 1); } rfkill-clk_enabled = blocked; @@ -83,8 +79,6 @@ static int rfkill_gpio_acpi_probe(struct device *dev, rfkill-name = dev_name(dev); rfkill-type = (unsigned)id-driver_data; - rfkill-reset_gpio = acpi_get_gpio_by_index(dev, 0, NULL); - rfkill-shutdown_gpio = acpi_get_gpio_by_index(dev, 1, NULL); return 0; } @@ -94,8 +88,9 @@ static int rfkill_gpio_probe(struct platform_device *pdev) struct rfkill_gpio_platform_data *pdata = pdev-dev.platform_data; struct rfkill_gpio_data *rfkill; const char *clk_name = NULL; - int ret = 0; - int len = 0; + struct gpio_desc *gpio; + int ret; + int len; rfkill = devm_kzalloc(pdev-dev, sizeof(*rfkill), GFP_KERNEL); if (!rfkill) @@ -109,28 +104,10 @@ static int rfkill_gpio_probe(struct platform_device *pdev) clk_name = pdata-power_clk_name; rfkill-name = pdata-name; rfkill-type = pdata-type; - rfkill-reset_gpio = pdata-reset_gpio; - rfkill-shutdown_gpio = pdata-shutdown_gpio; } else { return -ENODEV; } - /* make sure at-least one of the GPIO is defined and that -* a name is specified for this instance */ - if ((!gpio_is_valid(rfkill-reset_gpio) -!gpio_is_valid(rfkill-shutdown_gpio)) || !rfkill-name) { - pr_warn(%s: invalid platform data\n, __func__); - return -EINVAL; - } - - if (pdata pdata-gpio_runtime_setup) { - ret = pdata-gpio_runtime_setup(pdev); - if (ret) { - pr_warn(%s: can't set up gpio\n, __func__); - return ret; - } - } - len = strlen(rfkill-name); rfkill-reset_name = devm_kzalloc(pdev-dev, len + 7, GFP_KERNEL); if (!rfkill-reset_name) @@ -145,20 +122,34 @@ static int rfkill_gpio_probe(struct platform_device *pdev) rfkill-clk = devm_clk_get(pdev-dev, clk_name); - if (gpio_is_valid(rfkill-reset_gpio)) { - ret = devm_gpio_request_one(pdev-dev, rfkill-reset_gpio, - 0, rfkill-reset_name); - if (ret) { - pr_warn(%s: failed to get reset gpio.\n, __func__); + gpio = devm_gpiod_get_index(pdev-dev, rfkill-reset_name, 0); + if (!IS_ERR(gpio)) { + ret = gpiod_direction_output(gpio, 0); + if (ret) return ret; - } + rfkill-reset_gpio = gpio; + } + + gpio = devm_gpiod_get_index(pdev-dev, rfkill-shutdown_name, 1); + if (!IS_ERR(gpio)) { +
Re: [PATCH v3 2/6] net: rfkill: gpio: convert to descriptor-based GPIO interface
On 11/26/2013 07:05 PM, Mika Westerberg wrote: From: Heikki Krogerus heikki.kroge...@linux.intel.com Convert to the safer gpiod_* family of API functions. Reviewed-by: Alexandre Courbot acour...@nvidia.com -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/