Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 736f910e authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ARM: dts: msm: Enable QoS programming for TRINKET"

parents c7ca8420 6e22bfe5
Loading
Loading
Loading
Loading
+24 −32
Original line number Diff line number Diff line
@@ -31,8 +31,7 @@
			qcom,fab-dev;
			qcom,base-name = "bimc-base";
			qcom,bus-type = <2>;
			qcom,bypass-qos-prg;
			qcom,util-fact = <161>;
			qcom,util-fact = <153>;
			clock-names = "bus_clk", "bus_a_clk";
			clocks = <&clock_rpmcc BIMC_MSMBUS_CLK>,
				<&clock_rpmcc BIMC_MSMBUS_A_CLK>;
@@ -67,8 +66,7 @@
			label = "fab-sys_noc";
			qcom,fab-dev;
			qcom,base-name = "sys_noc-base";
			qcom,bypass-qos-prg;
			qcom,bus-type = <1>;
			qcom,bus-type = <3>;
			qcom,base-offset = <0x15000>;
			qcom,qos-off = <0x1000>;
			clock-names = "bus_clk", "bus_a_clk";
@@ -200,8 +198,7 @@
			qcom,qport = <22>;
			qcom,qos-mode = "fixed";
			qcom,connections = <&slv_anoc_snoc>;
			qcom,prio1 = <1>;
			qcom,prio0 = <1>;
			qcom,prio = <2>;
			clock-names = "node_clk", "node_a_clk";
			clocks = <&clock_rpmcc CRYPTO_MSMBUS_SNOC_PERIPH_CLK>,
				<&clock_rpmcc CRYPTO_MSMBUS_SNOC_PERIPH_A_CLK>;
@@ -272,7 +269,8 @@
			qcom,agg-ports = <1>;
			qcom,ap-owned;
			qcom,qport = <15>;
			qcom,qos-mode = "bypass";
			qcom,qos-mode = "fixed";
			qcom,prio = <3>;
			qcom,connections = <&slv_snoc_bimc_nrt>;
			qcom,util-fact = <153>;
			clock-names = "node_clk", "node_a_clk";
@@ -289,7 +287,8 @@
			qcom,agg-ports = <1>;
			qcom,ap-owned;
			qcom,qport = <4>;
			qcom,qos-mode = "bypass";
			qcom,qos-mode = "fixed";
			qcom,prio = <1>;
			qcom,connections = <&slv_snoc_bimc_nrt>;
			qcom,util-fact = <153>;
			clock-names = "node_clk", "node_a_clk";
@@ -307,6 +306,7 @@
			qcom,ap-owned;
			qcom,qport = <5>;
			qcom,qos-mode = "bypass";
			qcom,forwarding;
			qcom,util-fact = <153>;
			clock-names = "node_clk", "node_a_clk";
			clocks = <&clock_rpmcc MDP_MMRT_MSMBUS_CLK>,
@@ -325,8 +325,7 @@
			qcom,qport = <20>;
			qcom,qos-mode = "fixed";
			qcom,connections = <&slv_qxs_imem &slv_snoc_bimc>;
			qcom,prio1 = <0>;
			qcom,prio0 = <0>;
			qcom,prio = <2>;
			qcom,bus-dev = <&fab_sys_noc>;
			qcom,mas-rpm-id = <ICBID_MASTER_PIMEM>;
		};
@@ -339,6 +338,7 @@
			qcom,ap-owned;
			qcom,qport = <9>;
			qcom,qos-mode = "bypass";
			qcom,forwarding;
			qcom,connections = <&slv_snoc_bimc_nrt>;
			qcom,util-fact = <153>;
			clock-names = "node_clk", "node_a_clk";
@@ -356,6 +356,7 @@
			qcom,ap-owned;
			qcom,qport = <13>;
			qcom,qos-mode = "bypass";
			qcom,forwarding;
			qcom,connections = <&slv_snoc_bimc_nrt>;
			qcom,util-fact = <153>;
			clock-names = "node_clk", "node_a_clk";
@@ -374,6 +375,7 @@
			qcom,ap-owned;
			qcom,qport = <10>;
			qcom,qos-mode = "bypass";
			qcom,forwarding;
			qcom,connections = <&slv_snoc_bimc_rt>;
			qcom,util-fact = <153>;
			clock-names = "node_clk", "node_a_clk";
@@ -392,8 +394,7 @@
			qcom,qport = <2>;
			qcom,qos-mode = "fixed";
			qcom,connections = <&slv_anoc_snoc>;
			qcom,prio1 = <1>;
			qcom,prio0 = <1>;
			qcom,prio = <2>;
			qcom,bus-dev = <&fab_sys_noc>;
			qcom,mas-rpm-id = <ICBID_MASTER_QDSS_BAM>;
		};
@@ -407,8 +408,7 @@
			qcom,qport = <0>;
			qcom,qos-mode = "fixed";
			qcom,connections = <&slv_anoc_snoc>;
			qcom,prio1 = <1>;
			qcom,prio0 = <1>;
			qcom,prio = <2>;
			clock-names = "node_clk", "node_a_clk";
			clocks = <&clock_rpmcc QUP0_MSMBUS_SNOC_PERIPH_CLK>,
				<&clock_rpmcc QUP0_MSMBUS_SNOC_PERIPH_A_CLK>;
@@ -425,8 +425,7 @@
			qcom,qport = <1>;
			qcom,qos-mode = "fixed";
			qcom,connections = <&slv_anoc_snoc>;
			qcom,prio1 = <1>;
			qcom,prio0 = <1>;
			qcom,prio = <2>;
			clock-names = "node_clk", "node_a_clk";
			clocks = <&clock_rpmcc QUP1_MSMBUS_SNOC_PERIPH_CLK>,
				<&clock_rpmcc QUP1_MSMBUS_SNOC_PERIPH_A_CLK>;
@@ -454,8 +453,7 @@
			qcom,qport = <3>;
			qcom,qos-mode = "fixed";
			qcom,connections = <&slv_anoc_snoc>;
			qcom,prio1 = <2>;
			qcom,prio0 = <2>;
			qcom,prio = <2>;
			qcom,bus-dev = <&fab_sys_noc>;
			qcom,mas-rpm-id = <ICBID_MASTER_IPA>;
		};
@@ -483,8 +481,7 @@
			qcom,qport = <12>;
			qcom,qos-mode = "fixed";
			qcom,connections = <&slv_anoc_snoc>;
			qcom,prio1 = <1>;
			qcom,prio0 = <1>;
			qcom,prio = <2>;
			qcom,bus-dev = <&fab_sys_noc>;
			qcom,mas-rpm-id = <ICBID_MASTER_QDSS_ETR>;
		};
@@ -498,8 +495,7 @@
			qcom,qport = <17>;
			qcom,qos-mode = "fixed";
			qcom,connections = <&slv_anoc_snoc>;
			qcom,prio1 = <1>;
			qcom,prio0 = <1>;
			qcom,prio = <2>;
			clock-names = "node_clk", "node_a_clk";
			clocks = <&clock_rpmcc SDC1_MSMBUS_SNOC_PERIPH_CLK>,
				<&clock_rpmcc SDC1_MSMBUS_SNOC_PERIPH_A_CLK>;
@@ -516,8 +512,7 @@
			qcom,qport = <23>;
			qcom,qos-mode = "fixed";
			qcom,connections = <&slv_anoc_snoc>;
			qcom,prio1 = <1>;
			qcom,prio0 = <1>;
			qcom,prio = <2>;
			clock-names = "node_clk", "node_a_clk";
			clocks = <&clock_rpmcc SDC2_MSMBUS_SNOC_PERIPH_CLK>,
				<&clock_rpmcc SDC2_MSMBUS_SNOC_PERIPH_A_CLK>;
@@ -534,8 +529,7 @@
			qcom,qport = <25>;
			qcom,qos-mode = "fixed";
			qcom,connections = <&slv_anoc_snoc>;
			qcom,prio1 = <2>;
			qcom,prio0 = <2>;
			qcom,prio = <2>;
			clock-names = "node_clk", "node_a_clk";
			clocks = <&clock_rpmcc RPM_SMD_SNOC_LPASS_CLK>,
				<&clock_rpmcc RPM_SMD_SNOC_LPASS_A_CLK>;
@@ -552,8 +546,7 @@
			qcom,qport = <24>;
			qcom,qos-mode = "fixed";
			qcom,connections = <&slv_anoc_snoc>;
			qcom,prio1 = <2>;
			qcom,prio0 = <2>;
			qcom,prio = <2>;
			qcom,bus-dev = <&fab_sys_noc>;
			qcom,mas-rpm-id = <ICBID_MASTER_USB3_0>;
		};
@@ -567,9 +560,8 @@
			qcom,qport = <16>;
			qcom,qos-mode = "fixed";
			qcom,connections = <&slv_gpu_cdsp_bimc>;
			qcom,prio1 = <0>;
			qcom,prio0 = <0>;
			qcom,util-fact = <161>;
			qcom,prio = <0>;
			qcom,util-fact = <153>;
			qcom,bus-dev = <&fab_sys_noc>;
			qcom,mas-rpm-id = <ICBID_MASTER_GFX3D>;

@@ -1090,7 +1082,7 @@
			label = "slv-gpu-cdsp-bimc";
			qcom,buswidth = <32>;
			qcom,agg-ports = <1>;
			qcom,util-fact = <161>;
			qcom,util-fact = <153>;
			qcom,bus-dev = <&fab_sys_noc>;
			qcom,connections = <&mas_gpu_cdsp_bimc>;
			qcom,slv-rpm-id = <ICBID_SLAVE_GPU_CDSP_BIMC>;
+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ ifdef CONFIG_QCOM_BUS_CONFIG_RPMH
	obj-$(CONFIG_OF) += msm_bus_of_rpmh.o
else
	obj-y += msm_bus_fabric_adhoc.o msm_bus_arb_adhoc.o msm_bus_rules.o \
		msm_bus_bimc_adhoc.o msm_bus_noc_adhoc.o
		msm_bus_bimc_adhoc.o msm_bus_noc_adhoc.o msm_bus_qnoc_adhoc.o
	obj-$(CONFIG_OF) += msm_bus_of_adhoc.o
endif

+25 −1
Original line number Diff line number Diff line
/* Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
/* Copyright (c) 2014-2016, 2019, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -67,6 +67,23 @@ struct msm_bus_fab_device_type {
	bool bypass_qos_prg;
};

struct msm_bus_noc_limiter {
	uint32_t bw;
	uint32_t sat;
};

struct msm_bus_noc_regulator {
	uint32_t low_prio;
	uint32_t hi_prio;
	uint32_t bw;
	uint32_t sat;
};

struct msm_bus_noc_regulator_mode {
	uint32_t read;
	uint32_t write;
};

struct qos_params_type {
	int mode;
	unsigned int prio_lvl;
@@ -79,6 +96,12 @@ struct qos_params_type {
	unsigned int gp;
	unsigned int thmp;
	unsigned int ws;
	unsigned int prio_dflt;
	struct msm_bus_noc_limiter limiter;
	bool limiter_en;
	struct msm_bus_noc_regulator reg;
	struct msm_bus_noc_regulator_mode reg_mode;
	bool urg_fwd_en;
	u64 bw_buffer;
};

@@ -158,6 +181,7 @@ extern struct msm_bus_device_node_registration
extern void msm_bus_arb_setops_adhoc(struct msm_bus_arb_ops *arb_ops);
extern int msm_bus_bimc_set_ops(struct msm_bus_node_device_type *bus_dev);
extern int msm_bus_noc_set_ops(struct msm_bus_node_device_type *bus_dev);
extern int msm_bus_qnoc_set_ops(struct msm_bus_node_device_type *bus_dev);
extern int msm_bus_of_get_static_rules(struct platform_device *pdev,
					struct bus_rule_type **static_rule);
extern int msm_rules_update_path(struct list_head *input_list,
+13 −13
Original line number Diff line number Diff line
/* Copyright (c) 2016, 2018, The Linux Foundation. All rights reserved.
/* Copyright (c) 2016, 2018-2019, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -179,46 +179,46 @@ enum bimc_m_bke_thresh_low {
#define M_BKE_HEALTH_0_CONFIG_ADDR(b, n) \
	(M_REG_BASE(b) + (0x4000 * (n)) + 0x00000340)
enum bimc_m_bke_health_0 {
	M_BKE_HEALTH_0_CONFIG_RMSK			= 0x80000303,
	M_BKE_HEALTH_0_CONFIG_RMSK			= 0x80000707,
	M_BKE_HEALTH_0_CONFIG_LIMIT_CMDS_BMSK		= 0x80000000,
	M_BKE_HEALTH_0_CONFIG_LIMIT_CMDS_SHFT		= 0x1f,
	M_BKE_HEALTH_0_CONFIG_AREQPRIO_BMSK		= 0x300,
	M_BKE_HEALTH_0_CONFIG_AREQPRIO_BMSK		= 0x700,
	M_BKE_HEALTH_0_CONFIG_AREQPRIO_SHFT		= 0x8,
	M_BKE_HEALTH_0_CONFIG_PRIOLVL_BMSK		= 0x3,
	M_BKE_HEALTH_0_CONFIG_PRIOLVL_BMSK		= 0x7,
	M_BKE_HEALTH_0_CONFIG_PRIOLVL_SHFT		= 0x0,
};

#define M_BKE_HEALTH_1_CONFIG_ADDR(b, n) \
	(M_REG_BASE(b) + (0x4000 * (n)) + 0x00000344)
enum bimc_m_bke_health_1 {
	M_BKE_HEALTH_1_CONFIG_RMSK			= 0x80000303,
	M_BKE_HEALTH_1_CONFIG_RMSK			= 0x80000707,
	M_BKE_HEALTH_1_CONFIG_LIMIT_CMDS_BMSK		= 0x80000000,
	M_BKE_HEALTH_1_CONFIG_LIMIT_CMDS_SHFT		= 0x1f,
	M_BKE_HEALTH_1_CONFIG_AREQPRIO_BMSK		= 0x300,
	M_BKE_HEALTH_1_CONFIG_AREQPRIO_BMSK		= 0x700,
	M_BKE_HEALTH_1_CONFIG_AREQPRIO_SHFT		= 0x8,
	M_BKE_HEALTH_1_CONFIG_PRIOLVL_BMSK		= 0x3,
	M_BKE_HEALTH_1_CONFIG_PRIOLVL_BMSK		= 0x7,
	M_BKE_HEALTH_1_CONFIG_PRIOLVL_SHFT		= 0x0,
};

#define M_BKE_HEALTH_2_CONFIG_ADDR(b, n) \
	(M_REG_BASE(b) + (0x4000 * (n)) + 0x00000348)
enum bimc_m_bke_health_2 {
	M_BKE_HEALTH_2_CONFIG_RMSK			= 0x80000303,
	M_BKE_HEALTH_2_CONFIG_RMSK			= 0x80000707,
	M_BKE_HEALTH_2_CONFIG_LIMIT_CMDS_BMSK		= 0x80000000,
	M_BKE_HEALTH_2_CONFIG_LIMIT_CMDS_SHFT		= 0x1f,
	M_BKE_HEALTH_2_CONFIG_AREQPRIO_BMSK		= 0x300,
	M_BKE_HEALTH_2_CONFIG_AREQPRIO_BMSK		= 0x700,
	M_BKE_HEALTH_2_CONFIG_AREQPRIO_SHFT		= 0x8,
	M_BKE_HEALTH_2_CONFIG_PRIOLVL_BMSK		= 0x3,
	M_BKE_HEALTH_2_CONFIG_PRIOLVL_BMSK		= 0x7,
	M_BKE_HEALTH_2_CONFIG_PRIOLVL_SHFT		= 0x0,
};

#define M_BKE_HEALTH_3_CONFIG_ADDR(b, n) \
	(M_REG_BASE(b) + (0x4000 * (n)) + 0x0000034c)
enum bimc_m_bke_health_3 {
	M_BKE_HEALTH_3_CONFIG_RMSK			= 0x303,
	M_BKE_HEALTH_3_CONFIG_AREQPRIO_BMSK	= 0x300,
	M_BKE_HEALTH_3_CONFIG_RMSK			= 0x707,
	M_BKE_HEALTH_3_CONFIG_AREQPRIO_BMSK	= 0x700,
	M_BKE_HEALTH_3_CONFIG_AREQPRIO_SHFT	= 0x8,
	M_BKE_HEALTH_3_CONFIG_PRIOLVL_BMSK		= 0x3,
	M_BKE_HEALTH_3_CONFIG_PRIOLVL_BMSK		= 0x7,
	M_BKE_HEALTH_3_CONFIG_PRIOLVL_SHFT		= 0x0,
};

+2 −1
Original line number Diff line number Diff line
/* Copyright (c) 2011-2017, The Linux Foundation. All rights reserved.
/* Copyright (c) 2011-2017, 2019, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -54,6 +54,7 @@ enum msm_bus_hw_sel {
	MSM_BUS_RPM = 0,
	MSM_BUS_NOC,
	MSM_BUS_BIMC,
	MSM_BUS_QNOC,
};

struct msm_bus_arb_ops {
Loading