lkml.org 
[lkml]   [2019]   [Mar]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.20 06/52] clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck reparenting
    Date
    From: Tony Lindgren <tony@atomide.com>

    [ Upstream commit 983a5a43ec254cd5ddf3254db80ca96e8f8bb2a4 ]

    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>
    Tested-By: Andreas Kemnade <andreas@kemnade.info>
    Tested-By: H. Nikolaus Schaller <hns@goldelico.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    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
    index 4cce6b224b87..3ecf84706640 100644
    --- 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.19.1
    \
     
     \ /
      Last update: 2019-03-11 20:56    [W:4.494 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site