On Fri, May 24, 2019 at 10:22:06AM +0530, Yash Shah wrote: > On Thu, May 23, 2019 at 8:24 PM Andrew Lunn <andrew@xxxxxxx> wrote: > > > > > +static int fu540_macb_tx_set_rate(struct clk_hw *hw, unsigned long rate, > > > + unsigned long parent_rate) > > > +{ > > > + rate = fu540_macb_tx_round_rate(hw, rate, &parent_rate); > > > + iowrite32(rate != 125000000, mgmt->reg); > > > > That looks odd. Writing the result of a comparison to a register? > > The idea was to write "1" to the register if the value of rate is > anything else than 125000000. I'm not a language lawyer. Is it guaranteed that an expression like this returns 1? Any value !0 is true, so maybe it actually returns 42? > To make it easier to read, I will change this to below: > - iowrite32(rate != 125000000, mgmt->reg); > + if (rate != 125000000) > + iowrite32(1, mgmt->reg); > + else > + iowrite32(0, mgmt->reg); > > Hope that's fine. Thanks for your comment Yes, that is good. Andrew