]> git.ipfire.org Git - thirdparty/kernel/linux.git/blobdiff - drivers/spi/spi.c
Merge remote-tracking branches 'spi/topic/delay', 'spi/topic/dw', 'spi/topic/fsl...
[thirdparty/kernel/linux.git] / drivers / spi / spi.c
index 8cf466524442bf85b05e9ac789d9b2ca4823c226..656dd3e3220c5062b43b5a162a078f245f90630c 100644 (file)
@@ -1042,8 +1042,14 @@ static int spi_transfer_one_message(struct spi_master *master,
                if (msg->status != -EINPROGRESS)
                        goto out;
 
-               if (xfer->delay_usecs)
-                       udelay(xfer->delay_usecs);
+               if (xfer->delay_usecs) {
+                       u16 us = xfer->delay_usecs;
+
+                       if (us <= 10)
+                               udelay(us);
+                       else
+                               usleep_range(us, us + DIV_ROUND_UP(us, 10));
+               }
 
                if (xfer->cs_change) {
                        if (list_is_last(&xfer->transfer_list,