• Archit Taneja's avatar
    clk: qcom: fix RCG M/N counter configuration · 5ec6388f
    Archit Taneja authored
    [ Upstream commit 0b21503d ]
    
    Currently, a RCG's M/N counter (used for fraction division) is
    set to either 'bypass' (counter disabled) or 'dual edge' (counter
    enabled) based on whether the corresponding rcg struct has a mnd
    field specified and a non-zero N.
    
    In the case where M and N are the same value, the M/N counter is
    still enabled by code even though no division takes place.
    Leaving the RCG in such a state can result in improper behavior.
    This was observed with the DSI pixel clock RCG when M and N were
    both set to 1.
    
    Add an additional check (M != N) to enable the M/N counter only
    when it's needed for fraction division.
    Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
    Fixes: bcd61c0f (clk: qcom: Add support for root clock
    generators (RCGs))
    Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
    5ec6388f
clk-rcg2.c 13.1 KB