[PATCH 03/10] msm: iommu: Convert to clk_prepare/unprepare

Stephen Boyd sboyd at codeaurora.org
Tue Sep 25 16:16:40 EDT 2012


On 09/24/12 15:32, Saravana Kannan wrote:
>> @@ -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




More information about the linux-arm-kernel mailing list