Re: [PATCH 2/2] Staging: nvec: nvec: fixed check style issues

2018-12-17 Thread Marc Dietrich



Hi,

On Mon, 17 Dec 2018, Greg KH wrote:


On Sun, Dec 16, 2018 at 08:57:43AM -0800, Amir Mahdi Ghorbanian wrote:

@@ -626,7 +628,7 @@ static irqreturn_t nvec_interrupt(int irq, void *dev)
break;
case 2: /* first byte after command */
if (status == (I2C_SL_IRQ | RNW | RCVD)) {
-   udelay(33);
+   usleep_range(0, 33);


Why is this a valid range to sleep for for this device?  Have you been
able to verify/test this?


oh no, not again. Why does this come up again every half year? This udelay 
is a workaround for a hw bug which only seldom triggers (if it triggers at 
all). Secondly, this is in interrupt context, so *sleep timers are no go, 
afaik.


Marc

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 2/2] Staging: nvec: nvec: fixed check style issues

2018-12-17 Thread Greg KH
On Sun, Dec 16, 2018 at 08:57:43AM -0800, Amir Mahdi Ghorbanian wrote:
> @@ -626,7 +628,7 @@ static irqreturn_t nvec_interrupt(int irq, void *dev)
>   break;
>   case 2: /* first byte after command */
>   if (status == (I2C_SL_IRQ | RNW | RCVD)) {
> - udelay(33);
> + usleep_range(0, 33);

Why is this a valid range to sleep for for this device?  Have you been
able to verify/test this?

thanks,

greg k-h
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 2/2] Staging: nvec: nvec: fixed check style issues

2018-12-16 Thread kbuild test robot
Hi Amir,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on staging/staging-testing]
[also build test ERROR on v4.20-rc7 next-20181214]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:
https://github.com/0day-ci/linux/commits/Amir-Mahdi-Ghorbanian/Staging-comedi-cb_pcidas-fixed-a-spelling-mistake-coding-style-issue/20181217-032106
config: arm-allmodconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=arm 

All errors (new ones prefixed by >>):

   drivers/staging/nvec/nvec.c: In function 'nvec_request_master':
>> drivers/staging/nvec/nvec.c:385:3: error: 'done' undeclared (first use in 
>> this function); did you mean 'zone'?
  done = >ec_transfer;
  ^~~~
  zone
   drivers/staging/nvec/nvec.c:385:3: note: each undeclared identifier is 
reported only once for each function it appears in
>> drivers/staging/nvec/nvec.c:386:3: error: 'timeout' undeclared (first use in 
>> this function); did you mean 'time_t'?
  timeout = msecs_to_jiffies(5000);
  ^~~
  time_t

vim +385 drivers/staging/nvec/nvec.c

   364  
   365  /**
   366   * nvec_request_master - Process outgoing messages
   367   * @work: A  work_struct (the tx_worker member of  
nvec_chip)
   368   *
   369   * Processes all outgoing requests by sending the request and awaiting 
the
   370   * response, then continuing with the next request. Once a request has a
   371   * matching response, it will be freed and removed from the list.
   372   */
   373  static void nvec_request_master(struct work_struct *work)
   374  {
   375  struct nvec_chip *nvec = container_of(work, struct nvec_chip, 
tx_work);
   376  unsigned long flags;
   377  long err;
   378  struct nvec_msg *msg;
   379  
   380  spin_lock_irqsave(>tx_lock, flags);
   381  while (!list_empty(>tx_data)) {
   382  msg = list_first_entry(>tx_data, struct nvec_msg, 
node);
   383  spin_unlock_irqrestore(>tx_lock, flags);
   384  nvec_gpio_set_value(nvec, 0);
 > 385  done = >ec_transfer;
 > 386  timeout = msecs_to_jiffies(5000);
   387  err = wait_for_completion_interruptible_timeout(done,
   388  
timeout);
   389  
   390  if (err == 0) {
   391  dev_warn(nvec->dev, "timeout waiting for ec 
transfer\n");
   392  nvec_gpio_set_value(nvec, 1);
   393  msg->pos = 0;
   394  }
   395  
   396  spin_lock_irqsave(>tx_lock, flags);
   397  
   398  if (err > 0) {
   399  list_del_init(>node);
   400  nvec_msg_free(nvec, msg);
   401  }
   402  }
   403  spin_unlock_irqrestore(>tx_lock, flags);
   404  }
   405  

---
0-DAY kernel test infrastructureOpen Source Technology Center
https://lists.01.org/pipermail/kbuild-all   Intel Corporation


.config.gz
Description: application/gzip
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 2/2] Staging: nvec: nvec: fixed check style issues

2018-12-16 Thread Joe Perches
On Sun, 2018-12-16 at 08:57 -0800, Amir Mahdi Ghorbanian wrote:
> Fixed an endline open parenthesis issue and replaced udelay() by the
> preferred usleep_range() function.

Not all checkpatch bleats need to be fixed.

Function names with 40+ character length identifiers makes
fitting within an 80 column limit nearly impossible.

> diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c
[]
> @@ -382,8 +382,10 @@ static void nvec_request_master(struct work_struct *work)
>   msg = list_first_entry(>tx_data, struct nvec_msg, node);
>   spin_unlock_irqrestore(>tx_lock, flags);
>   nvec_gpio_set_value(nvec, 0);
> - err = wait_for_completion_interruptible_timeout(
> - >ec_transfer, msecs_to_jiffies(5000));
> + done = >ec_transfer;
> + timeout = msecs_to_jiffies(5000);
> + err = wait_for_completion_interruptible_timeout(done,
> + timeout);

This was easier to read without the temporaries.
And where are done and timeout declared?

Please compile your patches before submitting them.


___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 2/2] Staging: nvec: nvec: fixed check style issues

2018-12-16 Thread Amir Mahdi Ghorbanian
Fixed an endline open parenthesis issue and replaced udelay() by the
preferred usleep_range() function.

Signed-off-by: Amir Mahdi Ghorbanian 
---
 drivers/staging/nvec/nvec.c | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c
index 08027a3..69eef7d 100644
--- a/drivers/staging/nvec/nvec.c
+++ b/drivers/staging/nvec/nvec.c
@@ -382,8 +382,10 @@ static void nvec_request_master(struct work_struct *work)
msg = list_first_entry(>tx_data, struct nvec_msg, node);
spin_unlock_irqrestore(>tx_lock, flags);
nvec_gpio_set_value(nvec, 0);
-   err = wait_for_completion_interruptible_timeout(
-   >ec_transfer, msecs_to_jiffies(5000));
+   done = >ec_transfer;
+   timeout = msecs_to_jiffies(5000);
+   err = wait_for_completion_interruptible_timeout(done,
+   timeout);
 
if (err == 0) {
dev_warn(nvec->dev, "timeout waiting for ec 
transfer\n");
@@ -626,7 +628,7 @@ static irqreturn_t nvec_interrupt(int irq, void *dev)
break;
case 2: /* first byte after command */
if (status == (I2C_SL_IRQ | RNW | RCVD)) {
-   udelay(33);
+   usleep_range(0, 33);
if (nvec->rx->data[0] != 0x01) {
dev_err(nvec->dev,
"Read without prior read command\n");
@@ -713,7 +715,7 @@ static irqreturn_t nvec_interrupt(int irq, void *dev)
 * We experience less incomplete messages with this delay than without
 * it, but we don't know why. Help is appreciated.
 */
-   udelay(100);
+   usleep_range(0, 100);
 
return IRQ_HANDLED;
 }
-- 
2.7.4

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel