Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1314934

Re: [PATCH v2 03/10] rtc: max77686: Use usleep_range() instead of msleep()

From Javier Martinez Canillas <javier@osg.samsung.com>
Newsgroups linux.kernel
Subject Re: [PATCH v2 03/10] rtc: max77686: Use usleep_range() instead of msleep()
Date 2016-01-22 13:10 +0100
Message-ID <qTIHo-3Qm-25@gated-at.bofh.it> (permalink)
References <qTu1H-1V0-5@gated-at.bofh.it> <qTu1I-1V0-33@gated-at.bofh.it> <qTGFA-2gp-15@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Hello Laxman,

On 01/22/2016 06:41 AM, Laxman Dewangan wrote:
>
> On Friday 22 January 2016 01:53 AM, Javier Martinez Canillas wrote:
>>       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);
>>       }
>>
>
> Instead of making usleep_range(16000, 32000), can we make small range as
> usleep_range(16000, 17000)?
>

Yes, I also didn't know how to make the delay smaller. If I do for example

usleep_range(delay, delay + 10000), then the 10000 delta would be too big
for max77802 (50 times the minimum required 200 delay).

So I used delay * 2 for two reasons:

1) That way is generic enough and can work for any delay

2) My understanding is that most of times the delay should be precise and
    is not that bad if sometimes the delay is the worst case (2 * X) since
    after all the delay is the minimum required.

I also see that usleep_range(X, X * 2) is a used pattern across the kernel.

> I am using as usleep_range(16000, 16000) always.

According to Documentation/timers/timers-howto.txt, that's not a good
idea since usleep_range() is implemented using high-resolution timers
so by not using a range, the kernel won't be able to merge the wakeup
with other wakeups which leads to much more interrupts being triggered.

Best regards,
-- 
Javier Martinez Canillas
Open Source Group
Samsung Research America

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v2 00/10] rtc: max77686: Extend driver and add max77802 support Javier Martinez Canillas <javier@osg.samsung.com> - 2016-01-21 21:30 +0100
  [PATCH v2 01/10] rtc: max77686: Fix max77686_rtc_read_alarm() return value Javier Martinez Canillas <javier@osg.samsung.com> - 2016-01-21 21:30 +0100
    Re: [PATCH v2 01/10] rtc: max77686: Fix max77686_rtc_read_alarm()  return value Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-01-22 02:00 +0100
    Re: [PATCH v2 01/10] rtc: max77686: Fix max77686_rtc_read_alarm()  return value Laxman Dewangan <ldewangan@nvidia.com> - 2016-01-22 10:50 +0100
  [PATCH v2 02/10] rtc: max77686: Use ARRAY_SIZE() instead of current array length Javier Martinez Canillas <javier@osg.samsung.com> - 2016-01-21 21:30 +0100
    Re: [PATCH v2 02/10] rtc: max77686: Use ARRAY_SIZE() instead of  current array length Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-01-22 02:00 +0100
    Re: [PATCH v2 02/10] rtc: max77686: Use ARRAY_SIZE() instead of current  array length Laxman Dewangan <ldewangan@nvidia.com> - 2016-01-22 11:00 +0100
      Re: [PATCH v2 02/10] rtc: max77686: Use ARRAY_SIZE() instead of  current array length Javier Martinez Canillas <javier@osg.samsung.com> - 2016-01-22 12:50 +0100
  [PATCH v2 07/10] rtc: max77686: Use dev_warn() instead of pr_warn() Javier Martinez Canillas <javier@osg.samsung.com> - 2016-01-21 21:30 +0100
  [PATCH v2 03/10] rtc: max77686: Use usleep_range() instead of msleep() Javier Martinez Canillas <javier@osg.samsung.com> - 2016-01-21 21:30 +0100
    Re: [PATCH v2 03/10] rtc: max77686: Use usleep_range() instead of  msleep() Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-01-22 02:10 +0100
    Re: [PATCH v2 03/10] rtc: max77686: Use usleep_range() instead of  msleep() Laxman Dewangan <ldewangan@nvidia.com> - 2016-01-22 11:00 +0100
      Re: [PATCH v2 03/10] rtc: max77686: Use usleep_range() instead of  msleep() Javier Martinez Canillas <javier@osg.samsung.com> - 2016-01-22 13:10 +0100
        Re: [PATCH v2 03/10] rtc: max77686: Use usleep_range() instead of  msleep() Laxman Dewangan <ldewangan@nvidia.com> - 2016-01-25 12:30 +0100
  [PATCH v2 10/10] ARM: multi_v7_defconfig: Remove MAX77802 RTC Kconfig symbol Javier Martinez Canillas <javier@osg.samsung.com> - 2016-01-21 21:30 +0100
    Re: [PATCH v2 10/10] ARM: multi_v7_defconfig: Remove MAX77802 RTC  Kconfig symbol Laxman Dewangan <ldewangan@nvidia.com> - 2016-01-22 11:10 +0100
      Re: [PATCH v2 10/10] ARM: multi_v7_defconfig: Remove MAX77802 RTC  Kconfig symbol Javier Martinez Canillas <javier@osg.samsung.com> - 2016-01-22 13:10 +0100
  [PATCH v2 09/10] ARM: exynos_defconfig: Remove MAX77802 RTC Kconfig symbol Javier Martinez Canillas <javier@osg.samsung.com> - 2016-01-21 21:30 +0100
  Re: [PATCH v2 00/10] rtc: max77686: Extend driver and add max77802  support Alexandre Belloni <alexandre.belloni@free-electrons.com> - 2016-01-25 17:30 +0100
    Re: [PATCH v2 00/10] rtc: max77686: Extend driver and add max77802  support Javier Martinez Canillas <javier@osg.samsung.com> - 2016-01-26 00:50 +0100

csiph-web