linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] pwm-omap-dmtimer regression fixes
@ 2019-01-22 17:57 Tony Lindgren
  2019-01-22 17:57 ` [PATCH 1/3] clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck reparenting Tony Lindgren
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Tony Lindgren @ 2019-01-22 17:57 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-omap, linux-arm-kernel, Andy Shevchenko,
	Bartosz Golaszewski, Daniel Lezcano, H. Nikolaus Schaller,
	Keerthy, Ladislav Michl, Pavel Machek, Sebastian Reichel,
	Tero Kristo, Thierry Reding, Thomas Gleixner

Hi all,

The Pyra handheld PWM LCD regression in v5.0-rc1 reported by Nikolaus
goes back to v4.19 for pwm-omap-dmtimer. Here are patches against v4.19
to fix the issue that also makes pwm-vibra working again for droid 4.

Regards,

Tony


Tony Lindgren (3):
  clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck reparenting
  bus: ti-sysc: Fix timer handling with drop pm_runtime_irq_safe()
  ARM: dts: Configure clock parent for pwm vibra

 arch/arm/boot/dts/omap4-droid4-xt894.dts | 11 +++++++++++
 drivers/bus/ti-sysc.c                    |  4 ++--
 drivers/clocksource/timer-ti-dm.c        |  5 ++++-
 3 files changed, 17 insertions(+), 3 deletions(-)

-- 
2.20.1

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

* [PATCH 1/3] clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck reparenting
  2019-01-22 17:57 [PATCH 0/3] pwm-omap-dmtimer regression fixes Tony Lindgren
@ 2019-01-22 17:57 ` Tony Lindgren
  2019-01-26 18:40   ` Andreas Kemnade
  2019-02-12  9:08   ` Daniel Lezcano
  2019-01-22 17:57 ` [PATCH 2/3] bus: ti-sysc: Fix timer handling with drop pm_runtime_irq_safe() Tony Lindgren
  2019-01-22 17:57 ` [PATCH 3/3] ARM: dts: Configure clock parent for pwm vibra Tony Lindgren
  2 siblings, 2 replies; 10+ messages in thread
From: Tony Lindgren @ 2019-01-22 17:57 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-omap, linux-arm-kernel, Bartosz Golaszewski,
	Daniel Lezcano, H . Nikolaus Schaller, Keerthy, Ladislav Michl,
	Pavel Machek, Sebastian Reichel, Tero Kristo, Thierry Reding,
	Thomas Gleixner, Andy Shevchenko

Commit 84badc5ec5fc ("ARM: dts: omap4: Move l4 child devices to probe
them with ti-sysc") moved some omap4 timers to probe with ti-sysc
interconnect target module. Turns out this broke pwm-omap-dmtimer
where we now try to reparent the clock to itself with the following:

omap_dm_timer_of_set_source: failed to set parent

With ti-sysc, we can now configure the clock sources in the dts
with assigned-clocks and assigned-clock-parents. So we should be able
to remove omap_dm_timer_of_set_source with clean-up patches later on.
But for now, let's just fix it first by checking if parent and fck
are the same and bail out of so.

Fixes: 84badc5ec5fc ("ARM: dts: omap4: Move l4 child devices to probe
them with ti-sysc")
Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: H. Nikolaus Schaller <hns@goldelico.com>
Cc: Keerthy <j-keerthy@ti.com>
Cc: Ladislav Michl <ladis@linux-mips.org>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Sebastian Reichel <sre@kernel.org>
Cc: Tero Kristo <t-kristo@ti.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Reported-by: H. Nikolaus Schaller <hns@goldelico.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 drivers/clocksource/timer-ti-dm.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/clocksource/timer-ti-dm.c b/drivers/clocksource/timer-ti-dm.c
--- a/drivers/clocksource/timer-ti-dm.c
+++ b/drivers/clocksource/timer-ti-dm.c
@@ -154,6 +154,10 @@ static int omap_dm_timer_of_set_source(struct omap_dm_timer *timer)
 	if (IS_ERR(parent))
 		return -ENODEV;
 
+	/* Bail out if both clocks point to fck */
+	if (clk_is_match(parent, timer->fclk))
+		return 0;
+
 	ret = clk_set_parent(timer->fclk, parent);
 	if (ret < 0)
 		pr_err("%s: failed to set parent\n", __func__);
-- 
2.20.1

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

* [PATCH 2/3] bus: ti-sysc: Fix timer handling with drop pm_runtime_irq_safe()
  2019-01-22 17:57 [PATCH 0/3] pwm-omap-dmtimer regression fixes Tony Lindgren
  2019-01-22 17:57 ` [PATCH 1/3] clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck reparenting Tony Lindgren
@ 2019-01-22 17:57 ` Tony Lindgren
  2019-01-26 18:41   ` Andreas Kemnade
  2019-01-22 17:57 ` [PATCH 3/3] ARM: dts: Configure clock parent for pwm vibra Tony Lindgren
  2 siblings, 1 reply; 10+ messages in thread
From: Tony Lindgren @ 2019-01-22 17:57 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-omap, linux-arm-kernel, Andy Shevchenko,
	Bartosz Golaszewski, Daniel Lezcano, H . Nikolaus Schaller,
	Keerthy, Ladislav Michl, Pavel Machek, Sebastian Reichel,
	Tero Kristo, Thierry Reding, Thomas Gleixner

Commit 84badc5ec5fc ("ARM: dts: omap4: Move l4 child devices to probe
them with ti-sysc") started producing a warning for pwm-omap-dmtimer:

WARNING: CPU: 0 PID: 77 at drivers/bus/omap_l3_noc.c:147
l3_interrupt_handler+0x2f8/0x388
44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4PER2 (Idle):
Data Access in Supervisor mode during Functional access
...
__pm_runtime_idle
omap_dm_timer_disable
pwm_omap_dmtimer_start
pwm_omap_dmtimer_enable
pwm_apply_state
pwm_vibrator_start
pwm_vibrator_play_work

This is because the timer that pwm-omap-dmtimer is using is now being
probed with ti-sysc interconnect target module instead of omap_device
and the ti-sysc quirk for SYSC_QUIRK_LEGACY_IDLE is not fully
compatible with what omap_device has been doing.

We could fix this by reverting the timer changes and have the timer
probe again with omap_device. Or we could add more quirk handling to
ti-sysc driver. But as these options don't work nicely as longer term
solutions, let's just make timers probe with ti-sysc without any
quirks.

To do this, all we need to do is remove quirks for timers for ti-sysc,
and drop the bogus pm_runtime_irq_safe() flag for timer-ti-dm.

We should not use pm_runtime_irq_safe() anyways for drivers as it will
take a permanent use count on the parent device blocking the parent
devices from idling and has been forcing ti-sysc driver to use a
quirk flag.

Note that we will move the timer data to DEBUG section later on in
clean-up patches.

Fixes: 84badc5ec5fc ("ARM: dts: omap4: Move l4 child devices to probe
them with ti-sysc")
Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: H. Nikolaus Schaller <hns@goldelico.com>
Cc: Keerthy <j-keerthy@ti.com>
Cc: Ladislav Michl <ladis@linux-mips.org>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Sebastian Reichel <sre@kernel.org>
Cc: Tero Kristo <t-kristo@ti.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Reported-by: H. Nikolaus Schaller <hns@goldelico.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 drivers/bus/ti-sysc.c             | 4 ++--
 drivers/clocksource/timer-ti-dm.c | 1 -
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
--- a/drivers/bus/ti-sysc.c
+++ b/drivers/bus/ti-sysc.c
@@ -879,10 +879,10 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
 	SYSC_QUIRK("smartreflex", 0, -1, 0x38, -1, 0x00000000, 0xffffffff,
 		   SYSC_QUIRK_LEGACY_IDLE),
 	SYSC_QUIRK("timer", 0, 0, 0x10, 0x14, 0x00000015, 0xffffffff,
-		   SYSC_QUIRK_LEGACY_IDLE),
+		   0),
 	/* Some timers on omap4 and later */
 	SYSC_QUIRK("timer", 0, 0, 0x10, -1, 0x4fff1301, 0xffffffff,
-		   SYSC_QUIRK_LEGACY_IDLE),
+		   0),
 	SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x00000052, 0xffffffff,
 		   SYSC_QUIRK_LEGACY_IDLE),
 	/* Uarts on omap4 and later */
diff --git a/drivers/clocksource/timer-ti-dm.c b/drivers/clocksource/timer-ti-dm.c
--- a/drivers/clocksource/timer-ti-dm.c
+++ b/drivers/clocksource/timer-ti-dm.c
@@ -868,7 +868,6 @@ static int omap_dm_timer_probe(struct platform_device *pdev)
 	timer->pdev = pdev;
 
 	pm_runtime_enable(dev);
-	pm_runtime_irq_safe(dev);
 
 	if (!timer->reserved) {
 		ret = pm_runtime_get_sync(dev);
-- 
2.20.1

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

* [PATCH 3/3] ARM: dts: Configure clock parent for pwm vibra
  2019-01-22 17:57 [PATCH 0/3] pwm-omap-dmtimer regression fixes Tony Lindgren
  2019-01-22 17:57 ` [PATCH 1/3] clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck reparenting Tony Lindgren
  2019-01-22 17:57 ` [PATCH 2/3] bus: ti-sysc: Fix timer handling with drop pm_runtime_irq_safe() Tony Lindgren
@ 2019-01-22 17:57 ` Tony Lindgren
  2 siblings, 0 replies; 10+ messages in thread
From: Tony Lindgren @ 2019-01-22 17:57 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-omap, linux-arm-kernel, Bartosz Golaszewski,
	Daniel Lezcano, H . Nikolaus Schaller, Keerthy, Ladislav Michl,
	Pavel Machek, Sebastian Reichel, Tero Kristo, Thierry Reding,
	Thomas Gleixner, Andy Shevchenko

Commit 84badc5ec5fc ("ARM: dts: omap4: Move l4 child devices to probe
them with ti-sysc") moved some omap4 timers to probe with ti-sysc
interconnect target module. Turns out this broke pwm-omap-dmtimer
for reparenting of the timer clock.

With ti-sysc, we can now configure the clock sources in the dts with
assigned-clocks and assigned-clock-parents.

Fixes: 84badc5ec5fc ("ARM: dts: omap4: Move l4 child devices to probe
them with ti-sysc")
Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: H. Nikolaus Schaller <hns@goldelico.com>
Cc: Keerthy <j-keerthy@ti.com>
Cc: Ladislav Michl <ladis@linux-mips.org>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Sebastian Reichel <sre@kernel.org>
Cc: Tero Kristo <t-kristo@ti.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Reported-by: H. Nikolaus Schaller <hns@goldelico.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/boot/dts/omap4-droid4-xt894.dts | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/arm/boot/dts/omap4-droid4-xt894.dts b/arch/arm/boot/dts/omap4-droid4-xt894.dts
--- a/arch/arm/boot/dts/omap4-droid4-xt894.dts
+++ b/arch/arm/boot/dts/omap4-droid4-xt894.dts
@@ -644,6 +644,17 @@
 	};
 };
 
+/* Configure pwm clock source for timers 8 & 9 */
+&timer8 {
+	assigned-clocks = <&abe_clkctrl OMAP4_TIMER8_CLKCTRL 24>;
+	assigned-clock-parents = <&sys_clkin_ck>;
+};
+
+&timer9 {
+	assigned-clocks = <&l4_per_clkctrl OMAP4_TIMER9_CLKCTRL 24>;
+	assigned-clock-parents = <&sys_clkin_ck>;
+};
+
 /*
  * As uart1 is wired to mdm6600 with rts and cts, we can use the cts pin for
  * uart1 wakeirq.
-- 
2.20.1

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

* Re: [PATCH 1/3] clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck reparenting
  2019-01-22 17:57 ` [PATCH 1/3] clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck reparenting Tony Lindgren
@ 2019-01-26 18:40   ` Andreas Kemnade
  2019-01-26 19:30     ` H. Nikolaus Schaller
  2019-02-12  9:08   ` Daniel Lezcano
  1 sibling, 1 reply; 10+ messages in thread
From: Andreas Kemnade @ 2019-01-26 18:40 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-kernel, linux-omap, linux-arm-kernel, Bartosz Golaszewski,
	Daniel Lezcano, H . Nikolaus Schaller, Keerthy, Ladislav Michl,
	Pavel Machek, Sebastian Reichel, Tero Kristo, Thierry Reding,
	Thomas Gleixner, Andy Shevchenko

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

On Tue, 22 Jan 2019 09:57:15 -0800
Tony Lindgren <tony@atomide.com> wrote:

> Commit 84badc5ec5fc ("ARM: dts: omap4: Move l4 child devices to probe
> them with ti-sysc") moved some omap4 timers to probe with ti-sysc
> interconnect target module. Turns out this broke pwm-omap-dmtimer
> where we now try to reparent the clock to itself with the following:
> 
> omap_dm_timer_of_set_source: failed to set parent
> 
> With ti-sysc, we can now configure the clock sources in the dts
> with assigned-clocks and assigned-clock-parents. So we should be able
> to remove omap_dm_timer_of_set_source with clean-up patches later on.
> But for now, let's just fix it first by checking if parent and fck
> are the same and bail out of so.
> 
together with 2/3 it fixes things on pyra

Tested-By: Andreas Kemnade <andreas@kemnade.info>

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [PATCH 2/3] bus: ti-sysc: Fix timer handling with drop pm_runtime_irq_safe()
  2019-01-22 17:57 ` [PATCH 2/3] bus: ti-sysc: Fix timer handling with drop pm_runtime_irq_safe() Tony Lindgren
@ 2019-01-26 18:41   ` Andreas Kemnade
  2019-01-26 19:31     ` H. Nikolaus Schaller
  0 siblings, 1 reply; 10+ messages in thread
From: Andreas Kemnade @ 2019-01-26 18:41 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-kernel, linux-omap, linux-arm-kernel, Andy Shevchenko,
	Bartosz Golaszewski, Daniel Lezcano, H . Nikolaus Schaller,
	Keerthy, Ladislav Michl, Pavel Machek, Sebastian Reichel,
	Tero Kristo, Thierry Reding, Thomas Gleixner

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

On Tue, 22 Jan 2019 09:57:16 -0800
Tony Lindgren <tony@atomide.com> wrote:

> Commit 84badc5ec5fc ("ARM: dts: omap4: Move l4 child devices to probe
> them with ti-sysc") started producing a warning for pwm-omap-dmtimer:
> 
> WARNING: CPU: 0 PID: 77 at drivers/bus/omap_l3_noc.c:147
> l3_interrupt_handler+0x2f8/0x388
> 44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4PER2 (Idle):
> Data Access in Supervisor mode during Functional access
> ...
> __pm_runtime_idle
> omap_dm_timer_disable
> pwm_omap_dmtimer_start
> pwm_omap_dmtimer_enable
> pwm_apply_state
> pwm_vibrator_start
> pwm_vibrator_play_work
> 
> This is because the timer that pwm-omap-dmtimer is using is now being
> probed with ti-sysc interconnect target module instead of omap_device
> and the ti-sysc quirk for SYSC_QUIRK_LEGACY_IDLE is not fully
> compatible with what omap_device has been doing.
> 
> We could fix this by reverting the timer changes and have the timer
> probe again with omap_device. Or we could add more quirk handling to
> ti-sysc driver. But as these options don't work nicely as longer term
> solutions, let's just make timers probe with ti-sysc without any
> quirks.
> 
> To do this, all we need to do is remove quirks for timers for ti-sysc,
> and drop the bogus pm_runtime_irq_safe() flag for timer-ti-dm.
> 
> We should not use pm_runtime_irq_safe() anyways for drivers as it will
> take a permanent use count on the parent device blocking the parent
> devices from idling and has been forcing ti-sysc driver to use a
> quirk flag.
> 
> Note that we will move the timer data to DEBUG section later on in
> clean-up patches.
> 
together with 1/3 it fixes things on pyra.

Tested-By: Andreas Kemnade <andreas@kemnade.info>

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [PATCH 1/3] clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck reparenting
  2019-01-26 18:40   ` Andreas Kemnade
@ 2019-01-26 19:30     ` H. Nikolaus Schaller
  0 siblings, 0 replies; 10+ messages in thread
From: H. Nikolaus Schaller @ 2019-01-26 19:30 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: LKML, linux-omap, linux-arm-kernel, Bartosz Golaszewski,
	Daniel Lezcano, Keerthy, Ladislav Michl, Pavel Machek,
	Sebastian Reichel, Tero Kristo, Thierry Reding, Thomas Gleixner,
	Andy Shevchenko, Andreas Kemnade


> Am 26.01.2019 um 19:40 schrieb Andreas Kemnade <andreas@kemnade.info>:
> 
> On Tue, 22 Jan 2019 09:57:15 -0800
> Tony Lindgren <tony@atomide.com> wrote:
> 
>> Commit 84badc5ec5fc ("ARM: dts: omap4: Move l4 child devices to probe
>> them with ti-sysc") moved some omap4 timers to probe with ti-sysc
>> interconnect target module. Turns out this broke pwm-omap-dmtimer
>> where we now try to reparent the clock to itself with the following:
>> 
>> omap_dm_timer_of_set_source: failed to set parent
>> 
>> With ti-sysc, we can now configure the clock sources in the dts
>> with assigned-clocks and assigned-clock-parents. So we should be able
>> to remove omap_dm_timer_of_set_source with clean-up patches later on.
>> But for now, let's just fix it first by checking if parent and fck
>> are the same and bail out of so.
>> 
> together with 2/3 it fixes things on pyra
> 
> Tested-By: Andreas Kemnade <andreas@kemnade.info>

Tested-By: H. Nikolaus Schaller <hns@goldelico.com>

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

* Re: [PATCH 2/3] bus: ti-sysc: Fix timer handling with drop pm_runtime_irq_safe()
  2019-01-26 18:41   ` Andreas Kemnade
@ 2019-01-26 19:31     ` H. Nikolaus Schaller
  0 siblings, 0 replies; 10+ messages in thread
From: H. Nikolaus Schaller @ 2019-01-26 19:31 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: LKML, linux-omap, linux-arm-kernel, Andy Shevchenko,
	Bartosz Golaszewski, Daniel Lezcano, Keerthy, Ladislav Michl,
	Pavel Machek, Sebastian Reichel, Tero Kristo, Thierry Reding,
	Thomas Gleixner, Andreas Kemnade


> Am 26.01.2019 um 19:41 schrieb Andreas Kemnade <andreas@kemnade.info>:
> 
> On Tue, 22 Jan 2019 09:57:16 -0800
> Tony Lindgren <tony@atomide.com> wrote:
> 
>> Commit 84badc5ec5fc ("ARM: dts: omap4: Move l4 child devices to probe
>> them with ti-sysc") started producing a warning for pwm-omap-dmtimer:
>> 
>> WARNING: CPU: 0 PID: 77 at drivers/bus/omap_l3_noc.c:147
>> l3_interrupt_handler+0x2f8/0x388
>> 44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4PER2 (Idle):
>> Data Access in Supervisor mode during Functional access
>> ...
>> __pm_runtime_idle
>> omap_dm_timer_disable
>> pwm_omap_dmtimer_start
>> pwm_omap_dmtimer_enable
>> pwm_apply_state
>> pwm_vibrator_start
>> pwm_vibrator_play_work
>> 
>> This is because the timer that pwm-omap-dmtimer is using is now being
>> probed with ti-sysc interconnect target module instead of omap_device
>> and the ti-sysc quirk for SYSC_QUIRK_LEGACY_IDLE is not fully
>> compatible with what omap_device has been doing.
>> 
>> We could fix this by reverting the timer changes and have the timer
>> probe again with omap_device. Or we could add more quirk handling to
>> ti-sysc driver. But as these options don't work nicely as longer term
>> solutions, let's just make timers probe with ti-sysc without any
>> quirks.
>> 
>> To do this, all we need to do is remove quirks for timers for ti-sysc,
>> and drop the bogus pm_runtime_irq_safe() flag for timer-ti-dm.
>> 
>> We should not use pm_runtime_irq_safe() anyways for drivers as it will
>> take a permanent use count on the parent device blocking the parent
>> devices from idling and has been forcing ti-sysc driver to use a
>> quirk flag.
>> 
>> Note that we will move the timer data to DEBUG section later on in
>> clean-up patches.
>> 
> together with 1/3 it fixes things on pyra.
> 
> Tested-By: Andreas Kemnade <andreas@kemnade.info>

H. Nikolaus Schaller <hns@goldelico.com>

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

* Re: [PATCH 1/3] clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck reparenting
  2019-01-22 17:57 ` [PATCH 1/3] clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck reparenting Tony Lindgren
  2019-01-26 18:40   ` Andreas Kemnade
@ 2019-02-12  9:08   ` Daniel Lezcano
  2019-02-12 15:29     ` Tony Lindgren
  1 sibling, 1 reply; 10+ messages in thread
From: Daniel Lezcano @ 2019-02-12  9:08 UTC (permalink / raw)
  To: Tony Lindgren, linux-kernel
  Cc: linux-omap, linux-arm-kernel, Bartosz Golaszewski,
	H . Nikolaus Schaller, Keerthy, Ladislav Michl, Pavel Machek,
	Sebastian Reichel, Tero Kristo, Thierry Reding, Thomas Gleixner,
	Andy Shevchenko

On 22/01/2019 18:57, Tony Lindgren wrote:
> Commit 84badc5ec5fc ("ARM: dts: omap4: Move l4 child devices to probe
> them with ti-sysc") moved some omap4 timers to probe with ti-sysc
> interconnect target module. Turns out this broke pwm-omap-dmtimer
> where we now try to reparent the clock to itself with the following:
> 
> omap_dm_timer_of_set_source: failed to set parent
> 
> With ti-sysc, we can now configure the clock sources in the dts
> with assigned-clocks and assigned-clock-parents. So we should be able
> to remove omap_dm_timer_of_set_source with clean-up patches later on.
> But for now, let's just fix it first by checking if parent and fck
> are the same and bail out of so.
> 
> Fixes: 84badc5ec5fc ("ARM: dts: omap4: Move l4 child devices to probe
> them with ti-sysc")
> Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
> Cc: H. Nikolaus Schaller <hns@goldelico.com>
> Cc: Keerthy <j-keerthy@ti.com>
> Cc: Ladislav Michl <ladis@linux-mips.org>
> Cc: Pavel Machek <pavel@ucw.cz>
> Cc: Sebastian Reichel <sre@kernel.org>
> Cc: Tero Kristo <t-kristo@ti.com>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Reported-by: H. Nikolaus Schaller <hns@goldelico.com>
> Signed-off-by: Tony Lindgren <tony@atomide.com>
> ---

Do you want me to take it through my tree (1 et 3)?

>  drivers/clocksource/timer-ti-dm.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/clocksource/timer-ti-dm.c b/drivers/clocksource/timer-ti-dm.c
> --- a/drivers/clocksource/timer-ti-dm.c
> +++ b/drivers/clocksource/timer-ti-dm.c
> @@ -154,6 +154,10 @@ static int omap_dm_timer_of_set_source(struct omap_dm_timer *timer)
>  	if (IS_ERR(parent))
>  		return -ENODEV;
>  
> +	/* Bail out if both clocks point to fck */
> +	if (clk_is_match(parent, timer->fclk))
> +		return 0;
> +
>  	ret = clk_set_parent(timer->fclk, parent);
>  	if (ret < 0)
>  		pr_err("%s: failed to set parent\n", __func__);
> 


-- 
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog


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

* Re: [PATCH 1/3] clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck reparenting
  2019-02-12  9:08   ` Daniel Lezcano
@ 2019-02-12 15:29     ` Tony Lindgren
  0 siblings, 0 replies; 10+ messages in thread
From: Tony Lindgren @ 2019-02-12 15:29 UTC (permalink / raw)
  To: Daniel Lezcano
  Cc: linux-kernel, linux-omap, linux-arm-kernel, Bartosz Golaszewski,
	H . Nikolaus Schaller, Keerthy, Ladislav Michl, Pavel Machek,
	Sebastian Reichel, Tero Kristo, Thierry Reding, Thomas Gleixner,
	Andy Shevchenko

Hi,

* Daniel Lezcano <daniel.lezcano@linaro.org> [190212 09:08]:
> 
> Do you want me to take it through my tree (1 et 3)?

No need to thanks, I already sent a pull request on them
as "[GIT PULL] omap soc regression fixes for v5.0-rc cycle"
with you in Cc.

Regards,

Tony

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

end of thread, other threads:[~2019-02-12 15:29 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-22 17:57 [PATCH 0/3] pwm-omap-dmtimer regression fixes Tony Lindgren
2019-01-22 17:57 ` [PATCH 1/3] clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck reparenting Tony Lindgren
2019-01-26 18:40   ` Andreas Kemnade
2019-01-26 19:30     ` H. Nikolaus Schaller
2019-02-12  9:08   ` Daniel Lezcano
2019-02-12 15:29     ` Tony Lindgren
2019-01-22 17:57 ` [PATCH 2/3] bus: ti-sysc: Fix timer handling with drop pm_runtime_irq_safe() Tony Lindgren
2019-01-26 18:41   ` Andreas Kemnade
2019-01-26 19:31     ` H. Nikolaus Schaller
2019-01-22 17:57 ` [PATCH 3/3] ARM: dts: Configure clock parent for pwm vibra Tony Lindgren

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).