[PATCH rtems-libbsd v2 1/1] rtemsbsd/sdhci: Fix Arasan driver when no card present

Kinsey Moore kinsey.moore at oarcorp.com
Tue Mar 28 00:53:18 UTC 2023


This patch and the mail subject look good. Thanks, Rick! I'll send this
over to Joel for commit tomorrow.

Kinsey


On Mon, Mar 27, 2023 at 7:31 PM <rvanderwal at bellsouth.net> wrote:

> From: Rick VanderWal <rvanderwal at bellsouth.net>
>
> This fixes an issue where the card present signal doesn't stabilize
> quickly and indicates present when no card is inserted in a removable
> slot.
> ---
>  rtemsbsd/sys/dev/sdhci/arasan_sdhci.c | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
>
> diff --git a/rtemsbsd/sys/dev/sdhci/arasan_sdhci.c
> b/rtemsbsd/sys/dev/sdhci/arasan_sdhci.c
> index 0e87d903..722e609d 100644
> --- a/rtemsbsd/sys/dev/sdhci/arasan_sdhci.c
> +++ b/rtemsbsd/sys/dev/sdhci/arasan_sdhci.c
> @@ -195,6 +195,27 @@ arasan_sdhci_get_card_present(device_t dev, struct
> sdhci_slot *slot)
>  {
>         struct arasan_sdhci_softc *sc = device_get_softc(dev);
>
> +       // wait a maximum of 1 second for card stable to settle
> +       const unsigned int max_tries = 20;
> +       const rtems_interval sleep_ticks =
> +               rtems_clock_get_ticks_per_second() / max_tries;
> +
> +       unsigned int count = 0;
> +       while (!(RD4(sc, SDHCI_PRESENT_STATE) & SDHCI_CARD_STABLE) &&
> +               (count < max_tries))
> +       {
> +               rtems_task_wake_after(sleep_ticks);
> +               ++count;
> +       }
> +
> +       if (!(RD4(sc, SDHCI_PRESENT_STATE) & SDHCI_CARD_STABLE))
> +       {
> +               device_printf(dev,
> +                       "Card Detect failed to stabilize,"
> +                       " setting to not present.\n");
> +               return false;
> +       }
> +
>         return (RD4(sc, SDHCI_PRESENT_STATE) & SDHCI_CARD_PRESENT);
>  }
>
> --
> 2.34.1
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20230327/88b1b990/attachment.htm>


More information about the devel mailing list