Loading drivers/platform/msm/msm_bus/msm_bus_fabric_adhoc.c +11 −7 Original line number Diff line number Diff line Loading @@ -422,7 +422,7 @@ int msm_bus_update_clks(struct msm_bus_node_device_type *nodedev, req_clk = nodedev->cur_clk_hz[ctx]; nodeclk = &nodedev->clk[ctx]; if (!nodeclk->clk) if (IS_ERR_OR_NULL(nodeclk)) goto exit_set_clks; if (!nodeclk->dirty || (nodeclk->dirty && (nodeclk->rate < req_clk))) { Loading Loading @@ -540,15 +540,15 @@ static int msm_bus_qos_enable_clk(struct msm_bus_node_device_type *node) rounded_rate = clk_round_rate(node->qos_clk.clk, 1); ret = setrate_nodeclk(&node->qos_clk, rounded_rate); if (ret) { MSM_BUS_ERR("%s: Failed to enable mas qos clk, node %d", __func__, node->node_info->id); MSM_BUS_ERR("Failed to set bus clk, node %d", node->node_info->id); goto exit_enable_qos_clk; } ret = enable_nodeclk(&node->qos_clk); if (ret) { MSM_BUS_ERR("%s: Failed to enable mas qos clk, node %d", __func__, node->node_info->id); MSM_BUS_ERR("Err enable mas qos clk, node %d ret %d", node->node_info->id, ret); goto exit_enable_qos_clk; } } Loading Loading @@ -594,14 +594,18 @@ static int msm_bus_dev_init_qos(struct device *dev, void *data) if (bus_node_info->fabdev->bypass_qos_prg) goto exit_init_qos; msm_bus_qos_enable_clk(node_dev); if (msm_bus_qos_enable_clk(node_dev)) goto exit_init_qos; bus_node_info->fabdev->noc_ops.qos_init( node_dev, bus_node_info->fabdev->qos_base, bus_node_info->fabdev->base_offset, bus_node_info->fabdev->qos_off, bus_node_info->fabdev->qos_freq); msm_bus_qos_disable_clk(node_dev); if (msm_bus_qos_disable_clk(node_dev)) goto exit_init_qos; } } else MSM_BUS_ERR("%s: Skipping QOS init for %d", Loading drivers/platform/msm/msm_bus/msm_bus_of_adhoc.c +18 −0 Original line number Diff line number Diff line Loading @@ -314,6 +314,24 @@ static unsigned int get_bus_node_device_data( dev_warn(&pdev->dev, "Coresight support absent for bus: %d\n", node_device->node_info->id); } else { node_device->qos_clk.clk = of_clk_get_by_name(dev_node, "bus_qos_clk"); if (IS_ERR_OR_NULL(node_device->qos_clk.clk)) dev_dbg(&pdev->dev, "%s:Failed to get bus qos clk for mas%d", __func__, node_device->node_info->id); node_device->clk[DUAL_CTX].clk = of_clk_get_by_name(dev_node, "node_clk"); if (IS_ERR_OR_NULL(node_device->clk[DUAL_CTX].clk)) dev_dbg(&pdev->dev, "%s:Failed to get bus clk for bus%d ctx%d", __func__, node_device->node_info->id, DUAL_CTX); } return 0; } Loading Loading
drivers/platform/msm/msm_bus/msm_bus_fabric_adhoc.c +11 −7 Original line number Diff line number Diff line Loading @@ -422,7 +422,7 @@ int msm_bus_update_clks(struct msm_bus_node_device_type *nodedev, req_clk = nodedev->cur_clk_hz[ctx]; nodeclk = &nodedev->clk[ctx]; if (!nodeclk->clk) if (IS_ERR_OR_NULL(nodeclk)) goto exit_set_clks; if (!nodeclk->dirty || (nodeclk->dirty && (nodeclk->rate < req_clk))) { Loading Loading @@ -540,15 +540,15 @@ static int msm_bus_qos_enable_clk(struct msm_bus_node_device_type *node) rounded_rate = clk_round_rate(node->qos_clk.clk, 1); ret = setrate_nodeclk(&node->qos_clk, rounded_rate); if (ret) { MSM_BUS_ERR("%s: Failed to enable mas qos clk, node %d", __func__, node->node_info->id); MSM_BUS_ERR("Failed to set bus clk, node %d", node->node_info->id); goto exit_enable_qos_clk; } ret = enable_nodeclk(&node->qos_clk); if (ret) { MSM_BUS_ERR("%s: Failed to enable mas qos clk, node %d", __func__, node->node_info->id); MSM_BUS_ERR("Err enable mas qos clk, node %d ret %d", node->node_info->id, ret); goto exit_enable_qos_clk; } } Loading Loading @@ -594,14 +594,18 @@ static int msm_bus_dev_init_qos(struct device *dev, void *data) if (bus_node_info->fabdev->bypass_qos_prg) goto exit_init_qos; msm_bus_qos_enable_clk(node_dev); if (msm_bus_qos_enable_clk(node_dev)) goto exit_init_qos; bus_node_info->fabdev->noc_ops.qos_init( node_dev, bus_node_info->fabdev->qos_base, bus_node_info->fabdev->base_offset, bus_node_info->fabdev->qos_off, bus_node_info->fabdev->qos_freq); msm_bus_qos_disable_clk(node_dev); if (msm_bus_qos_disable_clk(node_dev)) goto exit_init_qos; } } else MSM_BUS_ERR("%s: Skipping QOS init for %d", Loading
drivers/platform/msm/msm_bus/msm_bus_of_adhoc.c +18 −0 Original line number Diff line number Diff line Loading @@ -314,6 +314,24 @@ static unsigned int get_bus_node_device_data( dev_warn(&pdev->dev, "Coresight support absent for bus: %d\n", node_device->node_info->id); } else { node_device->qos_clk.clk = of_clk_get_by_name(dev_node, "bus_qos_clk"); if (IS_ERR_OR_NULL(node_device->qos_clk.clk)) dev_dbg(&pdev->dev, "%s:Failed to get bus qos clk for mas%d", __func__, node_device->node_info->id); node_device->clk[DUAL_CTX].clk = of_clk_get_by_name(dev_node, "node_clk"); if (IS_ERR_OR_NULL(node_device->clk[DUAL_CTX].clk)) dev_dbg(&pdev->dev, "%s:Failed to get bus clk for bus%d ctx%d", __func__, node_device->node_info->id, DUAL_CTX); } return 0; } Loading