[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