• Leo Yan's avatar
    interconnect: qcom: icc-rpm: Support multiple buckets · dcbce7b0
    Leo Yan authored
    The current interconnect rpm driver uses a single aggregate bandwidth to
    calculate the clock rates for both active and sleep clocks; therefore,
    it has no chance to separate bandwidth requests for these two kinds of
    clocks.
    
    This patch studies the implementation from interconnect rpmh driver to
    support multiple buckets.  The rpmh driver provides three buckets for
    AMC, WAKE, and SLEEP; this driver only needs to use WAKE and SLEEP
    buckets, but we keep the same way with rpmh driver, this can allow us to
    reuse the DT binding and avoid to define duplicated data structures.
    
    This patch introduces two callbacks: qcom_icc_pre_bw_aggregate() is used
    to clean up bucket values before aggregate bandwidth requests, and
    qcom_icc_bw_aggregate() is to aggregate bandwidth for buckets.
    Signed-off-by: default avatarLeo Yan <leo.yan@linaro.org>
    Link: https://lore.kernel.org/r/20220712015929.2789881-5-leo.yan@linaro.orgSigned-off-by: default avatarGeorgi Djakov <djakov@kernel.org>
    dcbce7b0
icc-rpm.h 2.93 KB