Replace udelay() calls >= 100us with fsleep() to avoid busy-waiting. The delays are used in init_display() callbacks. These callbacks are invoked by fbtft_probe_common() during the driver's probe path. The probe path runs in process context which already uses sleeping APIs. This makes fsleep() safe to use in these situations.
Signed-off-by: Gideon Adjei <[email protected]> --- drivers/staging/fbtft/fb_tinylcd.c | 2 +- drivers/staging/fbtft/fb_upd161704.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/fbtft/fb_tinylcd.c b/drivers/staging/fbtft/fb_tinylcd.c index 9469248f2c50..3fb15df31592 100644 --- a/drivers/staging/fbtft/fb_tinylcd.c +++ b/drivers/staging/fbtft/fb_tinylcd.c @@ -41,7 +41,7 @@ static int init_display(struct fbtft_par *par) 0x00, 0x35, 0x33, 0x00, 0x00, 0x00); write_reg(par, MIPI_DCS_SET_PIXEL_FORMAT, 0x55); write_reg(par, MIPI_DCS_EXIT_SLEEP_MODE); - udelay(250); + fsleep(250); write_reg(par, MIPI_DCS_SET_DISPLAY_ON); return 0; diff --git a/drivers/staging/fbtft/fb_upd161704.c b/drivers/staging/fbtft/fb_upd161704.c index c680160d6380..7fe2b556e17c 100644 --- a/drivers/staging/fbtft/fb_upd161704.c +++ b/drivers/staging/fbtft/fb_upd161704.c @@ -32,7 +32,7 @@ static int init_display(struct fbtft_par *par) /* oscillator start */ write_reg(par, 0x003A, 0x0001); /*Oscillator 0: stop, 1: operation */ - udelay(100); + fsleep(100); /* y-setting */ write_reg(par, 0x0024, 0x007B); /* amplitude setting */ @@ -60,7 +60,7 @@ static int init_display(struct fbtft_par *par) /* Power supply setting */ write_reg(par, 0x0019, 0x0000); /* DC/DC output setting */ - udelay(200); + fsleep(200); write_reg(par, 0x001A, 0x1000); /* DC/DC frequency setting */ write_reg(par, 0x001B, 0x0023); /* DC/DC rising setting */ write_reg(par, 0x001C, 0x0C01); /* Regulator voltage setting */ -- 2.34.1
