summaryrefslogtreecommitdiffstats
path: root/drivers/rtc
diff options
context:
space:
mode:
authorJavier Martinez Canillas <javier@osg.samsung.com>2016-01-27 00:36:39 -0300
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>2016-02-04 23:42:07 +0100
commit5981804b83650de558c40769fb06f76fab31724e (patch)
treea656cc75d52068d3f5075a503664a0d8881d5ebf /drivers/rtc
parent862f9453bd1494f10b059076a3c97c3b90d248aa (diff)
downloadlinux-stable-5981804b83650de558c40769fb06f76fab31724e.tar.gz
linux-stable-5981804b83650de558c40769fb06f76fab31724e.tar.bz2
linux-stable-5981804b83650de558c40769fb06f76fab31724e.zip
rtc: max77686: Use usleep_range() instead of msleep()
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>
Diffstat (limited to 'drivers/rtc')
-rw-r--r--drivers/rtc/rtc-max77686.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/rtc/rtc-max77686.c b/drivers/rtc/rtc-max77686.c
index d84a50c9f7f7..025a17a95da3 100644
--- a/drivers/rtc/rtc-max77686.c
+++ b/drivers/rtc/rtc-max77686.c
@@ -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,
@@ -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;