lkml.org 
[lkml]   [2017]   [Jan]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 020/116] clk: bcm2835: Avoid overwriting the div info when disabling a pll_div clk
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Boris Brezillon <boris.brezillon@free-electrons.com>

    commit 68af4fa8f39b542a6cde7ac19518d88e9b3099dc upstream.

    bcm2835_pll_divider_off() is resetting the divider field in the A2W reg
    to zero when disabling the clock.

    Make sure we preserve this value by reading the previous a2w_reg value
    first and ORing the result with A2W_PLL_CHANNEL_DISABLE.

    Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    Fixes: 41691b8862e2 ("clk: bcm2835: Add support for programming the audio domain clocks")
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/clk/bcm/clk-bcm2835.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    --- a/drivers/clk/bcm/clk-bcm2835.c
    +++ b/drivers/clk/bcm/clk-bcm2835.c
    @@ -751,7 +751,9 @@ static void bcm2835_pll_divider_off(stru
    cprman_write(cprman, data->cm_reg,
    (cprman_read(cprman, data->cm_reg) &
    ~data->load_mask) | data->hold_mask);
    - cprman_write(cprman, data->a2w_reg, A2W_PLL_CHANNEL_DISABLE);
    + cprman_write(cprman, data->a2w_reg,
    + cprman_read(cprman, data->a2w_reg) |
    + A2W_PLL_CHANNEL_DISABLE);
    spin_unlock(&cprman->regs_lock);
    }


    \
     
     \ /
      Last update: 2017-01-06 22:57    [W:4.102 / U:0.280 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site