Re: [PATCH 1/4] mmc: slot-gpio: switch to use flags when getting GPIO

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/29/2014 03:16 PM, Ulf Hansson wrote:
> On 27 August 2014 13:00, Linus Walleij <linus.walleij@xxxxxxxxxx> wrote:
>> When the slot GPIO driver gets the GPIO to be used for card
>> detect, it is now possible to specify a flag to have the line
>> set up as input. Get rid of the explicit setup call for input
>> and use the flag.
>>
>> The extra argument works as there are transition varargs
>> macros in place in the <linux/gpio/consumer.h> header, in
>> the future we will make the flags argument compulsory.
>>
>> Reviewed-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
>> Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
> 
> Thanks! Applied for next.

Unfortunately it doesn't seem to work.  I needed the patch
below.


From: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Mon, 22 Sep 2014 11:01:16 +0300
Subject: [PATCH] gpio: Fix gpio direction flags not getting set

GPIO direction flags are not getting set because
an 'if' statement is the wrong way around.

Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
---
 drivers/gpio/gpiolib.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 15cc0bb..3b54edf 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -1674,7 +1674,7 @@ struct gpio_desc *__must_check __gpiod_get_index(struct device *dev,
 		set_bit(FLAG_OPEN_SOURCE, &desc->flags);
 
 	/* No particular flag request, return here... */
-	if (flags & GPIOD_FLAGS_BIT_DIR_SET)
+	if (!(flags & GPIOD_FLAGS_BIT_DIR_SET))
 		return desc;
 
 	/* Process flags */
-- 
1.8.3.2



> 
> Kind regards
> Uffe
> 
>> ---
>>  drivers/mmc/core/slot-gpio.c | 6 +-----
>>  1 file changed, 1 insertion(+), 5 deletions(-)
>>
>> diff --git a/drivers/mmc/core/slot-gpio.c b/drivers/mmc/core/slot-gpio.c
>> index 5f89cb83d5f0..908c2b29e79f 100644
>> --- a/drivers/mmc/core/slot-gpio.c
>> +++ b/drivers/mmc/core/slot-gpio.c
>> @@ -308,14 +308,10 @@ int mmc_gpiod_request_cd(struct mmc_host *host, const char *con_id,
>>         if (!con_id)
>>                 con_id = ctx->cd_label;
>>
>> -       desc = devm_gpiod_get_index(host->parent, con_id, idx);
>> +       desc = devm_gpiod_get_index(host->parent, con_id, idx, GPIOD_IN);
>>         if (IS_ERR(desc))
>>                 return PTR_ERR(desc);
>>
>> -       ret = gpiod_direction_input(desc);
>> -       if (ret < 0)
>> -               return ret;
>> -
>>         if (debounce) {
>>                 ret = gpiod_set_debounce(desc, debounce);
>>                 if (ret < 0)
>> --
>> 1.9.3
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux