Subject: Re: linux-next: build failure after merge of the gpio tree

From: Dmitry Torokhov <[email-masked]>
Date: Sun, 9 Aug 2015 22:46:52 -0700

Hi Stephen,

On Mon, Aug 10, 2015 at 03:07:41PM +1000, Stephen Rothwell wrote:
> Hi Linus,
> 
> After merging the gpio tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
> 
> drivers/input/touchscreen/elants_i2c.c: In function 'elants_i2c_probe':
> drivers/input/touchscreen/elants_i2c.c:1176:19: error: too few arguments to function 'devm_gpiod_get'
>   ts->reset_gpio = devm_gpiod_get(&client->dev, "reset");
>                    ^
> In file included from drivers/input/touchscreen/elants_i2c.c:41:0:
> include/linux/gpio/consumer.h:73:32: note: declared here
>  struct gpio_desc *__must_check devm_gpiod_get(struct device *dev,
>                                 ^
> 
> Caused by commit
> 
>   b17d1bf16cc7 ("gpio: make flags mandatory for gpiod_get functions")
> 
> Interacting with commit
> 
>   afe10358e47a ("Input: elants_i2c - wire up regulator support")
> 
> from the input tree.
> 
> I have added the following merge fix patch:

Thank you for the patch. I think we actually want GPIOD_OUT_LOW and kill
the "else" branch altogether, like below.

Thanks.

-- 
Dmitry

Input: elants_i2c - fix for devm_gpiod_get API change

From: Stephen Rothwell <[email-masked]>

Signed-off-by: Stephen Rothwell <[email-masked]>
Signed-off-by: Dmitry Torokhov <[email-masked]>
---
 drivers/input/touchscreen/elants_i2c.c |   10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/input/touchscreen/elants_i2c.c b/drivers/input/touchscreen/elants_i2c.c
index 6f71556..ddac134 100644
--- a/drivers/input/touchscreen/elants_i2c.c
+++ b/drivers/input/touchscreen/elants_i2c.c
@@ -1173,7 +1173,7 @@ static int elants_i2c_probe(struct i2c_client *client,
 		return error;
 	}
 
-	ts->reset_gpio = devm_gpiod_get(&client->dev, "reset");
+	ts->reset_gpio = devm_gpiod_get(&client->dev, "reset", GPIOD_OUT_LOW);
 	if (IS_ERR(ts->reset_gpio)) {
 		error = PTR_ERR(ts->reset_gpio);
 
@@ -1188,14 +1188,6 @@ static int elants_i2c_probe(struct i2c_client *client,
 		}
 
 		ts->keep_power_in_suspend = true;
-	} else {
-		error = gpiod_direction_output(ts->reset_gpio, 0);
-		if (error) {
-			dev_err(&client->dev,
-				"failed to configure reset gpio as output: %d\n",
-				error);
-			return error;
-		}
 	}
 
 	error = elants_i2c_power_on(ts);