(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@xxxxxxxxxxxx> 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/+/1524422): > "" > 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);