{
        int          ret;
        unsigned int val;
+       long     timeout;
 
        zpa2326_dbg(indio_dev, "waiting for one shot completion interrupt");
 
-       ret = wait_for_completion_interruptible_timeout(
+       timeout = wait_for_completion_interruptible_timeout(
                &private->data_ready, ZPA2326_CONVERSION_JIFFIES);
-       if (ret > 0)
+       if (timeout > 0)
                /*
                 * Interrupt handler completed before timeout: return operation
                 * status.
        /* Clear all interrupts just to be sure. */
        regmap_read(private->regmap, ZPA2326_INT_SOURCE_REG, &val);
 
-       if (!ret)
+       if (!timeout) {
                /* Timed out. */
+               zpa2326_warn(indio_dev, "no one shot interrupt occurred (%ld)",
+                            timeout);
                ret = -ETIME;
-
-       if (ret != -ERESTARTSYS)
-               zpa2326_warn(indio_dev, "no one shot interrupt occurred (%d)",
-                            ret);
+       } else if (timeout < 0) {
+               zpa2326_warn(indio_dev,
+                            "wait for one shot interrupt cancelled");
+               ret = -ERESTARTSYS;
+       }
 
        return ret;
 }