lkml.org 
[lkml]   [2018]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 02/25] clk: sunxi-ng: Add check for minimal rate to NKM PLLs
    Date
    Some NKM PLLs doesn't work well when their output clock rate is set below
    certain rate.

    So, add support for minimal rate for relevant PLLs.

    Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
    Acked-by: Stephen Boyd <sboyd@kernel.org>
    Tested-by: Jagan Teki <jagan@amarulasolutions.com>
    ---
    Changes for v3:
    - collect Stephen Ack
    - add tested credit
    Changes for v2:
    - none

    drivers/clk/sunxi-ng/ccu_nkm.c | 7 +++++++
    drivers/clk/sunxi-ng/ccu_nkm.h | 1 +
    2 files changed, 8 insertions(+)

    diff --git a/drivers/clk/sunxi-ng/ccu_nkm.c b/drivers/clk/sunxi-ng/ccu_nkm.c
    index 841840e35e61..d17539dc88dd 100644
    --- a/drivers/clk/sunxi-ng/ccu_nkm.c
    +++ b/drivers/clk/sunxi-ng/ccu_nkm.c
    @@ -125,6 +125,13 @@ static unsigned long ccu_nkm_round_rate(struct ccu_mux_internal *mux,
    if (nkm->common.features & CCU_FEATURE_FIXED_POSTDIV)
    rate *= nkm->fixed_post_div;

    + if (rate < nkm->min_rate) {
    + rate = nkm->min_rate;
    + if (nkm->common.features & CCU_FEATURE_FIXED_POSTDIV)
    + rate /= nkm->fixed_post_div;
    + return rate;
    + }
    +
    ccu_nkm_find_best(*parent_rate, rate, &_nkm);

    rate = *parent_rate * _nkm.n * _nkm.k / _nkm.m;
    diff --git a/drivers/clk/sunxi-ng/ccu_nkm.h b/drivers/clk/sunxi-ng/ccu_nkm.h
    index cc6efb70a102..ff5bd00f429f 100644
    --- a/drivers/clk/sunxi-ng/ccu_nkm.h
    +++ b/drivers/clk/sunxi-ng/ccu_nkm.h
    @@ -35,6 +35,7 @@ struct ccu_nkm {
    struct ccu_mux_internal mux;

    unsigned int fixed_post_div;
    + unsigned int min_rate;

    struct ccu_common common;
    };
    --
    2.18.0.321.gffc6fa0e3
    \
     
     \ /
      Last update: 2018-10-26 16:45    [W:4.663 / U:2.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site