Loading drivers/soc/qcom/msm_bus/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -12,7 +12,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 /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2014-2016, The Linux Foundation. All rights reserved. * Copyright (c) 2014-2016, 2019, The Linux Foundation. All rights reserved. */ #ifndef _ARCH_ARM_MACH_MSM_BUS_ADHOC_H Loading Loading @@ -60,6 +60,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 @@ -72,6 +89,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 @@ -151,6 +174,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 // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2016, 2018, The Linux Foundation. All rights reserved. * Copyright (c) 2016, 2018-2019, The Linux Foundation. All rights reserved. */ #define pr_fmt(fmt) "AXI: BIMC: %s(): " fmt, __func__ Loading Loading @@ -172,46 +172,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 /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2011-2017, The Linux Foundation. All rights reserved. * Copyright (c) 2011-2017, 2019, The Linux Foundation. All rights reserved. */ #ifndef _ARCH_ARM_MACH_MSM_BUS_CORE_H Loading Loading @@ -47,6 +47,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 drivers/soc/qcom/msm_bus/msm_bus_fabric_adhoc.c +7 −1 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2014-2016, 2018, Linux Foundation. All rights reserved. * Copyright (c) 2014-2016, 2018-2019, Linux Foundation. All rights reserved. */ #include <linux/clk.h> Loading Loading @@ -470,6 +470,9 @@ static void msm_bus_fab_init_noc_ops(struct msm_bus_node_device_type *bus_dev) case MSM_BUS_BIMC: msm_bus_bimc_set_ops(bus_dev); break; case MSM_BUS_QNOC: msm_bus_qnoc_set_ops(bus_dev); break; default: MSM_BUS_ERR("%s: Invalid Bus type", __func__); } Loading Loading @@ -820,6 +823,9 @@ static int msm_bus_copy_node_info(struct msm_bus_node_device_type *pdata, node_info->qos_params.mode = pdata_node_info->qos_params.mode; node_info->qos_params.prio1 = pdata_node_info->qos_params.prio1; node_info->qos_params.prio0 = pdata_node_info->qos_params.prio0; node_info->qos_params.prio_dflt = pdata_node_info->qos_params.prio_dflt; node_info->qos_params.urg_fwd_en = pdata_node_info->qos_params.urg_fwd_en; node_info->qos_params.reg_prio1 = pdata_node_info->qos_params.reg_prio1; node_info->qos_params.reg_prio0 = pdata_node_info->qos_params.reg_prio0; node_info->qos_params.prio_lvl = pdata_node_info->qos_params.prio_lvl; Loading Loading
drivers/soc/qcom/msm_bus/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -12,7 +12,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 /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2014-2016, The Linux Foundation. All rights reserved. * Copyright (c) 2014-2016, 2019, The Linux Foundation. All rights reserved. */ #ifndef _ARCH_ARM_MACH_MSM_BUS_ADHOC_H Loading Loading @@ -60,6 +60,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 @@ -72,6 +89,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 @@ -151,6 +174,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 // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2016, 2018, The Linux Foundation. All rights reserved. * Copyright (c) 2016, 2018-2019, The Linux Foundation. All rights reserved. */ #define pr_fmt(fmt) "AXI: BIMC: %s(): " fmt, __func__ Loading Loading @@ -172,46 +172,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 /* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2011-2017, The Linux Foundation. All rights reserved. * Copyright (c) 2011-2017, 2019, The Linux Foundation. All rights reserved. */ #ifndef _ARCH_ARM_MACH_MSM_BUS_CORE_H Loading Loading @@ -47,6 +47,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
drivers/soc/qcom/msm_bus/msm_bus_fabric_adhoc.c +7 −1 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2014-2016, 2018, Linux Foundation. All rights reserved. * Copyright (c) 2014-2016, 2018-2019, Linux Foundation. All rights reserved. */ #include <linux/clk.h> Loading Loading @@ -470,6 +470,9 @@ static void msm_bus_fab_init_noc_ops(struct msm_bus_node_device_type *bus_dev) case MSM_BUS_BIMC: msm_bus_bimc_set_ops(bus_dev); break; case MSM_BUS_QNOC: msm_bus_qnoc_set_ops(bus_dev); break; default: MSM_BUS_ERR("%s: Invalid Bus type", __func__); } Loading Loading @@ -820,6 +823,9 @@ static int msm_bus_copy_node_info(struct msm_bus_node_device_type *pdata, node_info->qos_params.mode = pdata_node_info->qos_params.mode; node_info->qos_params.prio1 = pdata_node_info->qos_params.prio1; node_info->qos_params.prio0 = pdata_node_info->qos_params.prio0; node_info->qos_params.prio_dflt = pdata_node_info->qos_params.prio_dflt; node_info->qos_params.urg_fwd_en = pdata_node_info->qos_params.urg_fwd_en; node_info->qos_params.reg_prio1 = pdata_node_info->qos_params.reg_prio1; node_info->qos_params.reg_prio0 = pdata_node_info->qos_params.reg_prio0; node_info->qos_params.prio_lvl = pdata_node_info->qos_params.prio_lvl; Loading