diff mbox series

staging: fbtft replaced udelay with usleep_range

Message ID PS1PR04MB29341C7117657B1F312444FBD6B29@PS1PR04MB2934.apcprd04.prod.outlook.com (mailing list archive)
State Superseded, archived
Headers show
Series staging: fbtft replaced udelay with usleep_range | expand

Commit Message

Mayank Suman Feb. 5, 2021, 9:11 a.m. UTC
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(-)

Comments

Greg KH Feb. 5, 2021, 9:32 a.m. UTC | #1
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
kernel test robot Feb. 5, 2021, 11:42 a.m. UTC | #2
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
kernel test robot Feb. 5, 2021, 12:33 p.m. UTC | #3
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
diff mbox series

Patch

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;