From: Javier Martinez Canillas <javier@osg.samsung.com>
To: Laxman Dewangan <ldewangan@nvidia.com>, linux-kernel@vger.kernel.org
Cc: Kukjin Kim <kgene@kernel.org>,
rtc-linux@googlegroups.com, Chanwoo Choi <cw00.choi@samsung.com>,
Alexandre Belloni <alexandre.belloni@free-electrons.com>,
Krzysztof Kozlowski <k.kozlowski@samsung.com>,
linux-samsung-soc@vger.kernel.org
Subject: Re: [PATCH v2 03/10] rtc: max77686: Use usleep_range() instead of msleep()
Date: Fri, 22 Jan 2016 09:05:49 -0300 [thread overview]
Message-ID: <56A21B1D.8030303@osg.samsung.com> (raw)
In-Reply-To: <56A1F935.2040904@nvidia.com>
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
next prev parent reply other threads:[~2016-01-22 12:06 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-21 20:23 [PATCH v2 00/10] rtc: max77686: Extend driver and add max77802 support Javier Martinez Canillas
2016-01-21 20:23 ` [PATCH v2 01/10] rtc: max77686: Fix max77686_rtc_read_alarm() return value Javier Martinez Canillas
2016-01-22 0:51 ` Krzysztof Kozlowski
2016-01-22 9:35 ` Laxman Dewangan
2016-01-21 20:23 ` [PATCH v2 02/10] rtc: max77686: Use ARRAY_SIZE() instead of current array length Javier Martinez Canillas
2016-01-22 0:53 ` Krzysztof Kozlowski
2016-01-22 9:39 ` Laxman Dewangan
2016-01-22 11:43 ` Javier Martinez Canillas
2016-01-21 20:23 ` [PATCH v2 03/10] rtc: max77686: Use usleep_range() instead of msleep() Javier Martinez Canillas
2016-01-22 1:02 ` Krzysztof Kozlowski
2016-01-22 9:41 ` Laxman Dewangan
2016-01-22 12:05 ` Javier Martinez Canillas [this message]
2016-01-25 11:17 ` Laxman Dewangan
2016-01-21 20:23 ` [PATCH v2 04/10] rtc: max77686: Use a driver data struct instead hard-coded values Javier Martinez Canillas
2016-01-22 1:00 ` Krzysztof Kozlowski
2016-01-22 1:48 ` Javier Martinez Canillas
2016-01-22 9:50 ` Laxman Dewangan
2016-01-21 20:23 ` [PATCH v2 05/10] rtc: max77686: Add an indirection level to access RTC registers Javier Martinez Canillas
2016-01-22 9:52 ` Laxman Dewangan
2016-01-21 20:23 ` [PATCH v2 06/10] rtc: max77686: Add max77802 support Javier Martinez Canillas
2016-01-22 9:54 ` Laxman Dewangan
2016-01-21 20:23 ` [PATCH v2 07/10] rtc: max77686: Use dev_warn() instead of pr_warn() Javier Martinez Canillas
2016-01-22 9:56 ` Laxman Dewangan
2016-01-21 20:23 ` [PATCH v2 08/10] rtc: Remove Maxim 77802 driver Javier Martinez Canillas
2016-01-22 9:59 ` Laxman Dewangan
2016-01-21 20:23 ` [PATCH v2 09/10] ARM: exynos_defconfig: Remove MAX77802 RTC Kconfig symbol Javier Martinez Canillas
2016-01-21 20:23 ` [PATCH v2 10/10] ARM: multi_v7_defconfig: " Javier Martinez Canillas
2016-01-22 9:57 ` Laxman Dewangan
2016-01-22 12:09 ` Javier Martinez Canillas
2016-01-25 16:06 ` [PATCH v2 00/10] rtc: max77686: Extend driver and add max77802 support Alexandre Belloni
2016-01-25 23:45 ` Javier Martinez Canillas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56A21B1D.8030303@osg.samsung.com \
--to=javier@osg.samsung.com \
--cc=alexandre.belloni@free-electrons.com \
--cc=cw00.choi@samsung.com \
--cc=k.kozlowski@samsung.com \
--cc=kgene@kernel.org \
--cc=ldewangan@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=rtc-linux@googlegroups.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox