Re: [PATCH] mmc: core: restore detect line inversion semantics

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

 



Hello Linus,

On Tue, Sep 30, 2014 at 4:05 PM, Linus Walleij <linus.walleij@xxxxxxxxxx> wrote:
> commit 98e90de99a0c43bd434da814c882c4332441871e
> "mmc: host: switch OF parser to use gpio descriptors"
> switched the semantic behaviour of card detect and read
> only flags such that the inversion capability flag would
> only be set if inversion was explicitly specified in the
> device tree, in the hopes that no-one was using double
> inversion.
>
> It turns out that the XOR:ing between the explicit
> inversion was indeed in use, so we need to restore the
> old semantics where both ways of inversion are checked
> and the end result XOR:ed.
>
> Reported-by: Javier Martinez Canillas <javier@xxxxxxxxxxxx>
> Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>

Thanks a lot for the quick patch. It makes the card detection work
again but needs two subtle changes to have the same semantics than
before.

> -               ret = mmc_gpiod_request_cd(host, "cd", 0, false, 0);
> +               ret = mmc_gpiod_request_cd(host, "cd", 0, false,
> +                                          0, &gpio_invert);

As mentioned in the other thread, the old code uses
mmc_gpio_request_cd() which always sets override_active_level to true
so this should be:

ret = mmc_gpiod_request_cd(host, "cd", 0, true, 0, &gpio_invert);

> @@ -316,6 +317,8 @@ int mmc_gpiod_request_cd(struct mmc_host *host, const char *con_id,
>                         return ret;
>         }
>
> +       *gpio_invert = gpiod_is_active_low(desc);
> +

The old code set gpio_inv_cd if (!(flags & OF_GPIO_ACTIVE_LOW)) so the
above should be:

*gpio_invert = !gpiod_is_active_low(desc);

And the same applies to the gpio_invert assignment in
mmc_gpiod_request_ro(). With these two changes:

Tested-by: Javier Martinez Canillas <javier@xxxxxxxxxxxx>

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




[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux