* [PATCH] staging: fbtft replaced udelay with usleep_range
@ 2021-02-05 9:11 Mayank Suman
2021-02-05 9:32 ` Greg KH
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Mayank Suman @ 2021-02-05 9:11 UTC (permalink / raw)
To: gregkh, sfr, mayanksuman, dri-devel, linux-fbdev, devel,
linux-kernel, linux-kernel-mentees
According to Documentation/timers/timers-howto.rst, usleep_range is
preffered over udelay for >=10us delay.
Signed-off-by: Mayank Suman <mayanksuman@live.com>
---
drivers/staging/fbtft/fb_agm1264k-fl.c | 2 +-
drivers/staging/fbtft/fb_ra8875.c | 4 ++--
drivers/staging/fbtft/fb_tinylcd.c | 4 ++--
drivers/staging/fbtft/fb_upd161704.c | 18 +++++++++---------
drivers/staging/fbtft/fb_watterott.c | 4 ++--
5 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/drivers/staging/fbtft/fb_agm1264k-fl.c b/drivers/staging/fbtft/fb_agm1264k-fl.c
index eeeeec97a..9ac523511 100644
--- a/drivers/staging/fbtft/fb_agm1264k-fl.c
+++ b/drivers/staging/fbtft/fb_agm1264k-fl.c
@@ -85,7 +85,7 @@ static void reset(struct fbtft_par *par)
dev_dbg(par->info->device, "%s()\n", __func__);
gpiod_set_value(par->gpio.reset, 0);
- udelay(20);
+ usleep_range(20);
gpiod_set_value(par->gpio.reset, 1);
mdelay(120);
}
diff --git a/drivers/staging/fbtft/fb_ra8875.c b/drivers/staging/fbtft/fb_ra8875.c
index 398bdbf53..61d58efab 100644
--- a/drivers/staging/fbtft/fb_ra8875.c
+++ b/drivers/staging/fbtft/fb_ra8875.c
@@ -217,7 +217,7 @@ static void write_reg8_bus8(struct fbtft_par *par, int len, ...)
}
len--;
- udelay(100);
+ usleep_range(100);
if (len) {
buf = (u8 *)par->buf;
@@ -238,7 +238,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);
}
static int write_vmem16_bus8(struct fbtft_par *par, size_t offset, size_t len)
diff --git a/drivers/staging/fbtft/fb_tinylcd.c b/drivers/staging/fbtft/fb_tinylcd.c
index 9469248f2..fffd39d96 100644
--- a/drivers/staging/fbtft/fb_tinylcd.c
+++ b/drivers/staging/fbtft/fb_tinylcd.c
@@ -38,10 +38,10 @@ static int init_display(struct fbtft_par *par)
write_reg(par, 0xE5, 0x00);
write_reg(par, 0xF0, 0x36, 0xA5, 0x53);
write_reg(par, 0xE0, 0x00, 0x35, 0x33, 0x00, 0x00, 0x00,
- 0x00, 0x35, 0x33, 0x00, 0x00, 0x00);
+ 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);
+ usleep_range(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 c77832ae5..bdcfda868 100644
--- a/drivers/staging/fbtft/fb_upd161704.c
+++ b/drivers/staging/fbtft/fb_upd161704.c
@@ -36,27 +36,27 @@ static int init_display(struct fbtft_par *par)
/* oscillator start */
write_reg(par, 0x003A, 0x0001); /*Oscillator 0: stop, 1: operation */
- udelay(100);
+ usleep_range(100);
/* y-setting */
write_reg(par, 0x0024, 0x007B); /* amplitude setting */
- udelay(10);
+ usleep_range(10);
write_reg(par, 0x0025, 0x003B); /* amplitude setting */
write_reg(par, 0x0026, 0x0034); /* amplitude setting */
- udelay(10);
+ usleep_range(10);
write_reg(par, 0x0027, 0x0004); /* amplitude setting */
write_reg(par, 0x0052, 0x0025); /* circuit setting 1 */
- udelay(10);
+ usleep_range(10);
write_reg(par, 0x0053, 0x0033); /* circuit setting 2 */
write_reg(par, 0x0061, 0x001C); /* adjustment V10 positive polarity */
- udelay(10);
+ usleep_range(10);
write_reg(par, 0x0062, 0x002C); /* adjustment V9 negative polarity */
write_reg(par, 0x0063, 0x0022); /* adjustment V34 positive polarity */
- udelay(10);
+ usleep_range(10);
write_reg(par, 0x0064, 0x0027); /* adjustment V31 negative polarity */
- udelay(10);
+ usleep_range(10);
write_reg(par, 0x0065, 0x0014); /* adjustment V61 negative polarity */
- udelay(10);
+ usleep_range(10);
write_reg(par, 0x0066, 0x0010); /* adjustment V61 negative polarity */
/* Basical clock for 1 line (BASECOUNT[7:0]) number specified */
@@ -64,7 +64,7 @@ static int init_display(struct fbtft_par *par)
/* Power supply setting */
write_reg(par, 0x0019, 0x0000); /* DC/DC output setting */
- udelay(200);
+ usleep_range(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 */
diff --git a/drivers/staging/fbtft/fb_watterott.c b/drivers/staging/fbtft/fb_watterott.c
index 76b25df37..580d5329e 100644
--- a/drivers/staging/fbtft/fb_watterott.c
+++ b/drivers/staging/fbtft/fb_watterott.c
@@ -84,7 +84,7 @@ static int write_vmem(struct fbtft_par *par, size_t offset, size_t len)
par->txbuf.buf, 10 + par->info->fix.line_length);
if (ret < 0)
return ret;
- udelay(300);
+ usleep_range(300);
}
return 0;
@@ -124,7 +124,7 @@ static int write_vmem_8bit(struct fbtft_par *par, size_t offset, size_t len)
par->txbuf.buf, 10 + par->info->var.xres);
if (ret < 0)
return ret;
- udelay(700);
+ usleep_range(700);
}
return 0;
--
2.30.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] staging: fbtft replaced udelay with usleep_range
2021-02-05 9:11 [PATCH] staging: fbtft replaced udelay with usleep_range Mayank Suman
@ 2021-02-05 9:32 ` Greg KH
2021-02-05 11:42 ` kernel test robot
2021-02-05 12:33 ` kernel test robot
2 siblings, 0 replies; 4+ messages in thread
From: Greg KH @ 2021-02-05 9:32 UTC (permalink / raw)
To: Mayank Suman
Cc: sfr, dri-devel, linux-fbdev, devel, linux-kernel, linux-kernel-mentees
On Fri, Feb 05, 2021 at 02:41:13PM +0530, Mayank Suman wrote:
> According to Documentation/timers/timers-howto.rst, usleep_range is
> preffered over udelay for >=10us delay.
>
> Signed-off-by: Mayank Suman <mayanksuman@live.com>
ALWAYS test build your patches before sending them out to the world for
review. You don't want to make maintainers grumpy by breaking the tree
with changes that can not compile, right? :)
thanks,
greg k-h
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] staging: fbtft replaced udelay with usleep_range
2021-02-05 9:11 [PATCH] staging: fbtft replaced udelay with usleep_range Mayank Suman
2021-02-05 9:32 ` Greg KH
@ 2021-02-05 11:42 ` kernel test robot
2021-02-05 12:33 ` kernel test robot
2 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2021-02-05 11:42 UTC (permalink / raw)
To: Mayank Suman, gregkh, sfr, dri-devel, linux-fbdev, devel,
linux-kernel, linux-kernel-mentees
Cc: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 7691 bytes --]
Hi Mayank,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on staging/staging-testing]
url: https://github.com/0day-ci/linux/commits/Mayank-Suman/staging-fbtft-replaced-udelay-with-usleep_range/20210205-171807
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 06b0c0dce88e2aa2f01343db0f26d214d7f264a0
config: alpha-allmodconfig (attached as .config)
compiler: alpha-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/4a777af1cc91dc603b6b92fe06fd94081dc2891e
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Mayank-Suman/staging-fbtft-replaced-udelay-with-usleep_range/20210205-171807
git checkout 4a777af1cc91dc603b6b92fe06fd94081dc2891e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=alpha
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/staging/fbtft/fb_agm1264k-fl.c: In function 'reset':
>> drivers/staging/fbtft/fb_agm1264k-fl.c:88:2: error: too few arguments to function 'usleep_range'
88 | usleep_range(20);
| ^~~~~~~~~~~~
In file included from drivers/staging/fbtft/fb_agm1264k-fl.c:12:
include/linux/delay.h:61:6: note: declared here
61 | void usleep_range(unsigned long min, unsigned long max);
| ^~~~~~~~~~~~
--
drivers/staging/fbtft/fb_ra8875.c: In function 'write_reg8_bus8':
>> drivers/staging/fbtft/fb_ra8875.c:220:2: error: too few arguments to function 'usleep_range'
220 | usleep_range(100);
| ^~~~~~~~~~~~
In file included from drivers/staging/fbtft/fb_ra8875.c:10:
include/linux/delay.h:61:6: note: declared here
61 | void usleep_range(unsigned long min, unsigned long max);
| ^~~~~~~~~~~~
drivers/staging/fbtft/fb_ra8875.c:241:2: error: too few arguments to function 'usleep_range'
241 | usleep_range(100);
| ^~~~~~~~~~~~
In file included from drivers/staging/fbtft/fb_ra8875.c:10:
include/linux/delay.h:61:6: note: declared here
61 | void usleep_range(unsigned long min, unsigned long max);
| ^~~~~~~~~~~~
--
drivers/staging/fbtft/fb_tinylcd.c: In function 'init_display':
>> drivers/staging/fbtft/fb_tinylcd.c:44:2: error: too few arguments to function 'usleep_range'
44 | usleep_range(250);
| ^~~~~~~~~~~~
In file included from drivers/staging/fbtft/fb_tinylcd.c:11:
include/linux/delay.h:61:6: note: declared here
61 | void usleep_range(unsigned long min, unsigned long max);
| ^~~~~~~~~~~~
--
drivers/staging/fbtft/fb_upd161704.c: In function 'init_display':
>> drivers/staging/fbtft/fb_upd161704.c:39:2: error: too few arguments to function 'usleep_range'
39 | usleep_range(100);
| ^~~~~~~~~~~~
In file included from drivers/staging/fbtft/fb_upd161704.c:16:
include/linux/delay.h:61:6: note: declared here
61 | void usleep_range(unsigned long min, unsigned long max);
| ^~~~~~~~~~~~
drivers/staging/fbtft/fb_upd161704.c:43:2: error: too few arguments to function 'usleep_range'
43 | usleep_range(10);
| ^~~~~~~~~~~~
In file included from drivers/staging/fbtft/fb_upd161704.c:16:
include/linux/delay.h:61:6: note: declared here
61 | void usleep_range(unsigned long min, unsigned long max);
| ^~~~~~~~~~~~
drivers/staging/fbtft/fb_upd161704.c:46:2: error: too few arguments to function 'usleep_range'
46 | usleep_range(10);
| ^~~~~~~~~~~~
In file included from drivers/staging/fbtft/fb_upd161704.c:16:
include/linux/delay.h:61:6: note: declared here
61 | void usleep_range(unsigned long min, unsigned long max);
| ^~~~~~~~~~~~
drivers/staging/fbtft/fb_upd161704.c:49:2: error: too few arguments to function 'usleep_range'
49 | usleep_range(10);
| ^~~~~~~~~~~~
In file included from drivers/staging/fbtft/fb_upd161704.c:16:
include/linux/delay.h:61:6: note: declared here
61 | void usleep_range(unsigned long min, unsigned long max);
| ^~~~~~~~~~~~
drivers/staging/fbtft/fb_upd161704.c:52:2: error: too few arguments to function 'usleep_range'
52 | usleep_range(10);
| ^~~~~~~~~~~~
In file included from drivers/staging/fbtft/fb_upd161704.c:16:
include/linux/delay.h:61:6: note: declared here
61 | void usleep_range(unsigned long min, unsigned long max);
| ^~~~~~~~~~~~
drivers/staging/fbtft/fb_upd161704.c:55:2: error: too few arguments to function 'usleep_range'
55 | usleep_range(10);
| ^~~~~~~~~~~~
In file included from drivers/staging/fbtft/fb_upd161704.c:16:
include/linux/delay.h:61:6: note: declared here
61 | void usleep_range(unsigned long min, unsigned long max);
| ^~~~~~~~~~~~
drivers/staging/fbtft/fb_upd161704.c:57:2: error: too few arguments to function 'usleep_range'
57 | usleep_range(10);
| ^~~~~~~~~~~~
In file included from drivers/staging/fbtft/fb_upd161704.c:16:
include/linux/delay.h:61:6: note: declared here
61 | void usleep_range(unsigned long min, unsigned long max);
| ^~~~~~~~~~~~
drivers/staging/fbtft/fb_upd161704.c:59:2: error: too few arguments to function 'usleep_range'
59 | usleep_range(10);
| ^~~~~~~~~~~~
In file included from drivers/staging/fbtft/fb_upd161704.c:16:
include/linux/delay.h:61:6: note: declared here
61 | void usleep_range(unsigned long min, unsigned long max);
| ^~~~~~~~~~~~
drivers/staging/fbtft/fb_upd161704.c:67:2: error: too few arguments to function 'usleep_range'
67 | usleep_range(200);
| ^~~~~~~~~~~~
In file included from drivers/staging/fbtft/fb_upd161704.c:16:
include/linux/delay.h:61:6: note: declared here
61 | void usleep_range(unsigned long min, unsigned long max);
| ^~~~~~~~~~~~
--
drivers/staging/fbtft/fb_watterott.c: In function 'write_vmem':
>> drivers/staging/fbtft/fb_watterott.c:87:3: error: too few arguments to function 'usleep_range'
87 | usleep_range(300);
| ^~~~~~~~~~~~
In file included from drivers/staging/fbtft/fb_watterott.c:12:
include/linux/delay.h:61:6: note: declared here
61 | void usleep_range(unsigned long min, unsigned long max);
| ^~~~~~~~~~~~
drivers/staging/fbtft/fb_watterott.c: In function 'write_vmem_8bit':
drivers/staging/fbtft/fb_watterott.c:127:3: error: too few arguments to function 'usleep_range'
127 | usleep_range(700);
| ^~~~~~~~~~~~
In file included from drivers/staging/fbtft/fb_watterott.c:12:
include/linux/delay.h:61:6: note: declared here
61 | void usleep_range(unsigned long min, unsigned long max);
| ^~~~~~~~~~~~
vim +/usleep_range +88 drivers/staging/fbtft/fb_agm1264k-fl.c
79
80 static void reset(struct fbtft_par *par)
81 {
82 if (!par->gpio.reset)
83 return;
84
85 dev_dbg(par->info->device, "%s()\n", __func__);
86
87 gpiod_set_value(par->gpio.reset, 0);
> 88 usleep_range(20);
89 gpiod_set_value(par->gpio.reset, 1);
90 mdelay(120);
91 }
92
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 67368 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] staging: fbtft replaced udelay with usleep_range
2021-02-05 9:11 [PATCH] staging: fbtft replaced udelay with usleep_range Mayank Suman
2021-02-05 9:32 ` Greg KH
2021-02-05 11:42 ` kernel test robot
@ 2021-02-05 12:33 ` kernel test robot
2 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2021-02-05 12:33 UTC (permalink / raw)
To: Mayank Suman, gregkh, sfr, dri-devel, linux-fbdev, devel,
linux-kernel, linux-kernel-mentees
Cc: kbuild-all, clang-built-linux
[-- Attachment #1: Type: text/plain, Size: 4766 bytes --]
Hi Mayank,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on staging/staging-testing]
url: https://github.com/0day-ci/linux/commits/Mayank-Suman/staging-fbtft-replaced-udelay-with-usleep_range/20210205-171807
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 06b0c0dce88e2aa2f01343db0f26d214d7f264a0
config: arm64-randconfig-r025-20210205 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project c9439ca36342fb6013187d0a69aef92736951476)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# https://github.com/0day-ci/linux/commit/4a777af1cc91dc603b6b92fe06fd94081dc2891e
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Mayank-Suman/staging-fbtft-replaced-udelay-with-usleep_range/20210205-171807
git checkout 4a777af1cc91dc603b6b92fe06fd94081dc2891e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/staging/fbtft/fb_ra8875.c:220:18: error: too few arguments to function call, expected 2, have 1
usleep_range(100);
~~~~~~~~~~~~ ^
include/linux/delay.h:61:6: note: 'usleep_range' declared here
void usleep_range(unsigned long min, unsigned long max);
^
drivers/staging/fbtft/fb_ra8875.c:241:18: error: too few arguments to function call, expected 2, have 1
usleep_range(100);
~~~~~~~~~~~~ ^
include/linux/delay.h:61:6: note: 'usleep_range' declared here
void usleep_range(unsigned long min, unsigned long max);
^
2 errors generated.
--
>> drivers/staging/fbtft/fb_tinylcd.c:44:18: error: too few arguments to function call, expected 2, have 1
usleep_range(250);
~~~~~~~~~~~~ ^
include/linux/delay.h:61:6: note: 'usleep_range' declared here
void usleep_range(unsigned long min, unsigned long max);
^
1 error generated.
--
>> drivers/staging/fbtft/fb_watterott.c:87:19: error: too few arguments to function call, expected 2, have 1
usleep_range(300);
~~~~~~~~~~~~ ^
include/linux/delay.h:61:6: note: 'usleep_range' declared here
void usleep_range(unsigned long min, unsigned long max);
^
drivers/staging/fbtft/fb_watterott.c:127:19: error: too few arguments to function call, expected 2, have 1
usleep_range(700);
~~~~~~~~~~~~ ^
include/linux/delay.h:61:6: note: 'usleep_range' declared here
void usleep_range(unsigned long min, unsigned long max);
^
2 errors generated.
vim +220 drivers/staging/fbtft/fb_ra8875.c
189
190 static void write_reg8_bus8(struct fbtft_par *par, int len, ...)
191 {
192 va_list args;
193 int i, ret;
194 u8 *buf = par->buf;
195
196 /* slow down spi-speed for writing registers */
197 par->fbtftops.write = write_spi;
198
199 if (unlikely(par->debug & DEBUG_WRITE_REGISTER)) {
200 va_start(args, len);
201 for (i = 0; i < len; i++)
202 buf[i] = (u8)va_arg(args, unsigned int);
203 va_end(args);
204 fbtft_par_dbg_hex(DEBUG_WRITE_REGISTER, par, par->info->device,
205 u8, buf, len, "%s: ", __func__);
206 }
207
208 va_start(args, len);
209 *buf++ = 0x80;
210 *buf = (u8)va_arg(args, unsigned int);
211 ret = par->fbtftops.write(par, par->buf, 2);
212 if (ret < 0) {
213 va_end(args);
214 dev_err(par->info->device, "write() failed and returned %dn",
215 ret);
216 return;
217 }
218 len--;
219
> 220 usleep_range(100);
221
222 if (len) {
223 buf = (u8 *)par->buf;
224 *buf++ = 0x00;
225 i = len;
226 while (i--)
227 *buf++ = (u8)va_arg(args, unsigned int);
228
229 ret = par->fbtftops.write(par, par->buf, len + 1);
230 if (ret < 0) {
231 va_end(args);
232 dev_err(par->info->device,
233 "write() failed and returned %dn", ret);
234 return;
235 }
236 }
237 va_end(args);
238
239 /* restore user spi-speed */
240 par->fbtftops.write = fbtft_write_spi;
241 usleep_range(100);
242 }
243
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 33407 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-02-05 12:38 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-05 9:11 [PATCH] staging: fbtft replaced udelay with usleep_range Mayank Suman
2021-02-05 9:32 ` Greg KH
2021-02-05 11:42 ` kernel test robot
2021-02-05 12:33 ` kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).