Loading Documentation/devicetree/bindings/arm/msm/msm_bus.txt +1 −0 Original line number Original line Diff line number Diff line Loading @@ -139,6 +139,7 @@ qcom,bcm-name: The name used to fetch details about the bcm device from the command DB driver. the command DB driver. qcom,drv-id: The DRV id associated with the RSC, used to differentiate qcom,drv-id: The DRV id associated with the RSC, used to differentiate between RSCS owned by different execution environments. between RSCS owned by different execution environments. qcom,defer-init-qos: Flag to force defer initial QoS configuration at probe time. Example: Example: Loading drivers/soc/qcom/msm_bus/msm_bus_fabric_rpmh.c +14 −3 Original line number Original line Diff line number Diff line Loading @@ -544,9 +544,6 @@ int msm_bus_commit_data(struct list_head *clist) return ret; return ret; list_for_each_entry_safe(node, node_tmp, clist, link) { list_for_each_entry_safe(node, node_tmp, clist, link) { if (unlikely(node->node_info->defer_qos)) msm_bus_dev_init_qos(&node->dev, NULL); bcm_clist_add(node); bcm_clist_add(node); } } Loading Loading @@ -654,6 +651,12 @@ int msm_bus_commit_data(struct list_head *clist) kfree(cmdlist_active); kfree(cmdlist_active); kfree(n_active); kfree(n_active); list_for_each_entry_safe(node, node_tmp, clist, link) { if (unlikely(node->node_info->defer_qos)) msm_bus_dev_init_qos(&node->dev, NULL); } exit_msm_bus_commit_data: exit_msm_bus_commit_data: list_for_each_entry_safe(node, node_tmp, clist, link) { list_for_each_entry_safe(node, node_tmp, clist, link) { bcm_clist_clean(node); bcm_clist_clean(node); Loading Loading @@ -948,6 +951,12 @@ static int msm_bus_dev_init_qos(struct device *dev, void *data) MSM_BUS_DBG("Device = %d", node_dev->node_info->id); MSM_BUS_DBG("Device = %d", node_dev->node_info->id); if (node_dev->node_info->qos_params.defer_init_qos) { node_dev->node_info->qos_params.defer_init_qos = false; node_dev->node_info->defer_qos = true; goto exit_init_qos; } if (node_dev->ap_owned) { if (node_dev->ap_owned) { struct msm_bus_node_device_type *bus_node_info; struct msm_bus_node_device_type *bus_node_info; Loading Loading @@ -1275,6 +1284,8 @@ static int msm_bus_copy_node_info(struct msm_bus_node_device_type *pdata, pdata_node_info->qos_params.reg_mode.write; pdata_node_info->qos_params.reg_mode.write; node_info->qos_params.urg_fwd_en = node_info->qos_params.urg_fwd_en = pdata_node_info->qos_params.urg_fwd_en; pdata_node_info->qos_params.urg_fwd_en; node_info->qos_params.defer_init_qos = pdata_node_info->qos_params.defer_init_qos; node_info->agg_params.buswidth = pdata_node_info->agg_params.buswidth; node_info->agg_params.buswidth = pdata_node_info->agg_params.buswidth; node_info->agg_params.agg_scheme = node_info->agg_params.agg_scheme = pdata_node_info->agg_params.agg_scheme; pdata_node_info->agg_params.agg_scheme; Loading drivers/soc/qcom/msm_bus/msm_bus_of_rpmh.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -241,6 +241,8 @@ static void get_qos_params( node_info->qos_params.urg_fwd_en = of_property_read_bool(dev_node, node_info->qos_params.urg_fwd_en = of_property_read_bool(dev_node, "qcom,forwarding"); "qcom,forwarding"); node_info->qos_params.defer_init_qos = of_property_read_bool(dev_node, "qcom,defer-init-qos"); } } static int msm_bus_of_parse_clk_array(struct device_node *dev_node, static int msm_bus_of_parse_clk_array(struct device_node *dev_node, Loading drivers/soc/qcom/msm_bus/msm_bus_rpmh.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -136,6 +136,7 @@ struct msm_bus_noc_qos_params { struct msm_bus_noc_regulator reg; struct msm_bus_noc_regulator reg; struct msm_bus_noc_regulator_mode reg_mode; struct msm_bus_noc_regulator_mode reg_mode; bool urg_fwd_en; bool urg_fwd_en; bool defer_init_qos; }; }; struct node_util_levels_type { struct node_util_levels_type { Loading Loading
Documentation/devicetree/bindings/arm/msm/msm_bus.txt +1 −0 Original line number Original line Diff line number Diff line Loading @@ -139,6 +139,7 @@ qcom,bcm-name: The name used to fetch details about the bcm device from the command DB driver. the command DB driver. qcom,drv-id: The DRV id associated with the RSC, used to differentiate qcom,drv-id: The DRV id associated with the RSC, used to differentiate between RSCS owned by different execution environments. between RSCS owned by different execution environments. qcom,defer-init-qos: Flag to force defer initial QoS configuration at probe time. Example: Example: Loading
drivers/soc/qcom/msm_bus/msm_bus_fabric_rpmh.c +14 −3 Original line number Original line Diff line number Diff line Loading @@ -544,9 +544,6 @@ int msm_bus_commit_data(struct list_head *clist) return ret; return ret; list_for_each_entry_safe(node, node_tmp, clist, link) { list_for_each_entry_safe(node, node_tmp, clist, link) { if (unlikely(node->node_info->defer_qos)) msm_bus_dev_init_qos(&node->dev, NULL); bcm_clist_add(node); bcm_clist_add(node); } } Loading Loading @@ -654,6 +651,12 @@ int msm_bus_commit_data(struct list_head *clist) kfree(cmdlist_active); kfree(cmdlist_active); kfree(n_active); kfree(n_active); list_for_each_entry_safe(node, node_tmp, clist, link) { if (unlikely(node->node_info->defer_qos)) msm_bus_dev_init_qos(&node->dev, NULL); } exit_msm_bus_commit_data: exit_msm_bus_commit_data: list_for_each_entry_safe(node, node_tmp, clist, link) { list_for_each_entry_safe(node, node_tmp, clist, link) { bcm_clist_clean(node); bcm_clist_clean(node); Loading Loading @@ -948,6 +951,12 @@ static int msm_bus_dev_init_qos(struct device *dev, void *data) MSM_BUS_DBG("Device = %d", node_dev->node_info->id); MSM_BUS_DBG("Device = %d", node_dev->node_info->id); if (node_dev->node_info->qos_params.defer_init_qos) { node_dev->node_info->qos_params.defer_init_qos = false; node_dev->node_info->defer_qos = true; goto exit_init_qos; } if (node_dev->ap_owned) { if (node_dev->ap_owned) { struct msm_bus_node_device_type *bus_node_info; struct msm_bus_node_device_type *bus_node_info; Loading Loading @@ -1275,6 +1284,8 @@ static int msm_bus_copy_node_info(struct msm_bus_node_device_type *pdata, pdata_node_info->qos_params.reg_mode.write; pdata_node_info->qos_params.reg_mode.write; node_info->qos_params.urg_fwd_en = node_info->qos_params.urg_fwd_en = pdata_node_info->qos_params.urg_fwd_en; pdata_node_info->qos_params.urg_fwd_en; node_info->qos_params.defer_init_qos = pdata_node_info->qos_params.defer_init_qos; node_info->agg_params.buswidth = pdata_node_info->agg_params.buswidth; node_info->agg_params.buswidth = pdata_node_info->agg_params.buswidth; node_info->agg_params.agg_scheme = node_info->agg_params.agg_scheme = pdata_node_info->agg_params.agg_scheme; pdata_node_info->agg_params.agg_scheme; Loading
drivers/soc/qcom/msm_bus/msm_bus_of_rpmh.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -241,6 +241,8 @@ static void get_qos_params( node_info->qos_params.urg_fwd_en = of_property_read_bool(dev_node, node_info->qos_params.urg_fwd_en = of_property_read_bool(dev_node, "qcom,forwarding"); "qcom,forwarding"); node_info->qos_params.defer_init_qos = of_property_read_bool(dev_node, "qcom,defer-init-qos"); } } static int msm_bus_of_parse_clk_array(struct device_node *dev_node, static int msm_bus_of_parse_clk_array(struct device_node *dev_node, Loading
drivers/soc/qcom/msm_bus/msm_bus_rpmh.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -136,6 +136,7 @@ struct msm_bus_noc_qos_params { struct msm_bus_noc_regulator reg; struct msm_bus_noc_regulator reg; struct msm_bus_noc_regulator_mode reg_mode; struct msm_bus_noc_regulator_mode reg_mode; bool urg_fwd_en; bool urg_fwd_en; bool defer_init_qos; }; }; struct node_util_levels_type { struct node_util_levels_type { Loading