Merge "interconnect: qcom: Add OSM L3 support on SM6150"

This commit is contained in:
qctecmdr 2021-02-04 04:20:34 -08:00 • committed by Gerrit - the friendly Code Review server
commit 07afb6af62
4 changed files with 2503 additions and 3 deletions

View file

@ -55,6 +55,19 @@ config INTERCONNECT_QCOM_SDM845
This is a driver for the Qualcomm Network-on-Chip on sdm845-based
platforms.
config INTERCONNECT_QCOM_SM6150
tristate "SM6150 interconnect driver"
depends on INTERCONNECT_QCOM
depends on QCOM_RPMH && QCOM_COMMAND_DB && OF
select INTERCONNECT_QCOM_BCM_VOTER
select INTERCONNECT_QCOM_RPMH
select INTERCONNECT_QCOM_QOS
help
This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
on sm6150-based platforms. The interconnect provider collects and
aggreagates the cosumer bandwidth requests to satisfy constraints
placed on Network-on-Chip performance states.
config INTERCONNECT_QCOM_SM8150
tristate "SM8150 interconnect driver"
depends on INTERCONNECT_QCOM
@ -125,7 +138,7 @@ config INTERCONNECT_QCOM_CPUCP_L3
config INTERCONNECT_QCOM_OSM_L3
tristate "QTI OSM L3 interconnect driver"
depends on INTERCONNECT_QCOM || COMPILE_TEST
depends on INTERCONNECT_QCOM
help
This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
on osm-based platforms.

View file

@ -8,6 +8,7 @@ qnoc-sdm845-objs := sdm845.o
qnoc-lahaina-objs := lahaina.o
qnoc-sdxlemur-objs := sdxlemur.o
qnoc-shima-objs := shima.o
qnoc-sm6150-objs := sm6150.o
qnoc-sm8150-objs := sm8150.o
qnoc-yupik-objs := yupik.o
qnoc-sdxnightjar-objs := sdxnightjar.o
@ -23,6 +24,7 @@ obj-$(CONFIG_INTERCONNECT_QCOM_MONACO) += qnoc-monaco.o
obj-$(CONFIG_INTERCONNECT_QCOM_QCS404) += qnoc-qcs404.o
obj-$(CONFIG_INTERCONNECT_QCOM_SCSHRIKE) += qnoc-scshrike.o
obj-$(CONFIG_INTERCONNECT_QCOM_SDM845) += qnoc-sdm845.o
obj-$(CONFIG_INTERCONNECT_QCOM_SM6150) += qnoc-sm6150.o
obj-$(CONFIG_INTERCONNECT_QCOM_SM8150) += qnoc-sm8150.o
obj-$(CONFIG_INTERCONNECT_QCOM_LAHAINA) += qnoc-lahaina.o
obj-$(CONFIG_INTERCONNECT_QCOM_SHIMA) += qnoc-shima.o

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
*/
#include <linux/bitfield.h>
@ -113,7 +113,6 @@ static const struct qcom_icc_desc sm8150_icc_osm_l3 = {
.num_nodes = ARRAY_SIZE(sm8150_osm_l3_nodes),
};
DEFINE_QNODE(mas_osm_l3_apps_scshrike, OSM_MASTER_L3_APPS, 1,
OSM_SLAVE_L3_CLUSTER0, OSM_SLAVE_L3_CLUSTER1,
OSM_SLAVE_L3_MISC, OSM_SLAVE_L3_GPU);
@ -130,6 +129,24 @@ static const struct qcom_icc_desc scshrike_icc_osm_l3 = {
.nodes = scshrike_osm_l3_nodes,
.num_nodes = ARRAY_SIZE(scshrike_osm_l3_nodes),
};
DEFINE_QNODE(mas_osm_l3_apps_sm6150, OSM_MASTER_L3_APPS, 1,
OSM_SLAVE_L3_CLUSTER0, OSM_SLAVE_L3_CLUSTER1,
OSM_SLAVE_L3_MISC, OSM_SLAVE_L3_GPU);
static struct qcom_icc_node *sm6150_osm_l3_nodes[] = {
[MASTER_OSM_L3_APPS] = &mas_osm_l3_apps_sm6150,
[SLAVE_OSM_L3_CLUSTER0] = &slv_osm_l3_cluster0,
[SLAVE_OSM_L3_CLUSTER1] = &slv_osm_l3_cluster1,
[SLAVE_OSM_L3_MISC] = &slv_osm_l3_misc,
[SLAVE_OSM_L3_GPU] = &slv_osm_l3_gpu,
};
static const struct qcom_icc_desc sm6150_icc_osm_l3 = {
.nodes = sm6150_osm_l3_nodes,
.num_nodes = ARRAY_SIZE(sm6150_osm_l3_nodes),
};
static int qcom_icc_aggregate(struct icc_node *node, u32 tag, u32 avg_bw,
u32 peak_bw, u32 *agg_avg, u32 *agg_peak)
{
@ -302,6 +319,7 @@ err:
static const struct of_device_id osm_l3_of_match[] = {
{ .compatible = "qcom,sdm845-osm-l3", .data = &sdm845_icc_osm_l3 },
{ .compatible = "qcom,sm8150-osm-l3", .data = &sm8150_icc_osm_l3 },
{ .compatible = "qcom,sm6150-osm-l3", .data = &sm6150_icc_osm_l3 },
{ .compatible = "qcom,scshrike-osm-l3", .data = &scshrike_icc_osm_l3 },
{ }
};

File diff suppressed because it is too large Load diff