Hi Sven,

>  static int pasemi_smb_waitready(struct pasemi_smbus *smbus)
>  {
>       int timeout = 100;
> +     int ret;

can you please declare this "ret" inside the if() statement
below?

>       unsigned int status;
>  
>       if (smbus->use_irq) {
>               reinit_completion(&smbus->irq_completion);
>               reg_write(smbus, REG_IMASK, SMSTA_XEN | SMSTA_MTN);
> -             wait_for_completion_timeout(&smbus->irq_completion, 
> msecs_to_jiffies(100));
> +             ret = wait_for_completion_timeout(&smbus->irq_completion, 
> msecs_to_jiffies(100));
>               reg_write(smbus, REG_IMASK, 0);
>               status = reg_read(smbus, REG_SMSTA);
> +
> +             if (ret < 0) {
> +                     dev_err(smbus->dev,
> +                             "Completion wait failed with %d, status 
> 0x%08x\n",
> +                             ret, status);
> +                     return ret;
> +             } else if (ret == 0) {
> +                     dev_warn(smbus->dev, "Timeout, status 0x%08x\n", 
> status);
> +                     return -ETIME;
> +             }
>       } else {
>               status = reg_read(smbus, REG_SMSTA);
>               while (!(status & SMSTA_XEN) && timeout--) {
>                       msleep(1);
>                       status = reg_read(smbus, REG_SMSTA);
>               }
> +
> +             if (timeout < 0) {
> +                     dev_warn(smbus->dev, "Timeout, status 0x%08x\n", 
> status);

this is an error and it's treated as an error, can we please
print dev_err()?

Andi

> +                     return -ETIME;
> +             }
>       }

Reply via email to