Re: [PATCH v2 2/3] mmc: core: Add mmc_delay_us() for microsecond precision delays

Sebastian Reichel <[email protected]> Sat, 25 Jul 2026 00:17:10 +0200
Newsgroups org.kernel.vger.linux-mmc,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <amPkAhf_LiXGjzC3@venus>
Hi,

On Wed, Jul 22, 2026 at 03:57:00PM -0500, Judith Mendez wrote:
> Add mmc_delay_us() to support microsecond-granularity delays needed
> in MMC framework. It uses 25% margin consistent with  mmc_delay() for
> timing flexibility.
> 
> Signed-off-by: Judith Mendez <[email protected]>
> ---
> Changes since v1:
> - add patch 2/3
> ---

Looks like you should just use fsleep() from <linux/delay.h>.

Greetings,

-- Sebastian

>  drivers/mmc/core/core.h | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/drivers/mmc/core/core.h b/drivers/mmc/core/core.h
> index a028b48be1644..55e9fb3bab9f7 100644
> --- a/drivers/mmc/core/core.h
> +++ b/drivers/mmc/core/core.h
> @@ -73,6 +73,19 @@ static inline void mmc_delay(unsigned int ms)
>  		msleep(ms);
>  }
>  
> +static inline void mmc_delay_us(unsigned int us)
> +{
> +	if (us < 1000) {
> +		usleep_range(us, us + (us >> 2));
> +	} else {
> +		unsigned int rem_us = us % 1000;
> +
> +		msleep(us / 1000);
> +		if (rem_us)
> +			usleep_range(rem_us, rem_us + (rem_us >> 2));
> +	}
> +}
> +
>  void mmc_rescan(struct work_struct *work);
>  void mmc_start_host(struct mmc_host *host);
>  void __mmc_stop_host(struct mmc_host *host);
> -- 
> 2.54.0
> 
>
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEE72YNB0Y/i3JqeVQT2O7X88g7+poFAmpj5GEACgkQ2O7X88g7
+prZMxAAh815X1v+LlRjLLU6UcHD7YF72x1z5AQ8I2/g/Lst+PTKFD0X+n8NDDkp
ngZf4bq6FzeqjdJC0/KiCwfshgHHL7je05CGHd83sAZs0+DOqDp8n0YxhU6qX5W0
TQahJRWcKWUVHX83BOw7x4xS5pJaTEUTMKsmpJ9Yhakp0gmhGOdo2ObqWdU6u++q
PrMz/DBtkf6DPYTNZBsXSaVlgj8fGH5sktnOMWILbwlrEujQfjbkEtxgjnwJuuP4
Sw1D8ia7F9d5hCt5XybdaKJiQueDwcog9e17bsi9Kpzfgm8uKpEYK2P7O/p+iNG4
tlvCHsMdhgpnuavQO7CzaScA2r9SXroP54B/kIXjcGqqOqVy8KYXl1HOuSUzkYm/
CSIAk4FCgIIfrn0C5r0dTEyVzTENK+vpaglBq+D31uh+HaS6tmAErwnpTBxwtVAh
8P0hc9Yf5r99Es4kKG3zRc+pAt/TYeKKY4swCxHhpGMbojrFnPS7hVX4YO0kEHtn
BJUBr4yHQHpz7ZoZS/4MAMyyNgz1dN9fUeoipHnUaMhmgdZpyLcJB3pFiV30FlkO
TXsYASHMMfYSKBhSv7ofOdqaWt5fIz1feMlMyeo2XGJCIcLfbgNBmxzSkbA1Te8n
pxL7AoH+T1WL/NA6pFbAX46oDUuwzjnvnPdsqb8IeV9/OVZsjao=
=xwU+
-----END PGP SIGNATURE-----