Skip to content

Commit

Permalink
rtc: max77686: Use usleep_range() instead of msleep()
Browse files Browse the repository at this point in the history
Documentation/timers/timers-howto.txt suggest to use usleep_range()
instead of msleep() for small msec (1ms - 20ms) since msleep() will
often sleep for 20ms for any value in that range.

This is fine in this case since 16ms is the _minimum_ delay required
by max77686 for an RTC update but by using usleep_range() instead of
msleep(), the driver can support other RTC IP blocks with a shorter
minimum delay (i.e: in the range of usecs instead of msecs).

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Tested-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Reviewed-by: Andi Shyti <andi.shyti@samsung.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
  • Loading branch information
Javier Martinez Canillas authored and Alexandre Belloni committed Feb 4, 2016
1 parent 862f945 commit 5981804
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions drivers/rtc/rtc-max77686.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
#define ALARM_ENABLE_SHIFT 7
#define ALARM_ENABLE_MASK (1 << ALARM_ENABLE_SHIFT)

#define MAX77686_RTC_UPDATE_DELAY 16
#define MAX77686_RTC_UPDATE_DELAY 16000

enum {
RTC_SEC = 0,
Expand Down Expand Up @@ -130,7 +130,8 @@ static int max77686_rtc_update(struct max77686_rtc_info *info,
__func__, ret, data);
else {
/* Minimum 16ms delay required before RTC update. */
msleep(MAX77686_RTC_UPDATE_DELAY);
usleep_range(MAX77686_RTC_UPDATE_DELAY,
MAX77686_RTC_UPDATE_DELAY * 2);
}

return ret;
Expand Down

0 comments on commit 5981804

Please sign in to comment.