diff --git a/drivers/clk/qcom/clk-regmap.c b/drivers/clk/qcom/clk-regmap.c index a6c2e4b4bce6..c1e76bbe0e54 100644 --- a/drivers/clk/qcom/clk-regmap.c +++ b/drivers/clk/qcom/clk-regmap.c @@ -13,7 +13,7 @@ #include "clk-debug.h" static LIST_HEAD(clk_regmap_list); -static DEFINE_MUTEX(clk_regmap_lock); +static DEFINE_SPINLOCK(clk_regmap_lock); /** * clk_is_enabled_regmap - standard is_enabled() for regmap users @@ -251,14 +251,14 @@ bool clk_is_regmap_clk(struct clk_hw *hw) bool is_regmap_clk = false; if (hw) { - mutex_lock(&clk_regmap_lock); + spin_lock(&clk_regmap_lock); list_for_each_entry(rclk, &clk_regmap_list, list_node) { if (&rclk->hw == hw) { is_regmap_clk = true; break; } } - mutex_unlock(&clk_regmap_lock); + spin_unlock(&clk_regmap_lock); } return is_regmap_clk; @@ -299,9 +299,9 @@ int devm_clk_register_regmap(struct device *dev, struct clk_regmap *rclk) ret = devm_clk_hw_register(dev, &rclk->hw); if (!ret) { - mutex_lock(&clk_regmap_lock); + spin_lock(&clk_regmap_lock); list_add(&rclk->list_node, &clk_regmap_list); - mutex_unlock(&clk_regmap_lock); + spin_unlock(&clk_regmap_lock); ret = clk_hw_debug_register(dev, &rclk->hw); }