Loading arch/arm64/boot/dts/qcom/trinket-bus.dtsi +24 −32 Original line number Diff line number Diff line Loading @@ -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>; Loading Loading @@ -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"; Loading Loading @@ -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>; Loading Loading @@ -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"; Loading @@ -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"; Loading @@ -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>, Loading @@ -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>; }; Loading @@ -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"; Loading @@ -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"; Loading @@ -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"; Loading @@ -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>; }; Loading @@ -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>; Loading @@ -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>; Loading Loading @@ -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>; }; Loading Loading @@ -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>; }; Loading @@ -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>; Loading @@ -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>; Loading @@ -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>; Loading @@ -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>; }; Loading @@ -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>; Loading Loading @@ -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>; Loading drivers/soc/qcom/msm_bus/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading drivers/soc/qcom/msm_bus/msm_bus_adhoc.h +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 Loading Loading @@ -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; Loading @@ -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; }; Loading Loading @@ -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, Loading drivers/soc/qcom/msm_bus/msm_bus_bimc_adhoc.c +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 Loading Loading @@ -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, }; Loading drivers/soc/qcom/msm_bus/msm_bus_core.h +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 Loading Loading @@ -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 Loading
arch/arm64/boot/dts/qcom/trinket-bus.dtsi +24 −32 Original line number Diff line number Diff line Loading @@ -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>; Loading Loading @@ -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"; Loading Loading @@ -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>; Loading Loading @@ -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"; Loading @@ -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"; Loading @@ -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>, Loading @@ -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>; }; Loading @@ -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"; Loading @@ -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"; Loading @@ -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"; Loading @@ -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>; }; Loading @@ -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>; Loading @@ -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>; Loading Loading @@ -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>; }; Loading Loading @@ -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>; }; Loading @@ -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>; Loading @@ -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>; Loading @@ -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>; Loading @@ -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>; }; Loading @@ -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>; Loading Loading @@ -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>; Loading
drivers/soc/qcom/msm_bus/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
drivers/soc/qcom/msm_bus/msm_bus_adhoc.h +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 Loading Loading @@ -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; Loading @@ -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; }; Loading Loading @@ -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, Loading
drivers/soc/qcom/msm_bus/msm_bus_bimc_adhoc.c +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 Loading Loading @@ -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, }; Loading
drivers/soc/qcom/msm_bus/msm_bus_core.h +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 Loading Loading @@ -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