Quoting Taniya Das (2018-05-02 03:51:17) > + ret = devm_clk_hw_register(&pdev->dev, hw_clks[i]); > + if (ret) { > + dev_err(&pdev->dev, "failed to register %s\n", > + hw_clks[i]->init->name); > + goto err; > + } > + > + rpmh_clk->dev = &pdev->dev; > + } > + > + ret = devm_of_clk_add_hw_provider(&pdev->dev, of_clk_rpmh_hw_get, > + (void *) desc); Drop the void cast. > + if (ret) { > + dev_err(&pdev->dev, "Failed to add clock provider\n"); > + goto err; > + } > + > + dev_dbg(&pdev->dev, "Registered RPMh clocks\n"); > + > + return 0; > +err: > + if (rpmh_client) > + rpmh_release(rpmh_client); > + > + return ret; > +} > + > +static int clk_rpmh_remove(struct platform_device *pdev) > +{ > + const struct clk_rpmh_desc *desc = > + of_device_get_match_data(&pdev->dev); > + struct clk_hw **hw_clks = desc->clks; > + struct clk_rpmh *rpmh_clk = to_clk_rpmh(hw_clks[0]); > + > + rpmh_release(rpmh_clk->rpmh_client); > + > + return 0; > +} I'll review Lina's series again. Still hoping to drop the client thing. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html