Loading drivers/soc/qcom/icnss2/main.c +9 −6 Original line number Diff line number Diff line Loading @@ -2870,7 +2870,7 @@ static int icnss_probe(struct platform_device *pdev) if (!of_id || !of_id->data) { icnss_pr_err("Failed to find of match device!\n"); ret = -ENODEV; goto out; goto out_reset_drvdata; } device_id = of_id->data; Loading @@ -2894,15 +2894,15 @@ static int icnss_probe(struct platform_device *pdev) ret = icnss_resource_parse(priv); if (ret) goto out; goto out_reset_drvdata; ret = icnss_msa_dt_parse(priv); if (ret) goto out; goto out_free_resources; ret = icnss_smmu_dt_parse(priv); if (ret) goto out; goto out_free_resources; spin_lock_init(&priv->event_lock); spin_lock_init(&priv->on_off_lock); Loading Loading @@ -2965,9 +2965,10 @@ static int icnss_probe(struct platform_device *pdev) destroy_workqueue(priv->event_wq); smmu_cleanup: priv->iommu_domain = NULL; out: out_free_resources: icnss_put_resources(priv); out_reset_drvdata: dev_set_drvdata(dev, NULL); return ret; } Loading Loading @@ -3004,6 +3005,8 @@ static int icnss_remove(struct platform_device *pdev) icnss_hw_power_off(priv); icnss_put_resources(priv); dev_set_drvdata(&pdev->dev, NULL); return 0; Loading drivers/soc/qcom/icnss2/power.c +4 −40 Original line number Diff line number Diff line Loading @@ -138,16 +138,6 @@ static int icnss_get_vreg_single(struct icnss_priv *priv, return ret; } static void icnss_put_vreg_single(struct icnss_priv *priv, struct icnss_vreg_info *vreg) { struct device *dev = &priv->pdev->dev; icnss_pr_dbg("Put regulator: %s\n", vreg->cfg.name); devm_regulator_put(vreg->reg); devm_kfree(dev, vreg); } static int icnss_vreg_on_single(struct icnss_vreg_info *vreg) { int ret = 0; Loading Loading @@ -309,14 +299,11 @@ int icnss_get_vreg(struct icnss_priv *priv) memcpy(&vreg->cfg, &vreg_cfg[i], sizeof(vreg->cfg)); ret = icnss_get_vreg_single(priv, vreg); if (ret != 0) { if (ret == -ENODEV) { devm_kfree(dev, vreg); if (ret == -ENODEV) continue; } else { devm_kfree(dev, vreg); else return ret; } } list_add_tail(&vreg->list, vreg_list); } Loading @@ -332,9 +319,6 @@ void icnss_put_vreg(struct icnss_priv *priv) vreg = list_first_entry(vreg_list, struct icnss_vreg_info, list); list_del(&vreg->list); if (IS_ERR_OR_NULL(vreg->reg)) continue; icnss_put_vreg_single(priv, vreg); } } Loading Loading @@ -422,15 +406,6 @@ int icnss_get_clk_single(struct icnss_priv *priv, return 0; } static void icnss_put_clk_single(struct icnss_priv *priv, struct icnss_clk_info *clk_info) { struct device *dev = &priv->pdev->dev; icnss_pr_dbg("Put clock: %s\n", clk_info->cfg.name); devm_clk_put(dev, clk_info->clk); } static int icnss_clk_on_single(struct icnss_clk_info *clk_info) { int ret; Loading Loading @@ -520,14 +495,11 @@ int icnss_get_clk(struct icnss_priv *priv) sizeof(clk_info->cfg)); ret = icnss_get_clk_single(priv, clk_info); if (ret != 0) { if (clk_info->cfg.required) { devm_kfree(dev, clk_info); if (clk_info->cfg.required) goto cleanup; } else { devm_kfree(dev, clk_info); else continue; } } list_add_tail(&clk_info->list, clk_list); } Loading @@ -538,10 +510,6 @@ int icnss_get_clk(struct icnss_priv *priv) clk_info = list_first_entry(clk_list, struct icnss_clk_info, list); list_del(&clk_info->list); if (IS_ERR_OR_NULL(clk_info->clk)) continue; icnss_put_clk_single(priv, clk_info); devm_kfree(dev, clk_info); } return ret; Loading @@ -563,10 +531,6 @@ void icnss_put_clk(struct icnss_priv *priv) clk_info = list_first_entry(clk_list, struct icnss_clk_info, list); list_del(&clk_info->list); if (IS_ERR_OR_NULL(clk_info->clk)) continue; icnss_put_clk_single(priv, clk_info); devm_kfree(dev, clk_info); } } Loading Loading
drivers/soc/qcom/icnss2/main.c +9 −6 Original line number Diff line number Diff line Loading @@ -2870,7 +2870,7 @@ static int icnss_probe(struct platform_device *pdev) if (!of_id || !of_id->data) { icnss_pr_err("Failed to find of match device!\n"); ret = -ENODEV; goto out; goto out_reset_drvdata; } device_id = of_id->data; Loading @@ -2894,15 +2894,15 @@ static int icnss_probe(struct platform_device *pdev) ret = icnss_resource_parse(priv); if (ret) goto out; goto out_reset_drvdata; ret = icnss_msa_dt_parse(priv); if (ret) goto out; goto out_free_resources; ret = icnss_smmu_dt_parse(priv); if (ret) goto out; goto out_free_resources; spin_lock_init(&priv->event_lock); spin_lock_init(&priv->on_off_lock); Loading Loading @@ -2965,9 +2965,10 @@ static int icnss_probe(struct platform_device *pdev) destroy_workqueue(priv->event_wq); smmu_cleanup: priv->iommu_domain = NULL; out: out_free_resources: icnss_put_resources(priv); out_reset_drvdata: dev_set_drvdata(dev, NULL); return ret; } Loading Loading @@ -3004,6 +3005,8 @@ static int icnss_remove(struct platform_device *pdev) icnss_hw_power_off(priv); icnss_put_resources(priv); dev_set_drvdata(&pdev->dev, NULL); return 0; Loading
drivers/soc/qcom/icnss2/power.c +4 −40 Original line number Diff line number Diff line Loading @@ -138,16 +138,6 @@ static int icnss_get_vreg_single(struct icnss_priv *priv, return ret; } static void icnss_put_vreg_single(struct icnss_priv *priv, struct icnss_vreg_info *vreg) { struct device *dev = &priv->pdev->dev; icnss_pr_dbg("Put regulator: %s\n", vreg->cfg.name); devm_regulator_put(vreg->reg); devm_kfree(dev, vreg); } static int icnss_vreg_on_single(struct icnss_vreg_info *vreg) { int ret = 0; Loading Loading @@ -309,14 +299,11 @@ int icnss_get_vreg(struct icnss_priv *priv) memcpy(&vreg->cfg, &vreg_cfg[i], sizeof(vreg->cfg)); ret = icnss_get_vreg_single(priv, vreg); if (ret != 0) { if (ret == -ENODEV) { devm_kfree(dev, vreg); if (ret == -ENODEV) continue; } else { devm_kfree(dev, vreg); else return ret; } } list_add_tail(&vreg->list, vreg_list); } Loading @@ -332,9 +319,6 @@ void icnss_put_vreg(struct icnss_priv *priv) vreg = list_first_entry(vreg_list, struct icnss_vreg_info, list); list_del(&vreg->list); if (IS_ERR_OR_NULL(vreg->reg)) continue; icnss_put_vreg_single(priv, vreg); } } Loading Loading @@ -422,15 +406,6 @@ int icnss_get_clk_single(struct icnss_priv *priv, return 0; } static void icnss_put_clk_single(struct icnss_priv *priv, struct icnss_clk_info *clk_info) { struct device *dev = &priv->pdev->dev; icnss_pr_dbg("Put clock: %s\n", clk_info->cfg.name); devm_clk_put(dev, clk_info->clk); } static int icnss_clk_on_single(struct icnss_clk_info *clk_info) { int ret; Loading Loading @@ -520,14 +495,11 @@ int icnss_get_clk(struct icnss_priv *priv) sizeof(clk_info->cfg)); ret = icnss_get_clk_single(priv, clk_info); if (ret != 0) { if (clk_info->cfg.required) { devm_kfree(dev, clk_info); if (clk_info->cfg.required) goto cleanup; } else { devm_kfree(dev, clk_info); else continue; } } list_add_tail(&clk_info->list, clk_list); } Loading @@ -538,10 +510,6 @@ int icnss_get_clk(struct icnss_priv *priv) clk_info = list_first_entry(clk_list, struct icnss_clk_info, list); list_del(&clk_info->list); if (IS_ERR_OR_NULL(clk_info->clk)) continue; icnss_put_clk_single(priv, clk_info); devm_kfree(dev, clk_info); } return ret; Loading @@ -563,10 +531,6 @@ void icnss_put_clk(struct icnss_priv *priv) clk_info = list_first_entry(clk_list, struct icnss_clk_info, list); list_del(&clk_info->list); if (IS_ERR_OR_NULL(clk_info->clk)) continue; icnss_put_clk_single(priv, clk_info); devm_kfree(dev, clk_info); } } Loading