diff options
-rw-r--r-- | drivers/media/radio/si4713/si4713.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/media/radio/si4713/si4713.c b/drivers/media/radio/si4713/si4713.c index 4c3498f05030..07d5153811e8 100644 --- a/drivers/media/radio/si4713/si4713.c +++ b/drivers/media/radio/si4713/si4713.c @@ -252,8 +252,11 @@ static int si4713_send_command(struct si4713_device *sdev, const u8 command, if (client->irq) return -EBUSY; - msleep(1); - } while (jiffies <= until_jiffies); + if (usecs <= 1000) + usleep_range(usecs, 1000); + else + usleep_range(1000, 2000); + } while (time_is_after_jiffies(until_jiffies)); return -EBUSY; } @@ -505,11 +508,11 @@ static int si4713_wait_stc(struct si4713_device *sdev, const int usecs) } if (jiffies_to_usecs(jiffies - start_jiffies) > usecs) return err < 0 ? err : -EIO; - /* We sleep here for 3 ms in order to avoid flooding the device + /* We sleep here for 3-4 ms in order to avoid flooding the device * with USB requests. The si4713 USB driver was developed * by reverse engineering the Windows USB driver. The windows * driver also has a ~2.5 ms delay between responses. */ - msleep(3); + usleep_range(3000, 4000); } } |