* [PATCH] staging: fbtft: fb_ra8875: replace udelays with usleep_range
@ 2026-02-25 20:45 Jose A. Perez de Azpillaga
2026-02-25 21:14 ` Greg KH
2026-02-25 23:40 ` [PATCH v2] staging: fbtft: fb_ra8875: replace udelays with fsleep Jose A. Perez de Azpillaga
0 siblings, 2 replies; 5+ messages in thread
From: Jose A. Perez de Azpillaga @ 2026-02-25 20:45 UTC (permalink / raw)
To: andy, gregkh; +Cc: dri-devel, linux-fbdev, linux-staging, linux-kernel, azpijr
The write_reg8_bus8 function uses udelay(100) twice to wait for the
display controller. For delays of this duration in non-atomic context,
usleep_range() is preferred as it avoids busy-waiting.
Update both instances to use usleep_range(100, 120), allowing the
scheduler to utilize the CPU during these wait periods.
Signed-off-by: Jose A. Perez de Azpillaga <azpijr@gmail.com>
---
drivers/staging/fbtft/fb_ra8875.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/fbtft/fb_ra8875.c b/drivers/staging/fbtft/fb_ra8875.c
index 0ab1de6647d0..6058934e2ca2 100644
--- a/drivers/staging/fbtft/fb_ra8875.c
+++ b/drivers/staging/fbtft/fb_ra8875.c
@@ -210,7 +210,7 @@ static void write_reg8_bus8(struct fbtft_par *par, int len, ...)
}
len--;
- udelay(100);
+ usleep_range(100, 120);
if (len) {
buf = (u8 *)par->buf;
@@ -231,7 +231,7 @@ static void write_reg8_bus8(struct fbtft_par *par, int len, ...)
/* restore user spi-speed */
par->fbtftops.write = fbtft_write_spi;
- udelay(100);
+ usleep_range(100, 120);
}
static int write_vmem16_bus8(struct fbtft_par *par, size_t offset, size_t len)
--
2.53.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] staging: fbtft: fb_ra8875: replace udelays with usleep_range
2026-02-25 20:45 [PATCH] staging: fbtft: fb_ra8875: replace udelays with usleep_range Jose A. Perez de Azpillaga
@ 2026-02-25 21:14 ` Greg KH
2026-02-25 23:40 ` [PATCH v2] staging: fbtft: fb_ra8875: replace udelays with fsleep Jose A. Perez de Azpillaga
1 sibling, 0 replies; 5+ messages in thread
From: Greg KH @ 2026-02-25 21:14 UTC (permalink / raw)
To: Jose A. Perez de Azpillaga
Cc: andy, dri-devel, linux-fbdev, linux-staging, linux-kernel
On Wed, Feb 25, 2026 at 09:45:59PM +0100, Jose A. Perez de Azpillaga wrote:
> The write_reg8_bus8 function uses udelay(100) twice to wait for the
> display controller. For delays of this duration in non-atomic context,
> usleep_range() is preferred as it avoids busy-waiting.
>
> Update both instances to use usleep_range(100, 120), allowing the
> scheduler to utilize the CPU during these wait periods.
>
> Signed-off-by: Jose A. Perez de Azpillaga <azpijr@gmail.com>
> ---
> drivers/staging/fbtft/fb_ra8875.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/fbtft/fb_ra8875.c b/drivers/staging/fbtft/fb_ra8875.c
> index 0ab1de6647d0..6058934e2ca2 100644
> --- a/drivers/staging/fbtft/fb_ra8875.c
> +++ b/drivers/staging/fbtft/fb_ra8875.c
> @@ -210,7 +210,7 @@ static void write_reg8_bus8(struct fbtft_par *par, int len, ...)
> }
> len--;
>
> - udelay(100);
> + usleep_range(100, 120);
>
> if (len) {
> buf = (u8 *)par->buf;
> @@ -231,7 +231,7 @@ static void write_reg8_bus8(struct fbtft_par *par, int len, ...)
>
> /* restore user spi-speed */
> par->fbtftops.write = fbtft_write_spi;
> - udelay(100);
> + usleep_range(100, 120);
> }
>
> static int write_vmem16_bus8(struct fbtft_par *par, size_t offset, size_t len)
> --
> 2.53.0
>
>
Hi,
This is the friendly patch-bot of Greg Kroah-Hartman. You have sent him
a patch that has triggered this response. He used to manually respond
to these common problems, but in order to save his sanity (he kept
writing the same thing over and over, yet to different people), I was
created. Hopefully you will not take offence and will fix the problem
in your patch and resubmit it so that it can be accepted into the Linux
kernel tree.
You are receiving this message because of the following common error(s)
as indicated below:
- You sent a patch that has been sent multiple times in the past few
days, and is identical to ones that has been recently rejected.
Please always look at the mailing list traffic to determine if you are
duplicating other people's work.
If you wish to discuss this problem further, or you have questions about
how to resolve this issue, please feel free to respond to this email and
Greg will reply once he has dug out from the pending patches received
from other developers.
thanks,
greg k-h's patch email bot
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2] staging: fbtft: fb_ra8875: replace udelays with fsleep
2026-02-25 20:45 [PATCH] staging: fbtft: fb_ra8875: replace udelays with usleep_range Jose A. Perez de Azpillaga
2026-02-25 21:14 ` Greg KH
@ 2026-02-25 23:40 ` Jose A. Perez de Azpillaga
2026-02-26 7:46 ` Andy Shevchenko
1 sibling, 1 reply; 5+ messages in thread
From: Jose A. Perez de Azpillaga @ 2026-02-25 23:40 UTC (permalink / raw)
To: Greg Kroah-Hartman, Andy Shevchenko
Cc: Jose A . Perez de Azpillaga, dri-devel, linux-fbdev, linux-kernel,
linux-staging
The write_reg8_bus8 function uses udelay(100) twice to wait for the
display controller. In non-atomic contexts, fsleep() is the preferred
API as it automatically selects the most efficient sleeping mechanism
and avoids busy-waiting.
Update both instances to use fsleep(100).
Signed-off-by: Jose A. Perez de Azpillaga <azpijr@gmail.com>
---
v2: Switch from usleep_range() to fsleep() for modernizing delay calls.
---
drivers/staging/fbtft/fb_ra8875.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/fbtft/fb_ra8875.c b/drivers/staging/fbtft/fb_ra8875.c
index 0ab1de6647d0..fe95ec6da064 100644
--- a/drivers/staging/fbtft/fb_ra8875.c
+++ b/drivers/staging/fbtft/fb_ra8875.c
@@ -210,7 +210,7 @@ static void write_reg8_bus8(struct fbtft_par *par, int len, ...)
}
len--;
- udelay(100);
+ fsleep(100);
if (len) {
buf = (u8 *)par->buf;
@@ -231,7 +231,7 @@ static void write_reg8_bus8(struct fbtft_par *par, int len, ...)
/* restore user spi-speed */
par->fbtftops.write = fbtft_write_spi;
- udelay(100);
+ fsleep(100);
}
static int write_vmem16_bus8(struct fbtft_par *par, size_t offset, size_t len)
--
2.53.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2] staging: fbtft: fb_ra8875: replace udelays with fsleep
2026-02-25 23:40 ` [PATCH v2] staging: fbtft: fb_ra8875: replace udelays with fsleep Jose A. Perez de Azpillaga
@ 2026-02-26 7:46 ` Andy Shevchenko
2026-02-26 8:31 ` Jose A. Perez de Azpillaga
0 siblings, 1 reply; 5+ messages in thread
From: Andy Shevchenko @ 2026-02-26 7:46 UTC (permalink / raw)
To: Jose A. Perez de Azpillaga
Cc: Greg Kroah-Hartman, Andy Shevchenko, dri-devel, linux-fbdev,
linux-kernel, linux-staging
On Thu, Feb 26, 2026 at 12:40:36AM +0100, Jose A. Perez de Azpillaga wrote:
> The write_reg8_bus8 function uses udelay(100) twice to wait for the
write_reg8_bus8()
> display controller. In non-atomic contexts, fsleep() is the preferred
> API as it automatically selects the most efficient sleeping mechanism
> and avoids busy-waiting.
But how do you know this is the non-atomic context?
> Update both instances to use fsleep(100).
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] staging: fbtft: fb_ra8875: replace udelays with fsleep
2026-02-26 7:46 ` Andy Shevchenko
@ 2026-02-26 8:31 ` Jose A. Perez de Azpillaga
0 siblings, 0 replies; 5+ messages in thread
From: Jose A. Perez de Azpillaga @ 2026-02-26 8:31 UTC (permalink / raw)
To: Andriy Shevchenko
Cc: Andy Shevchenko, Jose A . Perez de Azpillaga, dri-devel,
Greg Kroah-Hartman, linux-fbdev, linux-kernel, linux-staging
Hi Andy,
write_reg8_bus8() calls par->fbtftops.write(), which in this driver
resolves to write_spi(), which calls spi_sync(). Since spi_sync()
requires sleepable context, write_reg8_bus8() is transitively guaranteed
to run in non-atomic context, making fsleep() safe to use.
Best regards, Jose
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-02-26 8:32 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-25 20:45 [PATCH] staging: fbtft: fb_ra8875: replace udelays with usleep_range Jose A. Perez de Azpillaga
2026-02-25 21:14 ` Greg KH
2026-02-25 23:40 ` [PATCH v2] staging: fbtft: fb_ra8875: replace udelays with fsleep Jose A. Perez de Azpillaga
2026-02-26 7:46 ` Andy Shevchenko
2026-02-26 8:31 ` Jose A. Perez de Azpillaga
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox