On 09/24/12 15:32, Saravana Kannan wrote:
quoted
@@ -275,8 +275,11 @@ static int msm_iommu_remove(struct
platform_device *pdev)
drv = platform_get_drvdata(pdev);
if (drv) {
- if (drv->clk)
+ if (drv->clk) {
+ clk_unprepare(drv->clk);
clk_put(drv->clk);
+ }
+ clk_unprepare(drv->pclk);
Are these changes right? Every other clk API change in this patch is
using the combined prepare_enable/disable_unprepare() calls. So, when
would we end up at this location with the clocks prepared but not
enabled?
Also, what if the device gets probed and then immediately removed.
Will it work correctly?
It should work correctly. If you look at the bottom of msm_iommu_probe()
you see that it call clk_disable() and doesn't unprepare the clock. So
if the driver is unbound the clocks should be disabled but still prepared.
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation