mbox series

[v4,0/5] interconnect: qcom: icc-rpm: Support bucket

Message ID 20220705072336.742703-1-leo.yan@linaro.org
Headers show
Series interconnect: qcom: icc-rpm: Support bucket | expand

Message

Leo Yan July 5, 2022, 7:23 a.m. UTC
This patch set is to support bucket in icc-rpm driver, so it implements
the similar mechanism in the icc-rpmh driver.

We can use interconnect path tag to indicate the bandwidth voting is for
which buckets, and there have three kinds of buckets: AWC, WAKE and
SLEEP, finally the wake and sleep bucket values are used to set the
corresponding clock (active and sleep clocks).  So far, we keep the AWC
bucket but doesn't really use it.

Patches 01, 02, 03 enable interconnect path tag and update the DT
binding document; patches 04 and 05 support bucket and use bucket values
to set the bandwidth and clock rates.

Changes from v3:
- Removed $ref and redundant sentence in DT binding document for
  '#interconnect-cells' (Krzysztof Kozlowski).

Changes from v2:
- Fixed for DT checker error for command ''make DT_CHECKER_FLAGS=-m
  dt_binding_check' (Rob Herring).

Changes from v1:
- Added description for property "#interconnect-cells" (Rob Herring);
- Added Dimtry's reviewed tags for patches 02 and 03 (Dmitry Baryshkov);
- Rebased on the latest mainline kernel and resolved conflict.


Leo Yan (5):
  dt-bindings: interconnect: Update property for icc-rpm path tag
  interconnect: qcom: Move qcom_icc_xlate_extended() to a common file
  interconnect: qcom: icc-rpm: Change to use qcom_icc_xlate_extended()
  interconnect: qcom: icc-rpm: Support multiple buckets
  interconnect: qcom: icc-rpm: Set bandwidth and clock for bucket values

 .../bindings/interconnect/qcom,rpm.yaml       |   6 +-
 drivers/interconnect/qcom/Makefile            |   3 +
 drivers/interconnect/qcom/icc-common.c        |  34 +++++
 drivers/interconnect/qcom/icc-common.h        |  13 ++
 drivers/interconnect/qcom/icc-rpm.c           | 134 ++++++++++++++++--
 drivers/interconnect/qcom/icc-rpm.h           |   6 +
 drivers/interconnect/qcom/icc-rpmh.c          |  26 +---
 drivers/interconnect/qcom/icc-rpmh.h          |   1 -
 drivers/interconnect/qcom/sm8450.c            |   1 +
 9 files changed, 182 insertions(+), 42 deletions(-)
 create mode 100644 drivers/interconnect/qcom/icc-common.c
 create mode 100644 drivers/interconnect/qcom/icc-common.h

Comments

Krzysztof Kozlowski July 5, 2022, 9:49 a.m. UTC | #1
On 05/07/2022 09:23, Leo Yan wrote:
> To support path tag in icc-rpm driver, the "#interconnect-cells"
> property is updated as enumerate values: 1 or 2.  Setting to 1 means
> it is compatible with old DT binding that interconnect path only
> contains node id; if set to 2 for "#interconnect-cells" property, then
> the second specifier is used as a tag (e.g. vote for which buckets).
> 
> Signed-off-by: Leo Yan <leo.yan@linaro.org>
> ---


Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>


Best regards,
Krzysztof
Georgi Djakov July 5, 2022, 2:03 p.m. UTC | #2
On 5.07.22 10:23, Leo Yan wrote:
> This patch set is to support bucket in icc-rpm driver, so it implements
> the similar mechanism in the icc-rpmh driver.
> 
> We can use interconnect path tag to indicate the bandwidth voting is for
> which buckets, and there have three kinds of buckets: AWC, WAKE and
> SLEEP, finally the wake and sleep bucket values are used to set the
> corresponding clock (active and sleep clocks).  So far, we keep the AWC
> bucket but doesn't really use it.
> 
> Patches 01, 02, 03 enable interconnect path tag and update the DT
> binding document; patches 04 and 05 support bucket and use bucket values
> to set the bandwidth and clock rates.
> 
> Changes from v3:
> - Removed $ref and redundant sentence in DT binding document for
>    '#interconnect-cells' (Krzysztof Kozlowski).
> 
> Changes from v2:
> - Fixed for DT checker error for command ''make DT_CHECKER_FLAGS=-m
>    dt_binding_check' (Rob Herring).
> 
> Changes from v1:
> - Added description for property "#interconnect-cells" (Rob Herring);
> - Added Dimtry's reviewed tags for patches 02 and 03 (Dmitry Baryshkov);
> - Rebased on the latest mainline kernel and resolved conflict.
> 
> 
> Leo Yan (5):
>    dt-bindings: interconnect: Update property for icc-rpm path tag
>    interconnect: qcom: Move qcom_icc_xlate_extended() to a common file
>    interconnect: qcom: icc-rpm: Change to use qcom_icc_xlate_extended()
>    interconnect: qcom: icc-rpm: Support multiple buckets
>    interconnect: qcom: icc-rpm: Set bandwidth and clock for bucket values

Hi Leo,

Some patches do not apply clean on next. On which tree is this based? Do you have any additional 
patches?

Thanks,
Georgi
Leo Yan July 7, 2022, 2:52 a.m. UTC | #3
Hi Georgi,

On Tue, Jul 05, 2022 at 05:03:21PM +0300, Georgi Djakov wrote:

[...]

> Hi Leo,
> 
> Some patches do not apply clean on next. On which tree is this based? Do you
> have any additional patches?

When rebased I included an out of tree patch, let me check a bit and
resend the new patch set.  Sorry for inconvenience.

Thanks,
Leo
Leo Yan July 7, 2022, 9:56 a.m. UTC | #4
Hi Georgi,

On Thu, Jul 07, 2022 at 10:52:33AM +0800, Leo Yan wrote:

[...]

> > Some patches do not apply clean on next. On which tree is this based? Do you
> > have any additional patches?
> 
> When rebased I included an out of tree patch, let me check a bit and
> resend the new patch set.  Sorry for inconvenience.

Bryan has sent out the patch
"interconnect: icc-rpm: Set destination bandwidth as well as source
bandwidth" [1].  My patch series was based on Bryan's patch, you could
apply them cleanly after applying Bryan's patch.

Please let us know what's your preference for picking patches order, if
you prefer to apply my patch series before Bryan's fixing patch, I will
rebase the patch set on the mainline kernel with dropping Bryan's patch
(which means Bryan needs to rebase his patch).

Thanks,
Leo

[1] https://lore.kernel.org/linux-pm/20220707093823.1691870-1-bryan.odonoghue@linaro.org/T/#r304f7b103c806e1570d555a0f5aaf83ae3990ac0