Re: [PATCH v3 2/6] net: rfkill: gpio: convert to descriptor-based GPIO interface

2014-01-07 Thread Linus Walleij
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

2014-01-07 Thread Linus Walleij
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

2013-12-23 Thread Johannes Berg
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

2013-12-23 Thread Mika Westerberg
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

2013-12-23 Thread Mika Westerberg
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

2013-12-23 Thread Johannes Berg
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

2013-12-11 Thread Linus Walleij
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

2013-12-11 Thread Linus Walleij
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

2013-11-26 Thread Alex Courbot

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

2013-11-26 Thread Mika Westerberg
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

2013-11-26 Thread Mika Westerberg
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

2013-11-26 Thread Alex Courbot

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/