(Please trim replies to save me time)
Quoting Nicolas Boichat (2019-03-14 16:21:26)
On Tue, Mar 5, 2019 at 1:06 PM Weiyi Lu weiyi.lu@mediatek.com wrote:
+static u8 mtk_clk_mux_get_parent(struct clk_hw *hw) +{
struct mtk_clk_mux *mux = to_mtk_clk_mux(hw);
u32 mask = GENMASK(mux->data->mux_width - 1, 0);
u32 val;
regmap_read(mux->regmap, mux->data->mux_ofs, &val);
val = (val >> mux->data->mux_shift) & mask;
return val;
+}
+static int mtk_clk_mux_set_parent_lock(struct clk_hw *hw, u8 index) +{
struct mtk_clk_mux *mux = to_mtk_clk_mux(hw);
u32 mask = GENMASK(mux->data->mux_width - 1, 0);
unsigned long flags;
Guenter reported the following issue (https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/1...): "" The construct conditionally acquiring a spinlock is too complex for gcc to understand. This results in the following build warning.
drivers/clk/mediatek/clk-mux.c: In function 'mtk_clk_mux_set_parent_lock': ./include/linux/spinlock.h:279:3: warning: 'flags' may be used uninitialized in this function
Other clock drivers avoid the problem by initializing flags with 0. Lets do that here as well. """
Ok. I'll squash in this fix.
diff --git a/drivers/clk/mediatek/clk-mux.c b/drivers/clk/mediatek/clk-mux.c index 877a883fa616..76f9cd039195 100644 --- a/drivers/clk/mediatek/clk-mux.c +++ b/drivers/clk/mediatek/clk-mux.c @@ -76,7 +76,7 @@ static int mtk_clk_mux_set_parent_lock(struct clk_hw *hw, u8 index) { struct mtk_clk_mux *mux = to_mtk_clk_mux(hw); u32 mask = GENMASK(mux->data->mux_width - 1, 0); - unsigned long flags; + unsigned long flags = 0;
if (mux->lock) spin_lock_irqsave(mux->lock, flags); @@ -99,7 +99,7 @@ static int mtk_clk_mux_set_parent_setclr_lock(struct clk_hw *hw, u8 index) struct mtk_clk_mux *mux = to_mtk_clk_mux(hw); u32 mask = GENMASK(mux->data->mux_width - 1, 0); u32 val, orig; - unsigned long flags; + unsigned long flags = 0;
if (mux->lock) spin_lock_irqsave(mux->lock, flags);