stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 01/12] rtc: omap: fix clock-source configuration
       [not found] <1412881594-25678-1-git-send-email-johan@kernel.org>
@ 2014-10-09 19:06 ` Johan Hovold
  2014-10-10 17:55   ` Felipe Balbi
  2014-10-09 19:06 ` [PATCH 02/12] rtc: omap: fix missing wakealarm attribute Johan Hovold
       [not found] ` <1413913086-12730-1-git-send-email-johan@kernel.org>
  2 siblings, 1 reply; 6+ messages in thread
From: Johan Hovold @ 2014-10-09 19:06 UTC (permalink / raw)
  To: Alessandro Zummo, Tony Lindgren, Benoît Cousson
  Cc: Andrew Morton, Felipe Balbi, Lokesh Vutla, Guenter Roeck,
	Colin Foe-Parker, AnilKumar Ch, nsekhar, t-kristo, j-keerthy,
	linux-omap, linux-arm-kernel, devicetree, rtc-linux, linux-kernel,
	Johan Hovold, stable

Make sure not to reset the clock-source configuration when enabling the
32kHz clock mux.

Until the clock source can be configured through device tree we must not
overwrite settings made by the bootloader (e.g. clock-source selection).

Fixes: cd914bba03d8 ("drivers/rtc/rtc-omap.c: add support for enabling
32khz clock")
Cc: stable <stable@vger.kernel.org>

Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/rtc/rtc-omap.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c
index 21142e6574a9..f842c216f2dd 100644
--- a/drivers/rtc/rtc-omap.c
+++ b/drivers/rtc/rtc-omap.c
@@ -431,8 +431,10 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
 	rtc_write(0, OMAP_RTC_INTERRUPTS_REG);
 
 	/* enable RTC functional clock */
-	if (id_entry->driver_data & OMAP_RTC_HAS_32KCLK_EN)
-		rtc_writel(OMAP_RTC_OSC_32KCLK_EN, OMAP_RTC_OSC_REG);
+	if (id_entry->driver_data & OMAP_RTC_HAS_32KCLK_EN) {
+		reg = rtc_read(OMAP_RTC_OSC_REG);
+		rtc_writel(reg | OMAP_RTC_OSC_32KCLK_EN, OMAP_RTC_OSC_REG);
+	}
 
 	/* clear old status */
 	reg = rtc_read(OMAP_RTC_STATUS_REG);
-- 
2.0.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 02/12] rtc: omap: fix missing wakealarm attribute
       [not found] <1412881594-25678-1-git-send-email-johan@kernel.org>
  2014-10-09 19:06 ` [PATCH 01/12] rtc: omap: fix clock-source configuration Johan Hovold
@ 2014-10-09 19:06 ` Johan Hovold
  2014-10-10 17:55   ` Felipe Balbi
       [not found] ` <1413913086-12730-1-git-send-email-johan@kernel.org>
  2 siblings, 1 reply; 6+ messages in thread
From: Johan Hovold @ 2014-10-09 19:06 UTC (permalink / raw)
  To: Alessandro Zummo, Tony Lindgren, Benoît Cousson
  Cc: Andrew Morton, Felipe Balbi, Lokesh Vutla, Guenter Roeck,
	Colin Foe-Parker, AnilKumar Ch, nsekhar, t-kristo, j-keerthy,
	linux-omap, linux-arm-kernel, devicetree, rtc-linux, linux-kernel,
	Johan Hovold, stable

The platform device must be registered as wakeup capable before
registering the class device, or the wakealarm attribute will not be
created.

Also make sure to unregister the wakeup source on probe errors.

Fixes: 1d2e2b65d098 ("rtc: omap: restore back (hard-code) wakeup support")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/rtc/rtc-omap.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c
index f842c216f2dd..828cb9983cc2 100644
--- a/drivers/rtc/rtc-omap.c
+++ b/drivers/rtc/rtc-omap.c
@@ -416,6 +416,8 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
 		rtc_writel(KICK1_VALUE, OMAP_RTC_KICK1_REG);
 	}
 
+	device_init_wakeup(&pdev->dev, true);
+
 	rtc = devm_rtc_device_register(&pdev->dev, pdev->name,
 			&omap_rtc_ops, THIS_MODULE);
 	if (IS_ERR(rtc)) {
@@ -484,8 +486,6 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
 	 *    is write-only, and always reads as zero...)
 	 */
 
-	device_init_wakeup(&pdev->dev, true);
-
 	if (new_ctrl & (u8) OMAP_RTC_CTRL_SPLIT)
 		pr_info("%s: split power mode\n", pdev->name);
 
@@ -495,6 +495,7 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
 	return 0;
 
 fail0:
+	device_init_wakeup(&pdev->dev, false);
 	if (id_entry->driver_data & OMAP_RTC_HAS_KICKER)
 		rtc_writel(0, OMAP_RTC_KICK0_REG);
 	pm_runtime_put_sync(&pdev->dev);
-- 
2.0.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 01/12] rtc: omap: fix clock-source configuration
  2014-10-09 19:06 ` [PATCH 01/12] rtc: omap: fix clock-source configuration Johan Hovold
@ 2014-10-10 17:55   ` Felipe Balbi
  0 siblings, 0 replies; 6+ messages in thread
From: Felipe Balbi @ 2014-10-10 17:55 UTC (permalink / raw)
  To: Johan Hovold
  Cc: Alessandro Zummo, Tony Lindgren, Benoît Cousson,
	Andrew Morton, Felipe Balbi, Lokesh Vutla, Guenter Roeck,
	Colin Foe-Parker, nsekhar, t-kristo, j-keerthy, linux-omap,
	linux-arm-kernel, devicetree, rtc-linux, linux-kernel, stable

[-- Attachment #1: Type: text/plain, Size: 1393 bytes --]

On Thu, Oct 09, 2014 at 09:06:23PM +0200, Johan Hovold wrote:
> Make sure not to reset the clock-source configuration when enabling the
> 32kHz clock mux.
> 
> Until the clock source can be configured through device tree we must not
> overwrite settings made by the bootloader (e.g. clock-source selection).
> 
> Fixes: cd914bba03d8 ("drivers/rtc/rtc-omap.c: add support for enabling
> 32khz clock")
> Cc: stable <stable@vger.kernel.org>
> 
> Signed-off-by: Johan Hovold <johan@kernel.org>

Reviewed-by: Felipe Balbi <balbi@ti.com>

> ---
>  drivers/rtc/rtc-omap.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c
> index 21142e6574a9..f842c216f2dd 100644
> --- a/drivers/rtc/rtc-omap.c
> +++ b/drivers/rtc/rtc-omap.c
> @@ -431,8 +431,10 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
>  	rtc_write(0, OMAP_RTC_INTERRUPTS_REG);
>  
>  	/* enable RTC functional clock */
> -	if (id_entry->driver_data & OMAP_RTC_HAS_32KCLK_EN)
> -		rtc_writel(OMAP_RTC_OSC_32KCLK_EN, OMAP_RTC_OSC_REG);
> +	if (id_entry->driver_data & OMAP_RTC_HAS_32KCLK_EN) {
> +		reg = rtc_read(OMAP_RTC_OSC_REG);
> +		rtc_writel(reg | OMAP_RTC_OSC_32KCLK_EN, OMAP_RTC_OSC_REG);
> +	}
>  
>  	/* clear old status */
>  	reg = rtc_read(OMAP_RTC_STATUS_REG);
> -- 
> 2.0.4
> 

-- 
balbi

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 02/12] rtc: omap: fix missing wakealarm attribute
  2014-10-09 19:06 ` [PATCH 02/12] rtc: omap: fix missing wakealarm attribute Johan Hovold
@ 2014-10-10 17:55   ` Felipe Balbi
  0 siblings, 0 replies; 6+ messages in thread
From: Felipe Balbi @ 2014-10-10 17:55 UTC (permalink / raw)
  To: Johan Hovold
  Cc: Alessandro Zummo, Tony Lindgren, Benoît Cousson,
	Andrew Morton, Felipe Balbi, Lokesh Vutla, Guenter Roeck,
	Colin Foe-Parker, nsekhar, t-kristo, j-keerthy, linux-omap,
	linux-arm-kernel, devicetree, rtc-linux, linux-kernel, stable

[-- Attachment #1: Type: text/plain, Size: 1725 bytes --]

On Thu, Oct 09, 2014 at 09:06:24PM +0200, Johan Hovold wrote:
> The platform device must be registered as wakeup capable before
> registering the class device, or the wakealarm attribute will not be
> created.
> 
> Also make sure to unregister the wakeup source on probe errors.
> 
> Fixes: 1d2e2b65d098 ("rtc: omap: restore back (hard-code) wakeup support")
> Cc: stable <stable@vger.kernel.org>
> Signed-off-by: Johan Hovold <johan@kernel.org>
> ---

Reviewed-by: Felipe Balbi <balbi@ti.com>

>  drivers/rtc/rtc-omap.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c
> index f842c216f2dd..828cb9983cc2 100644
> --- a/drivers/rtc/rtc-omap.c
> +++ b/drivers/rtc/rtc-omap.c
> @@ -416,6 +416,8 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
>  		rtc_writel(KICK1_VALUE, OMAP_RTC_KICK1_REG);
>  	}
>  
> +	device_init_wakeup(&pdev->dev, true);
> +
>  	rtc = devm_rtc_device_register(&pdev->dev, pdev->name,
>  			&omap_rtc_ops, THIS_MODULE);
>  	if (IS_ERR(rtc)) {
> @@ -484,8 +486,6 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
>  	 *    is write-only, and always reads as zero...)
>  	 */
>  
> -	device_init_wakeup(&pdev->dev, true);
> -
>  	if (new_ctrl & (u8) OMAP_RTC_CTRL_SPLIT)
>  		pr_info("%s: split power mode\n", pdev->name);
>  
> @@ -495,6 +495,7 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
>  	return 0;
>  
>  fail0:
> +	device_init_wakeup(&pdev->dev, false);
>  	if (id_entry->driver_data & OMAP_RTC_HAS_KICKER)
>  		rtc_writel(0, OMAP_RTC_KICK0_REG);
>  	pm_runtime_put_sync(&pdev->dev);
> -- 
> 2.0.4
> 

-- 
balbi

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 01/20] rtc: omap: fix clock-source configuration
       [not found] ` <1413913086-12730-1-git-send-email-johan@kernel.org>
@ 2014-10-21 17:37   ` Johan Hovold
  2014-10-21 17:37   ` [PATCH v2 02/20] rtc: omap: fix missing wakealarm attribute Johan Hovold
  1 sibling, 0 replies; 6+ messages in thread
From: Johan Hovold @ 2014-10-21 17:37 UTC (permalink / raw)
  To: Alessandro Zummo, Tony Lindgren, Benoît Cousson,
	Felipe Balbi
  Cc: Andrew Morton, Lokesh Vutla, Guenter Roeck, nsekhar, t-kristo,
	j-keerthy, linux-omap, linux-arm-kernel, devicetree, rtc-linux,
	linux-kernel, Johan Hovold, stable

Make sure not to reset the clock-source configuration when enabling the
32kHz clock mux.

Until the clock source can be configured through device tree we must not
overwrite settings made by the bootloader (e.g. clock-source selection).

Fixes: cd914bba03d8 ("drivers/rtc/rtc-omap.c: add support for enabling
32khz clock")
Cc: stable <stable@vger.kernel.org>
Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/rtc/rtc-omap.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c
index 21142e6574a9..f842c216f2dd 100644
--- a/drivers/rtc/rtc-omap.c
+++ b/drivers/rtc/rtc-omap.c
@@ -431,8 +431,10 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
 	rtc_write(0, OMAP_RTC_INTERRUPTS_REG);
 
 	/* enable RTC functional clock */
-	if (id_entry->driver_data & OMAP_RTC_HAS_32KCLK_EN)
-		rtc_writel(OMAP_RTC_OSC_32KCLK_EN, OMAP_RTC_OSC_REG);
+	if (id_entry->driver_data & OMAP_RTC_HAS_32KCLK_EN) {
+		reg = rtc_read(OMAP_RTC_OSC_REG);
+		rtc_writel(reg | OMAP_RTC_OSC_32KCLK_EN, OMAP_RTC_OSC_REG);
+	}
 
 	/* clear old status */
 	reg = rtc_read(OMAP_RTC_STATUS_REG);
-- 
2.0.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 02/20] rtc: omap: fix missing wakealarm attribute
       [not found] ` <1413913086-12730-1-git-send-email-johan@kernel.org>
  2014-10-21 17:37   ` [PATCH v2 01/20] rtc: omap: fix clock-source configuration Johan Hovold
@ 2014-10-21 17:37   ` Johan Hovold
  1 sibling, 0 replies; 6+ messages in thread
From: Johan Hovold @ 2014-10-21 17:37 UTC (permalink / raw)
  To: Alessandro Zummo, Tony Lindgren, Benoît Cousson,
	Felipe Balbi
  Cc: Andrew Morton, Lokesh Vutla, Guenter Roeck, nsekhar, t-kristo,
	j-keerthy, linux-omap, linux-arm-kernel, devicetree, rtc-linux,
	linux-kernel, Johan Hovold, stable

The platform device must be registered as wakeup capable before
registering the class device, or the wakealarm attribute will not be
created.

Also make sure to unregister the wakeup source on probe errors.

Fixes: 1d2e2b65d098 ("rtc: omap: restore back (hard-code) wakeup support")
Cc: stable <stable@vger.kernel.org>
Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/rtc/rtc-omap.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c
index f842c216f2dd..828cb9983cc2 100644
--- a/drivers/rtc/rtc-omap.c
+++ b/drivers/rtc/rtc-omap.c
@@ -416,6 +416,8 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
 		rtc_writel(KICK1_VALUE, OMAP_RTC_KICK1_REG);
 	}
 
+	device_init_wakeup(&pdev->dev, true);
+
 	rtc = devm_rtc_device_register(&pdev->dev, pdev->name,
 			&omap_rtc_ops, THIS_MODULE);
 	if (IS_ERR(rtc)) {
@@ -484,8 +486,6 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
 	 *    is write-only, and always reads as zero...)
 	 */
 
-	device_init_wakeup(&pdev->dev, true);
-
 	if (new_ctrl & (u8) OMAP_RTC_CTRL_SPLIT)
 		pr_info("%s: split power mode\n", pdev->name);
 
@@ -495,6 +495,7 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
 	return 0;
 
 fail0:
+	device_init_wakeup(&pdev->dev, false);
 	if (id_entry->driver_data & OMAP_RTC_HAS_KICKER)
 		rtc_writel(0, OMAP_RTC_KICK0_REG);
 	pm_runtime_put_sync(&pdev->dev);
-- 
2.0.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-10-21 17:37 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1412881594-25678-1-git-send-email-johan@kernel.org>
2014-10-09 19:06 ` [PATCH 01/12] rtc: omap: fix clock-source configuration Johan Hovold
2014-10-10 17:55   ` Felipe Balbi
2014-10-09 19:06 ` [PATCH 02/12] rtc: omap: fix missing wakealarm attribute Johan Hovold
2014-10-10 17:55   ` Felipe Balbi
     [not found] ` <1413913086-12730-1-git-send-email-johan@kernel.org>
2014-10-21 17:37   ` [PATCH v2 01/20] rtc: omap: fix clock-source configuration Johan Hovold
2014-10-21 17:37   ` [PATCH v2 02/20] rtc: omap: fix missing wakealarm attribute Johan Hovold

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).