• Stephen Boyd's avatar
    clk: qcom: dispcc: Update DP clk ops for phy design · 355a7d75
    Stephen Boyd authored
    The clk_rcg2_dp_determine_rate() function is used for the DP pixel clk.
    This function should return the rate that can be achieved by the pixel
    clk in 'struct clk_rate_request::rate' and match the logic similar to
    what is seen in clk_rcg2_dp_set_rate(). But that isn't the case. Instead
    the code merely bubbles the rate request up to the parent of the pixel
    clk and doesn't try to do a rational approximation of the rate that
    would be achieved by picking some m/n value for the RCG.
    
    Let's change this logic so that we can assume the parent clk frequency
    is fixed (it is because it's the VCO of the DP PLL that is configured
    based on the link rate) and so that we can calculate what the m/n value
    will be and adjust the req->rate appropriately.
    
    Cc: Jeykumar Sankaran <jsanka@codeaurora.org>
    Cc: Chandan Uddaraju <chandanu@codeaurora.org>
    Cc: Vara Reddy <varar@codeaurora.org>
    Cc: Tanmay Shah <tanmay@codeaurora.org>
    Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
    Cc: Manu Gautam <mgautam@codeaurora.org>
    Cc: Sandeep Maheswaram <sanm@codeaurora.org>
    Cc: Douglas Anderson <dianders@chromium.org>
    Cc: Sean Paul <seanpaul@chromium.org>
    Cc: Stephen Boyd <sboyd@kernel.org>
    Cc: Jonathan Marek <jonathan@marek.ca>
    Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Cc: Rob Clark <robdclark@chromium.org>
    Signed-off-by: default avatarStephen Boyd <swboyd@chromium.org>
    Link: https://lore.kernel.org/r/20200916231202.3637932-10-swboyd@chromium.orgSigned-off-by: default avatarStephen Boyd <sboyd@kernel.org>
    355a7d75
dispcc-sc7180.c 19.5 KB