From: <sean.wang@mediatek.com> To: <robh+dt@kernel.org>, <mark.rutland@arm.com>, <sre@kernel.org>, <lee.jones@linaro.org>, <a.zummo@towertech.it>, <alexandre.belloni@free-electrons.com>, <eddie.huang@mediatek.com> Cc: <devicetree@vger.kernel.org>, <linux-rtc@vger.kernel.org>, <linux-pm@vger.kernel.org>, <linux-mediatek@lists.infradead.org>, <linux-kernel@vger.kernel.org>, Sean Wang <sean.wang@mediatek.com> Subject: [PATCH v1 07/16] rtc: mediatek: replace a poll with regmap_read_poll_timeout Date: Fri, 23 Mar 2018 17:15:04 +0800 [thread overview] Message-ID: <5e34fe67466d09ad5ce15e913dbe371eeb0a250f.1521794177.git.sean.wang@mediatek.com> (raw) In-Reply-To: <cover.1521794176.git.sean.wang@mediatek.com> From: Sean Wang <sean.wang@mediatek.com> Reuse the helper regmap_read_poll_timeout instead to simpify the logic. Furthermore, the time for a wait in each iteration changed from cpu_relax to 20us is for matching the usage of the helper, but it wouldn't acctually break any the existent functionality according to a good test on MT6323 PMIC. Signed-off-by: Sean Wang <sean.wang@mediatek.com> --- drivers/rtc/rtc-mt6397.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/drivers/rtc/rtc-mt6397.c b/drivers/rtc/rtc-mt6397.c index 4411c08..b62eaa8 100644 --- a/drivers/rtc/rtc-mt6397.c +++ b/drivers/rtc/rtc-mt6397.c @@ -18,6 +18,7 @@ #include <linux/regmap.h> #include <linux/rtc.h> #include <linux/irqdomain.h> +#include <linux/jiffies.h> #include <linux/platform_device.h> #include <linux/of_address.h> #include <linux/of_irq.h> @@ -63,6 +64,9 @@ #define RTC_NUM_YEARS 128 #define RTC_MIN_YEAR_OFFSET (RTC_MIN_YEAR - RTC_BASE_YEAR) +#define MTK_RTC_POLL_DELAY_US 10 +#define MTK_RTC_POLL_TIMEOUT (jiffies_to_usecs(HZ)) + struct mt6397_rtc { struct device *dev; struct rtc_device *rtc_dev; @@ -74,7 +78,6 @@ struct mt6397_rtc { static int mtk_rtc_write_trigger(struct mt6397_rtc *rtc) { - unsigned long timeout = jiffies + HZ; int ret; u32 data; @@ -82,19 +85,13 @@ static int mtk_rtc_write_trigger(struct mt6397_rtc *rtc) if (ret < 0) return ret; - while (1) { - ret = regmap_read(rtc->regmap, rtc->addr_base + RTC_BBPU, - &data); - if (ret < 0) - break; - if (!(data & RTC_BBPU_CBUSY)) - break; - if (time_after(jiffies, timeout)) { - ret = -ETIMEDOUT; - break; - } - cpu_relax(); - } + ret = regmap_read_poll_timeout(rtc->regmap, + rtc->addr_base + RTC_BBPU, data, + !(data & RTC_BBPU_CBUSY), + MTK_RTC_POLL_DELAY_US, + MTK_RTC_POLL_TIMEOUT); + if (ret) + dev_err(rtc->dev, "failed to write WRTGE: %d\n", ret); return ret; } -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: <sean.wang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org> To: robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, mark.rutland-5wv7dgnIgG8@public.gmane.org, sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org, a.zummo-BfzFCNDTiLLj+vYz1yj4TQ@public.gmane.org, alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org, eddie.huang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org Cc: linux-rtc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Sean Wang <sean.wang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org Subject: [PATCH v1 07/16] rtc: mediatek: replace a poll with regmap_read_poll_timeout Date: Fri, 23 Mar 2018 17:15:04 +0800 [thread overview] Message-ID: <5e34fe67466d09ad5ce15e913dbe371eeb0a250f.1521794177.git.sean.wang@mediatek.com> (raw) In-Reply-To: <cover.1521794176.git.sean.wang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org> From: Sean Wang <sean.wang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org> Reuse the helper regmap_read_poll_timeout instead to simpify the logic. Furthermore, the time for a wait in each iteration changed from cpu_relax to 20us is for matching the usage of the helper, but it wouldn't acctually break any the existent functionality according to a good test on MT6323 PMIC. Signed-off-by: Sean Wang <sean.wang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org> --- drivers/rtc/rtc-mt6397.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/drivers/rtc/rtc-mt6397.c b/drivers/rtc/rtc-mt6397.c index 4411c08..b62eaa8 100644 --- a/drivers/rtc/rtc-mt6397.c +++ b/drivers/rtc/rtc-mt6397.c @@ -18,6 +18,7 @@ #include <linux/regmap.h> #include <linux/rtc.h> #include <linux/irqdomain.h> +#include <linux/jiffies.h> #include <linux/platform_device.h> #include <linux/of_address.h> #include <linux/of_irq.h> @@ -63,6 +64,9 @@ #define RTC_NUM_YEARS 128 #define RTC_MIN_YEAR_OFFSET (RTC_MIN_YEAR - RTC_BASE_YEAR) +#define MTK_RTC_POLL_DELAY_US 10 +#define MTK_RTC_POLL_TIMEOUT (jiffies_to_usecs(HZ)) + struct mt6397_rtc { struct device *dev; struct rtc_device *rtc_dev; @@ -74,7 +78,6 @@ struct mt6397_rtc { static int mtk_rtc_write_trigger(struct mt6397_rtc *rtc) { - unsigned long timeout = jiffies + HZ; int ret; u32 data; @@ -82,19 +85,13 @@ static int mtk_rtc_write_trigger(struct mt6397_rtc *rtc) if (ret < 0) return ret; - while (1) { - ret = regmap_read(rtc->regmap, rtc->addr_base + RTC_BBPU, - &data); - if (ret < 0) - break; - if (!(data & RTC_BBPU_CBUSY)) - break; - if (time_after(jiffies, timeout)) { - ret = -ETIMEDOUT; - break; - } - cpu_relax(); - } + ret = regmap_read_poll_timeout(rtc->regmap, + rtc->addr_base + RTC_BBPU, data, + !(data & RTC_BBPU_CBUSY), + MTK_RTC_POLL_DELAY_US, + MTK_RTC_POLL_TIMEOUT); + if (ret) + dev_err(rtc->dev, "failed to write WRTGE: %d\n", ret); return ret; } -- 2.7.4
next prev parent reply other threads:[~2018-03-23 9:18 UTC|newest] Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-03-23 9:14 [PATCH v1 00/16] Add support to MT6323 RTC and its power device sean.wang 2018-03-23 9:14 ` sean.wang 2018-03-23 9:14 ` [PATCH v1 01/16] dt-bindings: power: reset: mediatek: add bindings for " sean.wang 2018-03-23 9:14 ` sean.wang 2018-03-26 22:24 ` Rob Herring 2018-03-27 3:21 ` Sean Wang 2018-03-27 3:21 ` Sean Wang 2018-03-23 9:14 ` [PATCH v1 02/16] dt-bindings: rtc: mediatek: add bindings for PMIC RTC sean.wang 2018-03-23 9:14 ` sean.wang-NuS5LvNUpcJWk0Htik3J/w 2018-03-23 9:41 ` Alexandre Belloni 2018-03-23 10:15 ` Alexandre Belloni 2018-03-23 10:15 ` Alexandre Belloni 2018-03-24 19:36 ` Sean Wang 2018-03-24 19:36 ` Sean Wang 2018-03-27 15:18 ` Alexandre Belloni 2018-03-28 3:53 ` Sean Wang 2018-03-28 3:53 ` Sean Wang 2018-03-28 9:19 ` Alexandre Belloni 2018-03-23 9:15 ` [PATCH v1 03/16] dt-bindings: mfd: mediatek: add a description for MT6323 RTC sean.wang 2018-03-23 9:15 ` sean.wang-NuS5LvNUpcJWk0Htik3J/w 2018-03-26 22:24 ` Rob Herring 2018-03-28 11:13 ` Lee Jones 2018-03-23 9:15 ` [PATCH v1 04/16] mfd: mt6397: add MT6323 RTC support into MT6397 driver sean.wang 2018-03-23 9:15 ` sean.wang-NuS5LvNUpcJWk0Htik3J/w 2018-03-28 11:15 ` Lee Jones 2018-03-28 11:15 ` Lee Jones 2018-03-23 9:15 ` [PATCH v1 05/16] rtc: mediatek: add MT6323 support to RTC driver sean.wang 2018-03-23 9:15 ` sean.wang-NuS5LvNUpcJWk0Htik3J/w 2018-03-23 10:01 ` Alexandre Belloni 2018-03-24 7:06 ` Sean Wang 2018-03-24 7:06 ` Sean Wang 2018-03-23 9:15 ` [PATCH v1 06/16] rtc: mediatek: remove unnecessary parentheses sean.wang 2018-03-23 9:15 ` sean.wang 2018-03-23 10:21 ` Alexandre Belloni 2018-03-24 7:14 ` Sean Wang 2018-03-24 7:14 ` Sean Wang 2018-03-24 18:53 ` Alexandre Belloni 2018-03-24 19:21 ` Sean Wang 2018-03-24 19:21 ` Sean Wang 2018-03-23 9:15 ` sean.wang [this message] 2018-03-23 9:15 ` [PATCH v1 07/16] rtc: mediatek: replace a poll with regmap_read_poll_timeout sean.wang-NuS5LvNUpcJWk0Htik3J/w 2018-03-23 9:15 ` [PATCH v1 08/16] rtc: mediatek: remove unnecessary irq_dispose_mapping sean.wang 2018-03-23 9:15 ` sean.wang-NuS5LvNUpcJWk0Htik3J/w 2018-03-23 10:38 ` Alexandre Belloni 2018-03-26 2:22 ` Sean Wang 2018-03-26 2:22 ` Sean Wang 2018-03-23 9:15 ` [PATCH v1 09/16] rtc: mediatek: convert to use device managed functions sean.wang 2018-03-23 9:15 ` sean.wang-NuS5LvNUpcJWk0Htik3J/w 2018-03-23 10:50 ` Alexandre Belloni 2018-03-26 4:07 ` Sean Wang 2018-03-26 4:07 ` Sean Wang 2018-03-27 15:07 ` Alexandre Belloni 2018-03-27 15:07 ` Alexandre Belloni 2018-03-23 9:15 ` [PATCH v1 10/16] rtc: mediatek: add devm_of_platform_populate sean.wang 2018-03-23 9:15 ` sean.wang-NuS5LvNUpcJWk0Htik3J/w 2018-03-23 9:15 ` [PATCH v1 11/16] rtc: mediatek: move the declaration into a globally visible header file sean.wang 2018-03-23 9:15 ` sean.wang-NuS5LvNUpcJWk0Htik3J/w 2018-03-23 9:57 ` Alexandre Belloni 2018-03-23 9:57 ` Alexandre Belloni 2018-03-24 7:31 ` Sean Wang 2018-03-24 7:31 ` Sean Wang 2018-03-24 18:54 ` Alexandre Belloni 2018-03-24 20:00 ` Fabio Estevam 2018-03-25 3:13 ` Sean Wang 2018-03-25 3:13 ` Sean Wang 2018-03-23 9:15 ` [PATCH v1 12/16] rtc: mediatek: cleanup header files to include sean.wang 2018-03-23 9:15 ` sean.wang 2018-03-25 4:17 ` kbuild test robot 2018-03-25 4:17 ` kbuild test robot 2018-03-25 5:21 ` kbuild test robot 2018-03-25 5:21 ` kbuild test robot 2018-03-23 9:15 ` [PATCH v1 13/16] rtc: mediatek: update license converting to using SPDX identifiers sean.wang 2018-03-23 9:15 ` sean.wang-NuS5LvNUpcJWk0Htik3J/w 2018-03-23 9:15 ` [PATCH v1 14/16] power: reset: mediatek: add a power-off driver using PMIC RTC device sean.wang 2018-03-23 9:15 ` sean.wang 2018-03-23 9:15 ` [PATCH v1 15/16] MAINTAINERS: update entry for ARM/Mediatek RTC DRIVER sean.wang 2018-03-23 9:15 ` sean.wang-NuS5LvNUpcJWk0Htik3J/w 2018-03-23 9:15 ` [PATCH v1 16/16] MAINTAINERS: add an entry for MediaTek board level shutdown driver sean.wang 2018-03-23 9:15 ` sean.wang-NuS5LvNUpcJWk0Htik3J/w
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=5e34fe67466d09ad5ce15e913dbe371eeb0a250f.1521794177.git.sean.wang@mediatek.com \ --to=sean.wang@mediatek.com \ --cc=a.zummo@towertech.it \ --cc=alexandre.belloni@free-electrons.com \ --cc=devicetree@vger.kernel.org \ --cc=eddie.huang@mediatek.com \ --cc=lee.jones@linaro.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mediatek@lists.infradead.org \ --cc=linux-pm@vger.kernel.org \ --cc=linux-rtc@vger.kernel.org \ --cc=mark.rutland@arm.com \ --cc=robh+dt@kernel.org \ --cc=sre@kernel.org \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.