Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/msm: Use generic bulk clock function

Remove the homebrewed bulk clock get function and replace it with
devm_clk_bulk_get_all().

Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Rob Clark <robdclark@chromium.org>

authored by

Jordan Crouse and committed by
Rob Clark
8e3e791d 518304cb

+2 -43
+1 -1
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
··· 1172 1172 1173 1173 static int a6xx_gmu_clocks_probe(struct a6xx_gmu *gmu) 1174 1174 { 1175 - int ret = msm_clk_bulk_get(gmu->dev, &gmu->clocks); 1175 + int ret = devm_clk_bulk_get_all(gmu->dev, &gmu->clocks); 1176 1176 1177 1177 if (ret < 1) 1178 1178 return ret;
-40
drivers/gpu/drm/msm/msm_drv.c
··· 83 83 * Util/helpers: 84 84 */ 85 85 86 - int msm_clk_bulk_get(struct device *dev, struct clk_bulk_data **bulk) 87 - { 88 - struct property *prop; 89 - const char *name; 90 - struct clk_bulk_data *local; 91 - int i = 0, ret, count; 92 - 93 - count = of_property_count_strings(dev->of_node, "clock-names"); 94 - if (count < 1) 95 - return 0; 96 - 97 - local = devm_kcalloc(dev, sizeof(struct clk_bulk_data *), 98 - count, GFP_KERNEL); 99 - if (!local) 100 - return -ENOMEM; 101 - 102 - of_property_for_each_string(dev->of_node, "clock-names", prop, name) { 103 - local[i].id = devm_kstrdup(dev, name, GFP_KERNEL); 104 - if (!local[i].id) { 105 - devm_kfree(dev, local); 106 - return -ENOMEM; 107 - } 108 - 109 - i++; 110 - } 111 - 112 - ret = devm_clk_bulk_get(dev, count, local); 113 - 114 - if (ret) { 115 - for (i = 0; i < count; i++) 116 - devm_kfree(dev, (void *) local[i].id); 117 - devm_kfree(dev, local); 118 - 119 - return ret; 120 - } 121 - 122 - *bulk = local; 123 - return count; 124 - } 125 - 126 86 struct clk *msm_clk_bulk_get_clock(struct clk_bulk_data *bulk, int count, 127 87 const char *name) 128 88 {
-1
drivers/gpu/drm/msm/msm_drv.h
··· 398 398 #endif 399 399 400 400 struct clk *msm_clk_get(struct platform_device *pdev, const char *name); 401 - int msm_clk_bulk_get(struct device *dev, struct clk_bulk_data **bulk); 402 401 403 402 struct clk *msm_clk_bulk_get_clock(struct clk_bulk_data *bulk, int count, 404 403 const char *name);
+1 -1
drivers/gpu/drm/msm/msm_gpu.c
··· 784 784 785 785 static int get_clocks(struct platform_device *pdev, struct msm_gpu *gpu) 786 786 { 787 - int ret = msm_clk_bulk_get(&pdev->dev, &gpu->grp_clks); 787 + int ret = devm_clk_bulk_get_all(&pdev->dev, &gpu->grp_clks); 788 788 789 789 if (ret < 1) { 790 790 gpu->nr_clocks = 0;