clk: introduce clk_is_match
authorMichael Turquette <mturquette@linaro.org>
Wed, 25 Feb 2015 17:11:01 +0000 (09:11 -0800)
committerStephen Boyd <sboyd@codeaurora.org>
Wed, 11 Mar 2015 22:56:59 +0000 (15:56 -0700)
commit3d3801effda19b21012b5d1981e96cc277df85fd
treea3255b002f17851376204e909f3e69b5a3c6fc0c
parentf55ac0655a6e42d8299b78c23ee70301f7956d5e
clk: introduce clk_is_match

Some drivers compare struct clk pointers as a means of knowing
if the two pointers reference the same clock hardware. This behavior is
dubious (drivers must not dereference struct clk), but did not cause any
regressions until the per-user struct clk patch was merged. Now the test
for matching clk's will always fail with per-user struct clk's.

clk_is_match is introduced to fix the regression and prevent drivers
from comparing the pointers manually.

Fixes: 035a61c314eb ("clk: Make clk API return per-user struct clk instances")
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Signed-off-by: Michael Turquette <mturquette@linaro.org>
[arnd@arndb.de: Fix COMMON_CLK=N && HAS_CLK=Y config]
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
[sboyd@codeaurora.org: const arguments to clk_is_match() and
remove unnecessary ternary operation]
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
drivers/clk/clk.c
include/linux/clk.h