All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Frank Wunderlich <frank-w@public-files.de>
Cc: linux-mediatek@lists.infradead.org, devicetree@vger.kernel.org,
	"linux-arm-kernel @ lists . infradead . org Alessandro Zummo" 
	<a.zummo@towertech.it>, Eddie Huang <eddie.huang@mediatek.com>,
	Josef Friedl <josef.friedl@speed.at>,
	Lee Jones <lee.jones@linaro.org>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
	linux-rtc@vger.kernel.org, Mark Rutland <mark.rutland@arm.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Rob Herring <robh+dt@kernel.org>,
	Sean Wang <sean.wang@mediatek.com>,
	Sebastian Reichel <sre@kernel.org>,
	Tianping Fang <tianping.fang@mediatek.com>
Subject: Re: [PATCH v6 07/13] rtc: mt6397: improvements of rtc driver
Date: Tue, 20 Aug 2019 21:49:59 +0200	[thread overview]
Message-ID: <20190820194959.GY3545@piout.net> (raw)
In-Reply-To: <20190818135611.7776-8-frank-w@public-files.de>

On 18/08/2019 15:56:05+0200, Frank Wunderlich wrote:
> From: Josef Friedl <josef.friedl@speed.at>
> 
> - use regmap_read_poll_timeout to drop while-loop
> - use devm-api to drop remove-callback
> 
> Suggested-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Signed-off-by: Josef Friedl <josef.friedl@speed.at>
> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

> ---
> changes since v5: none
> changes since v4: none
> changes since v3: none
> changes since v2:
> - fix allocation after irq-request
> - compatible for mt6323 in separate commit => part 5
> ---
>  drivers/rtc/rtc-mt6397.c | 51 +++++++++++++++-------------------------
>  1 file changed, 19 insertions(+), 32 deletions(-)
> 
> diff --git a/drivers/rtc/rtc-mt6397.c b/drivers/rtc/rtc-mt6397.c
> index c08ee5edf865..9370b7fc9f81 100644
> --- a/drivers/rtc/rtc-mt6397.c
> +++ b/drivers/rtc/rtc-mt6397.c
> @@ -4,16 +4,19 @@
>  * Author: Tianping.Fang <tianping.fang@mediatek.com>
>  */
>  
> -#include <linux/delay.h>
> -#include <linux/init.h>
> +#include <linux/err.h>
> +#include <linux/interrupt.h>
> +#include <linux/mfd/mt6397/core.h>
>  #include <linux/module.h>
> +#include <linux/mutex.h>
> +#include <linux/platform_device.h>
>  #include <linux/regmap.h>
>  #include <linux/rtc.h>
>  #include <linux/mfd/mt6397/rtc.h>
> +#include <linux/mod_devicetable.h>
>  
>  static int mtk_rtc_write_trigger(struct mt6397_rtc *rtc)
>  {
> -	unsigned long timeout = jiffies + HZ;
>  	int ret;
>  	u32 data;
>  
> @@ -21,19 +24,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 < 0)
> +		dev_err(rtc->dev, "failed to write WRTGE: %d\n", ret);
>  
>  	return ret;
>  }
> @@ -266,19 +263,19 @@ static int mtk_rtc_probe(struct platform_device *pdev)
>  		return rtc->irq;
>  
>  	rtc->regmap = mt6397_chip->regmap;
> -	rtc->dev = &pdev->dev;
>  	mutex_init(&rtc->lock);
>  
>  	platform_set_drvdata(pdev, rtc);
>  
> -	rtc->rtc_dev = devm_rtc_allocate_device(rtc->dev);
> +	rtc->rtc_dev = devm_rtc_allocate_device(&pdev->dev);
>  	if (IS_ERR(rtc->rtc_dev))
>  		return PTR_ERR(rtc->rtc_dev);
>  
> -	ret = request_threaded_irq(rtc->irq, NULL,
> -				   mtk_rtc_irq_handler_thread,
> -				   IRQF_ONESHOT | IRQF_TRIGGER_HIGH,
> -				   "mt6397-rtc", rtc);
> +	ret = devm_request_threaded_irq(&pdev->dev, rtc->irq, NULL,
> +					mtk_rtc_irq_handler_thread,
> +					IRQF_ONESHOT | IRQF_TRIGGER_HIGH,
> +					"mt6397-rtc", rtc);
> +
>  	if (ret) {
>  		dev_err(&pdev->dev, "Failed to request alarm IRQ: %d: %d\n",
>  			rtc->irq, ret);
> @@ -302,15 +299,6 @@ static int mtk_rtc_probe(struct platform_device *pdev)
>  	return ret;
>  }
>  
> -static int mtk_rtc_remove(struct platform_device *pdev)
> -{
> -	struct mt6397_rtc *rtc = platform_get_drvdata(pdev);
> -
> -	free_irq(rtc->irq, rtc);
> -
> -	return 0;
> -}
> -
>  #ifdef CONFIG_PM_SLEEP
>  static int mt6397_rtc_suspend(struct device *dev)
>  {
> @@ -349,7 +337,6 @@ static struct platform_driver mtk_rtc_driver = {
>  		.pm = &mt6397_pm_ops,
>  	},
>  	.probe	= mtk_rtc_probe,
> -	.remove = mtk_rtc_remove,
>  };
>  
>  module_platform_driver(mtk_rtc_driver);
> -- 
> 2.17.1
> 

-- 
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

WARNING: multiple messages have this Message-ID (diff)
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Frank Wunderlich <frank-w@public-files.de>
Cc: linux-rtc@vger.kernel.org, devicetree@vger.kernel.org,
	Josef Friedl <josef.friedl@speed.at>,
	Sean Wang <sean.wang@mediatek.com>,
	"linux-arm-kernel @ lists . infradead . org Alessandro Zummo"
	<a.zummo@towertech.it>,
	linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
	Sebastian Reichel <sre@kernel.org>,
	Tianping Fang <tianping.fang@mediatek.com>,
	Rob Herring <robh+dt@kernel.org>,
	linux-mediatek@lists.infradead.org,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Eddie Huang <eddie.huang@mediatek.com>,
	Lee Jones <lee.jones@linaro.org>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v6 07/13] rtc: mt6397: improvements of rtc driver
Date: Tue, 20 Aug 2019 21:49:59 +0200	[thread overview]
Message-ID: <20190820194959.GY3545@piout.net> (raw)
In-Reply-To: <20190818135611.7776-8-frank-w@public-files.de>

On 18/08/2019 15:56:05+0200, Frank Wunderlich wrote:
> From: Josef Friedl <josef.friedl@speed.at>
> 
> - use regmap_read_poll_timeout to drop while-loop
> - use devm-api to drop remove-callback
> 
> Suggested-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Signed-off-by: Josef Friedl <josef.friedl@speed.at>
> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

> ---
> changes since v5: none
> changes since v4: none
> changes since v3: none
> changes since v2:
> - fix allocation after irq-request
> - compatible for mt6323 in separate commit => part 5
> ---
>  drivers/rtc/rtc-mt6397.c | 51 +++++++++++++++-------------------------
>  1 file changed, 19 insertions(+), 32 deletions(-)
> 
> diff --git a/drivers/rtc/rtc-mt6397.c b/drivers/rtc/rtc-mt6397.c
> index c08ee5edf865..9370b7fc9f81 100644
> --- a/drivers/rtc/rtc-mt6397.c
> +++ b/drivers/rtc/rtc-mt6397.c
> @@ -4,16 +4,19 @@
>  * Author: Tianping.Fang <tianping.fang@mediatek.com>
>  */
>  
> -#include <linux/delay.h>
> -#include <linux/init.h>
> +#include <linux/err.h>
> +#include <linux/interrupt.h>
> +#include <linux/mfd/mt6397/core.h>
>  #include <linux/module.h>
> +#include <linux/mutex.h>
> +#include <linux/platform_device.h>
>  #include <linux/regmap.h>
>  #include <linux/rtc.h>
>  #include <linux/mfd/mt6397/rtc.h>
> +#include <linux/mod_devicetable.h>
>  
>  static int mtk_rtc_write_trigger(struct mt6397_rtc *rtc)
>  {
> -	unsigned long timeout = jiffies + HZ;
>  	int ret;
>  	u32 data;
>  
> @@ -21,19 +24,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 < 0)
> +		dev_err(rtc->dev, "failed to write WRTGE: %d\n", ret);
>  
>  	return ret;
>  }
> @@ -266,19 +263,19 @@ static int mtk_rtc_probe(struct platform_device *pdev)
>  		return rtc->irq;
>  
>  	rtc->regmap = mt6397_chip->regmap;
> -	rtc->dev = &pdev->dev;
>  	mutex_init(&rtc->lock);
>  
>  	platform_set_drvdata(pdev, rtc);
>  
> -	rtc->rtc_dev = devm_rtc_allocate_device(rtc->dev);
> +	rtc->rtc_dev = devm_rtc_allocate_device(&pdev->dev);
>  	if (IS_ERR(rtc->rtc_dev))
>  		return PTR_ERR(rtc->rtc_dev);
>  
> -	ret = request_threaded_irq(rtc->irq, NULL,
> -				   mtk_rtc_irq_handler_thread,
> -				   IRQF_ONESHOT | IRQF_TRIGGER_HIGH,
> -				   "mt6397-rtc", rtc);
> +	ret = devm_request_threaded_irq(&pdev->dev, rtc->irq, NULL,
> +					mtk_rtc_irq_handler_thread,
> +					IRQF_ONESHOT | IRQF_TRIGGER_HIGH,
> +					"mt6397-rtc", rtc);
> +
>  	if (ret) {
>  		dev_err(&pdev->dev, "Failed to request alarm IRQ: %d: %d\n",
>  			rtc->irq, ret);
> @@ -302,15 +299,6 @@ static int mtk_rtc_probe(struct platform_device *pdev)
>  	return ret;
>  }
>  
> -static int mtk_rtc_remove(struct platform_device *pdev)
> -{
> -	struct mt6397_rtc *rtc = platform_get_drvdata(pdev);
> -
> -	free_irq(rtc->irq, rtc);
> -
> -	return 0;
> -}
> -
>  #ifdef CONFIG_PM_SLEEP
>  static int mt6397_rtc_suspend(struct device *dev)
>  {
> @@ -349,7 +337,6 @@ static struct platform_driver mtk_rtc_driver = {
>  		.pm = &mt6397_pm_ops,
>  	},
>  	.probe	= mtk_rtc_probe,
> -	.remove = mtk_rtc_remove,
>  };
>  
>  module_platform_driver(mtk_rtc_driver);
> -- 
> 2.17.1
> 

-- 
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-08-20 19:50 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-18 13:55 [PATCH v6 00/13] implement poweroff for mt6323 / bpi-r2 Frank Wunderlich
2019-08-18 13:55 ` Frank Wunderlich
2019-08-18 13:55 ` [PATCH v6 01/13] dt-bindings: mfd: mediatek: mt6397: change to relative paths Frank Wunderlich
2019-08-18 13:55   ` Frank Wunderlich
2019-08-18 13:55   ` Frank Wunderlich
2019-08-27 16:33   ` Rob Herring
2019-08-27 16:33     ` Rob Herring
2019-08-27 16:33     ` Rob Herring
2019-09-02  9:43   ` Lee Jones
2019-09-02  9:43     ` Lee Jones
2019-09-02  9:43     ` Lee Jones
2019-08-18 13:56 ` [PATCH v6 02/13] dt-bindings: mfd: mediatek: update rtc to include mt6323 Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-27 16:46   ` Rob Herring
2019-08-27 16:46     ` Rob Herring
2019-08-27 16:46     ` Rob Herring
2019-09-02  9:44   ` Lee Jones
2019-09-02  9:44     ` Lee Jones
2019-09-02  9:44     ` Lee Jones
2019-08-18 13:56 ` [PATCH v6 03/13] dt-bindings: mfd: mediatek: add mt6323 power-controller Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-27 16:46   ` Rob Herring
2019-08-27 16:46     ` Rob Herring
2019-08-27 16:46     ` Rob Herring
2019-09-02  9:44   ` Lee Jones
2019-09-02  9:44     ` Lee Jones
2019-09-02  9:44     ` Lee Jones
2019-08-18 13:56 ` [PATCH v6 04/13] dt-bindings: rtc: mediatek: add missing mt6397 rtc Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-27 16:47   ` Rob Herring
2019-08-27 16:47     ` Rob Herring
2019-08-27 16:47     ` Rob Herring
2019-08-18 13:56 ` [PATCH v6 05/13] rtc: mt6397: move some common definitions into rtc.h Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-20 19:48   ` Alexandre Belloni
2019-08-20 19:48     ` Alexandre Belloni
2019-08-20 19:48     ` Alexandre Belloni
2019-09-02  9:47   ` Lee Jones
2019-09-02  9:47     ` Lee Jones
2019-09-02  9:47     ` Lee Jones
2019-08-18 13:56 ` [PATCH v6 06/13] mfd: mt6397: add mutex include Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-09-02  9:49   ` Lee Jones
2019-09-02  9:49     ` Lee Jones
2019-09-02  9:49     ` Lee Jones
2019-08-18 13:56 ` [PATCH v6 07/13] rtc: mt6397: improvements of rtc driver Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-20 19:49   ` Alexandre Belloni [this message]
2019-08-20 19:49     ` Alexandre Belloni
2019-08-20 19:49     ` Alexandre Belloni
2019-08-18 13:56 ` [PATCH v6 08/13] mfd: mt6323: some improvements of mt6397-core Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-09-02  9:49   ` Lee Jones
2019-09-02  9:49     ` Lee Jones
2019-09-02  9:49     ` Lee Jones
2019-08-18 13:56 ` [PATCH v6 09/13] rtc: mt6397: add compatible for mt6323 Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-20 19:49   ` Alexandre Belloni
2019-08-20 19:49     ` Alexandre Belloni
2019-08-20 19:49     ` Alexandre Belloni
2019-08-18 13:56 ` [PATCH v6 10/13] mfd: mt6323: add mt6323 rtc+pwrc Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-09-02  9:50   ` Lee Jones
2019-09-02  9:50     ` Lee Jones
2019-09-02  9:50     ` Lee Jones
2019-08-18 13:56 ` [PATCH v6 11/13] power: reset: add driver for mt6323 poweroff Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-09-01 20:11   ` Sebastian Reichel
2019-09-01 20:11     ` Sebastian Reichel
2019-09-01 20:11     ` Sebastian Reichel
2019-08-18 13:56 ` [PATCH v6 12/13] MAINTAINERS: add Mediatek shutdown drivers Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-09-01 20:12   ` Sebastian Reichel
2019-09-01 20:12     ` Sebastian Reichel
2019-09-01 20:12     ` Sebastian Reichel
2019-08-18 13:56 ` [PATCH v6 13/13] arm: dts: mt6323: add keys, power-controller, rtc and codec Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-18 13:56   ` Frank Wunderlich
2019-08-18 14:30 ` [PATCH v6 00/13] implement poweroff for mt6323 / bpi-r2 Frank Wunderlich
2019-08-18 14:30   ` Frank Wunderlich
2019-08-18 14:30   ` Frank Wunderlich
2019-09-06 13:06 ` Frank Wunderlich
2019-09-06 13:06   ` Frank Wunderlich
2019-09-06 13:06   ` Frank Wunderlich
2019-08-18 16:07 Frank Wunderlich
2019-08-18 16:07 ` [PATCH v6 07/13] rtc: mt6397: improvements of rtc driver Frank Wunderlich

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=20190820194959.GY3545@piout.net \
    --to=alexandre.belloni@bootlin.com \
    --cc=a.zummo@towertech.it \
    --cc=devicetree@vger.kernel.org \
    --cc=eddie.huang@mediatek.com \
    --cc=frank-w@public-files.de \
    --cc=josef.friedl@speed.at \
    --cc=lee.jones@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.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=matthias.bgg@gmail.com \
    --cc=robh+dt@kernel.org \
    --cc=sean.wang@mediatek.com \
    --cc=sre@kernel.org \
    --cc=tianping.fang@mediatek.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 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.