Re: [PATCH 2/2] rtc: add hym8563 rtc-driver

2013-11-25 Thread Heiko Stübner
Am Montag, 25. November 2013, 13:01:25 schrieb Mark Rutland:
> [...]
> 
> > +static int hym8563_probe(struct i2c_client *client,
> > +const struct i2c_device_id *id)
> > +{
> > +   struct hym8563 *hym8563;
> > +   int ret, gpio_int;
> > +
> > +   hym8563 = devm_kzalloc(>dev, sizeof(hym8563),
> > GFP_KERNEL); +   if (!hym8563)
> > +   return -ENOMEM;
> > +
> > +   hym8563->client = client;
> > +   i2c_set_clientdata(client, hym8563);
> > +
> > +   device_set_wakeup_capable(>dev, true);
> > +
> > +   gpio_int = of_get_gpio(client->dev.of_node, 0);
> > +   if (!gpio_is_valid(gpio_int)) {
> > +   dev_err(>dev, "failed to get interrupt gpio\n");
> > +   return -EINVAL;
> > +   }
> > +
> > +   ret = devm_gpio_request_one(>dev, gpio_int,
> > + GPIOF_DIR_IN, "hym8563_int");
> > +   if (ret) {
> > +   dev_err(>dev, "request of gpio %d failed, %d\n",
> > +   gpio_int, ret);
> > +   return ret;
> > +   }
> 
> From here on the gpio is never used or even stashed away anywhere.
> What's the point in requesting it and then leaking it?

As I understand it, requesting gpio also is useful as a mechanism to mark them 
as used and therefore prevent a gpio from wrongly being used multiple times.

So, I guess it would be better to either ignore client->irq and just use 
gpio_to_irq or use client->irq alone, without the gpio-functions at all.

But what would be preferrable?
--
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 2/2] rtc: add hym8563 rtc-driver

2013-11-25 Thread Mark Rutland
[...]

> +static int hym8563_probe(struct i2c_client *client,
> +const struct i2c_device_id *id)
> +{
> +   struct hym8563 *hym8563;
> +   int ret, gpio_int;
> +
> +   hym8563 = devm_kzalloc(>dev, sizeof(hym8563), GFP_KERNEL);
> +   if (!hym8563)
> +   return -ENOMEM;
> +
> +   hym8563->client = client;
> +   i2c_set_clientdata(client, hym8563);
> +
> +   device_set_wakeup_capable(>dev, true);
> +
> +   gpio_int = of_get_gpio(client->dev.of_node, 0);
> +   if (!gpio_is_valid(gpio_int)) {
> +   dev_err(>dev, "failed to get interrupt gpio\n");
> +   return -EINVAL;
> +   }
> +
> +   ret = devm_gpio_request_one(>dev, gpio_int,
> + GPIOF_DIR_IN, "hym8563_int");
> +   if (ret) {
> +   dev_err(>dev, "request of gpio %d failed, %d\n",
> +   gpio_int, ret);
> +   return ret;
> +   }

>From here on the gpio is never used or even stashed away anywhere.
What's the point in requesting it and then leaking it?

Thanks,
Mark.
--
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 2/2] rtc: add hym8563 rtc-driver

2013-11-25 Thread Mark Rutland
[...]

 +static int hym8563_probe(struct i2c_client *client,
 +const struct i2c_device_id *id)
 +{
 +   struct hym8563 *hym8563;
 +   int ret, gpio_int;
 +
 +   hym8563 = devm_kzalloc(client-dev, sizeof(hym8563), GFP_KERNEL);
 +   if (!hym8563)
 +   return -ENOMEM;
 +
 +   hym8563-client = client;
 +   i2c_set_clientdata(client, hym8563);
 +
 +   device_set_wakeup_capable(client-dev, true);
 +
 +   gpio_int = of_get_gpio(client-dev.of_node, 0);
 +   if (!gpio_is_valid(gpio_int)) {
 +   dev_err(client-dev, failed to get interrupt gpio\n);
 +   return -EINVAL;
 +   }
 +
 +   ret = devm_gpio_request_one(client-dev, gpio_int,
 + GPIOF_DIR_IN, hym8563_int);
 +   if (ret) {
 +   dev_err(client-dev, request of gpio %d failed, %d\n,
 +   gpio_int, ret);
 +   return ret;
 +   }

From here on the gpio is never used or even stashed away anywhere.
What's the point in requesting it and then leaking it?

Thanks,
Mark.
--
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 2/2] rtc: add hym8563 rtc-driver

2013-11-25 Thread Heiko Stübner
Am Montag, 25. November 2013, 13:01:25 schrieb Mark Rutland:
 [...]
 
  +static int hym8563_probe(struct i2c_client *client,
  +const struct i2c_device_id *id)
  +{
  +   struct hym8563 *hym8563;
  +   int ret, gpio_int;
  +
  +   hym8563 = devm_kzalloc(client-dev, sizeof(hym8563),
  GFP_KERNEL); +   if (!hym8563)
  +   return -ENOMEM;
  +
  +   hym8563-client = client;
  +   i2c_set_clientdata(client, hym8563);
  +
  +   device_set_wakeup_capable(client-dev, true);
  +
  +   gpio_int = of_get_gpio(client-dev.of_node, 0);
  +   if (!gpio_is_valid(gpio_int)) {
  +   dev_err(client-dev, failed to get interrupt gpio\n);
  +   return -EINVAL;
  +   }
  +
  +   ret = devm_gpio_request_one(client-dev, gpio_int,
  + GPIOF_DIR_IN, hym8563_int);
  +   if (ret) {
  +   dev_err(client-dev, request of gpio %d failed, %d\n,
  +   gpio_int, ret);
  +   return ret;
  +   }
 
 From here on the gpio is never used or even stashed away anywhere.
 What's the point in requesting it and then leaking it?

As I understand it, requesting gpio also is useful as a mechanism to mark them 
as used and therefore prevent a gpio from wrongly being used multiple times.

So, I guess it would be better to either ignore client-irq and just use 
gpio_to_irq or use client-irq alone, without the gpio-functions at all.

But what would be preferrable?
--
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/