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 <rvander...@bellsouth.net> wrote: > From: Rick VanderWal <rvander...@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@rtems.org > http://lists.rtems.org/mailman/listinfo/devel >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel