diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-05-22 19:25:27 +0300 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-05-22 19:25:27 +0300 |
| commit | 8b819afa494034ba413fecd5745cdf91e2b2b335 (patch) | |
| tree | 70df2de08b54de4b8a3e6ea2400a16d15d7874ec /include | |
| parent | bdc319f1c9bf9d8c41467ab7e2ecb1a73f86a6fd (diff) | |
| parent | 5fed7fe33c2cd7104fc87b7bc699a7be892befa2 (diff) | |
| download | linux-8b819afa494034ba413fecd5745cdf91e2b2b335.tar.xz | |
Merge tag 'icc-6.16-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-next
Georgi writes:
interconnect changes for 6.16
This pull request contains the interconnect changes for the 6.16-rc1
merge window. The core and driver changes are listed below.
Core changes:
- Add support for dynamic id allocation, that allows creating
multiple instances of the same provider
Driver changes:
- Add driver for the EPSS L3 instances on SA8775P SoC
- Add QoS support for SM8650 SoC
- Add some missing nodes for SM8650
- Misc dt-binding style and indentation fixes
Signed-off-by: Georgi Djakov <djakov@kernel.org>
* tag 'icc-6.16-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc:
interconnect: qcom: sm8650: remove regmap config for mc_virt & clk_virt
interconnect: qcom: sm8650: add the MASTER_APSS_NOC
dt-bindings: interconnect: sm8650: document the MASTER_APSS_NOC
interconnect: qcom: sm8650: enable QoS configuration
dt-bindings: interconnect: Correct indentation and style in DTS example
interconnect: qcom: sa8775p: Add dynamic icc node id support
interconnect: qcom: icc-rpmh: Add dynamic icc node id support
interconnect: qcom: Add multidev EPSS L3 support
interconnect: core: Add dynamic id allocation support
dt-bindings: interconnect: Add EPSS L3 compatible for SA8775P
Diffstat (limited to 'include')
| -rw-r--r-- | include/dt-bindings/interconnect/qcom,sm8650-rpmh.h | 1 | ||||
| -rw-r--r-- | include/linux/interconnect-provider.h | 12 | ||||
| -rw-r--r-- | include/linux/interconnect.h | 3 |
3 files changed, 16 insertions, 0 deletions
diff --git a/include/dt-bindings/interconnect/qcom,sm8650-rpmh.h b/include/dt-bindings/interconnect/qcom,sm8650-rpmh.h index 6c1eaf04e241..1216aa352d55 100644 --- a/include/dt-bindings/interconnect/qcom,sm8650-rpmh.h +++ b/include/dt-bindings/interconnect/qcom,sm8650-rpmh.h @@ -150,5 +150,6 @@ #define MASTER_A1NOC_SNOC 0 #define MASTER_A2NOC_SNOC 1 #define SLAVE_SNOC_GEM_NOC_SF 2 +#define MASTER_APSS_NOC 3 #endif diff --git a/include/linux/interconnect-provider.h b/include/linux/interconnect-provider.h index f5aef8784692..55cfebc658e6 100644 --- a/include/linux/interconnect-provider.h +++ b/include/linux/interconnect-provider.h @@ -116,8 +116,10 @@ struct icc_node { int icc_std_aggregate(struct icc_node *node, u32 tag, u32 avg_bw, u32 peak_bw, u32 *agg_avg, u32 *agg_peak); +struct icc_node *icc_node_create_dyn(void); struct icc_node *icc_node_create(int id); void icc_node_destroy(int id); +int icc_link_nodes(struct icc_node *src_node, struct icc_node **dst_node); int icc_link_create(struct icc_node *node, const int dst_id); void icc_node_add(struct icc_node *node, struct icc_provider *provider); void icc_node_del(struct icc_node *node); @@ -136,6 +138,11 @@ static inline int icc_std_aggregate(struct icc_node *node, u32 tag, u32 avg_bw, return -ENOTSUPP; } +static inline struct icc_node *icc_node_create_dyn(void) +{ + return ERR_PTR(-EOPNOTSUPP); +} + static inline struct icc_node *icc_node_create(int id) { return ERR_PTR(-ENOTSUPP); @@ -145,6 +152,11 @@ static inline void icc_node_destroy(int id) { } +static inline int icc_link_nodes(struct icc_node *src_node, struct icc_node **dst_node) +{ + return -EOPNOTSUPP; +} + static inline int icc_link_create(struct icc_node *node, const int dst_id) { return -ENOTSUPP; diff --git a/include/linux/interconnect.h b/include/linux/interconnect.h index 97ac253df62c..e4b8808823ad 100644 --- a/include/linux/interconnect.h +++ b/include/linux/interconnect.h @@ -20,6 +20,9 @@ #define Mbps_to_icc(x) ((x) * 1000 / 8) #define Gbps_to_icc(x) ((x) * 1000 * 1000 / 8) +/* macro to indicate dynamic id allocation */ +#define ICC_ALLOC_DYN_ID -1 + struct icc_path; struct device; |
