mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-20 17:44:33 +08:00
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>
This commit is contained in:
parent
518304cbf3
commit
8e3e791d20
@ -1172,7 +1172,7 @@ static int a6xx_gmu_pwrlevels_probe(struct a6xx_gmu *gmu)
|
||||
|
||||
static int a6xx_gmu_clocks_probe(struct a6xx_gmu *gmu)
|
||||
{
|
||||
int ret = msm_clk_bulk_get(gmu->dev, &gmu->clocks);
|
||||
int ret = devm_clk_bulk_get_all(gmu->dev, &gmu->clocks);
|
||||
|
||||
if (ret < 1)
|
||||
return ret;
|
||||
|
@ -83,46 +83,6 @@ module_param(modeset, bool, 0600);
|
||||
* Util/helpers:
|
||||
*/
|
||||
|
||||
int msm_clk_bulk_get(struct device *dev, struct clk_bulk_data **bulk)
|
||||
{
|
||||
struct property *prop;
|
||||
const char *name;
|
||||
struct clk_bulk_data *local;
|
||||
int i = 0, ret, count;
|
||||
|
||||
count = of_property_count_strings(dev->of_node, "clock-names");
|
||||
if (count < 1)
|
||||
return 0;
|
||||
|
||||
local = devm_kcalloc(dev, sizeof(struct clk_bulk_data *),
|
||||
count, GFP_KERNEL);
|
||||
if (!local)
|
||||
return -ENOMEM;
|
||||
|
||||
of_property_for_each_string(dev->of_node, "clock-names", prop, name) {
|
||||
local[i].id = devm_kstrdup(dev, name, GFP_KERNEL);
|
||||
if (!local[i].id) {
|
||||
devm_kfree(dev, local);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
ret = devm_clk_bulk_get(dev, count, local);
|
||||
|
||||
if (ret) {
|
||||
for (i = 0; i < count; i++)
|
||||
devm_kfree(dev, (void *) local[i].id);
|
||||
devm_kfree(dev, local);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
*bulk = local;
|
||||
return count;
|
||||
}
|
||||
|
||||
struct clk *msm_clk_bulk_get_clock(struct clk_bulk_data *bulk, int count,
|
||||
const char *name)
|
||||
{
|
||||
|
@ -398,7 +398,6 @@ static inline void msm_perf_debugfs_cleanup(struct msm_drm_private *priv) {}
|
||||
#endif
|
||||
|
||||
struct clk *msm_clk_get(struct platform_device *pdev, const char *name);
|
||||
int msm_clk_bulk_get(struct device *dev, struct clk_bulk_data **bulk);
|
||||
|
||||
struct clk *msm_clk_bulk_get_clock(struct clk_bulk_data *bulk, int count,
|
||||
const char *name);
|
||||
|
@ -784,7 +784,7 @@ static irqreturn_t irq_handler(int irq, void *data)
|
||||
|
||||
static int get_clocks(struct platform_device *pdev, struct msm_gpu *gpu)
|
||||
{
|
||||
int ret = msm_clk_bulk_get(&pdev->dev, &gpu->grp_clks);
|
||||
int ret = devm_clk_bulk_get_all(&pdev->dev, &gpu->grp_clks);
|
||||
|
||||
if (ret < 1) {
|
||||
gpu->nr_clocks = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user