[v2,00/10] Fix up icc clock rate calculation on some platforms

Message ID 20230726-topic-icc_coeff-v2-0-8c91c6c76076@linaro.org
Headers
Series Fix up icc clock rate calculation on some platforms |

Message

Konrad Dybcio July 31, 2023, 10:52 a.m. UTC
  Certain platforms require that some buses (or individual nodes) make
some additional changes to the clock rate formula, throwing in some
magic, Qualcomm-defined coefficients, to account for "inefficiencies".

Add the framework for it and utilize it on a couple SoCs.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
Changes in v2:
- Use the (arguably less favourable but necessary for precission) 100/x
  instead of x/100 for ib coefficient, update values in consequent
  patches to reflect that
- Rename "_percent" to "_coeff" because of /\
- Add the necessary code to support per-node clocks
- Add the necessary code to support per-node coefficients
- Hook up the CPUSS<->GNoC clock on QCM2290
- Update EBI node on QCM2290
- Link to v1: https://lore.kernel.org/r/20230726-topic-icc_coeff-v1-0-31616960818c@linaro.org

---
Konrad Dybcio (10):
      interconnect: qcom: icc-rpm: Add AB/IB calculations coefficients
      interconnect: qcom: icc-rpm: Separate out clock rate calulcations
      interconnect: qcom: icc-rpm: Let nodes drive their own bus clock
      interconnect: qcom: icc-rpm: Check for node-specific rate coefficients
      interconnect: qcom: qcm2290: Hook up MAS_APPS_PROC's bus clock
      interconnect: qcom: qcm2290: Set AB coefficients
      interconnect: qcom: qcm2290: Update EBI channel configuration
      interconnect: qcom: sdm660: Set AB/IB coefficients
      interconnect: qcom: msm8996: Set AB/IB coefficients
      clk: qcom: smd-rpm: Move CPUSS_GNoC clock to interconnect

 drivers/clk/qcom/clk-smd-rpm.c             | 16 ++++--
 drivers/interconnect/qcom/icc-rpm-clocks.c |  6 ++
 drivers/interconnect/qcom/icc-rpm.c        | 92 ++++++++++++++++++++++++------
 drivers/interconnect/qcom/icc-rpm.h        | 15 +++++
 drivers/interconnect/qcom/msm8996.c        |  8 ++-
 drivers/interconnect/qcom/qcm2290.c        |  9 ++-
 drivers/interconnect/qcom/sdm660.c         |  4 ++
 7 files changed, 124 insertions(+), 26 deletions(-)
---
base-commit: ec89391563792edd11d138a853901bce76d11f44
change-id: 20230726-topic-icc_coeff-b053d5409b9f

Best regards,
  

Comments

Georgi Djakov Aug. 4, 2023, 4:31 p.m. UTC | #1
Hi Konrad,

On 31.07.23 13:52, Konrad Dybcio wrote:
> Certain platforms require that some buses (or individual nodes) make
> some additional changes to the clock rate formula, throwing in some
> magic, Qualcomm-defined coefficients, to account for "inefficiencies".

Maybe some links to the downstream code would help to better check and
understand this. Adding also Odelu in case he has any comments on the
patches.

Thanks,
Georgi

> Add the framework for it and utilize it on a couple SoCs.
> 
> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
> ---
> Changes in v2:
> - Use the (arguably less favourable but necessary for precission) 100/x
>    instead of x/100 for ib coefficient, update values in consequent
>    patches to reflect that
> - Rename "_percent" to "_coeff" because of /\
> - Add the necessary code to support per-node clocks
> - Add the necessary code to support per-node coefficients
> - Hook up the CPUSS<->GNoC clock on QCM2290
> - Update EBI node on QCM2290
> - Link to v1: https://lore.kernel.org/r/20230726-topic-icc_coeff-v1-0-31616960818c@linaro.org
> 
> ---
> Konrad Dybcio (10):
>        interconnect: qcom: icc-rpm: Add AB/IB calculations coefficients
>        interconnect: qcom: icc-rpm: Separate out clock rate calulcations
>        interconnect: qcom: icc-rpm: Let nodes drive their own bus clock
>        interconnect: qcom: icc-rpm: Check for node-specific rate coefficients
>        interconnect: qcom: qcm2290: Hook up MAS_APPS_PROC's bus clock
>        interconnect: qcom: qcm2290: Set AB coefficients
>        interconnect: qcom: qcm2290: Update EBI channel configuration
>        interconnect: qcom: sdm660: Set AB/IB coefficients
>        interconnect: qcom: msm8996: Set AB/IB coefficients
>        clk: qcom: smd-rpm: Move CPUSS_GNoC clock to interconnect
> 
>   drivers/clk/qcom/clk-smd-rpm.c             | 16 ++++--
>   drivers/interconnect/qcom/icc-rpm-clocks.c |  6 ++
>   drivers/interconnect/qcom/icc-rpm.c        | 92 ++++++++++++++++++++++++------
>   drivers/interconnect/qcom/icc-rpm.h        | 15 +++++
>   drivers/interconnect/qcom/msm8996.c        |  8 ++-
>   drivers/interconnect/qcom/qcm2290.c        |  9 ++-
>   drivers/interconnect/qcom/sdm660.c         |  4 ++
>   7 files changed, 124 insertions(+), 26 deletions(-)
> ---
> base-commit: ec89391563792edd11d138a853901bce76d11f44
> change-id: 20230726-topic-icc_coeff-b053d5409b9f
> 
> Best regards,