On 09/25/2013 12:12 AM, Andrew Bresticker wrote:
+static int exynos_audss_clk_remove(struct platform_device *pdev)
+{
+ int i;
+
+ of_clk_del_provider(pdev->dev.of_node);
+
+ for (i = 0; i< EXYNOS_AUDSS_MAX_CLKS; i++) {
+ if (!IS_ERR_OR_NULL(clk_table[i]))
+ clk_unregister(clk_table[i]);
+ }
Since we only get here if all the clocks are registered properly and we
always register EXYNOS_AUDSS_MAX_CLKS clocks, couldn't this simply be:
for (i = 0; i< EXYNOS_AUDSS_MAX_CLKS; i++)
clk_unregister(clk_table[i]);
?
Once support is added for Exynos5420, we won't always register
EXYNOS_AUDSS_MAX_CLKS clocks, so we'd still need the NULL check.
Then couldn't you use clk_data.clk_num in this loop instead of
EXYNOS_AUDSS_MAX_CLKS ? What I'm trying to avoid is assuming NULL as
an invalid clock. It's not correct, clock pointers should be only tested
with ERR_PTR(). Alternatively you could set the whole clk_table array to,
e.g. ERR_PTR(-EINVAL) beforehand, but that shouldn't be necessary when
clk_data.clk_num is used, unless there are holes in the array.
--
Regards,
Sylwester
--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html