On Tue, Oct 22, 2019 at 02:44:13PM +0300, andriy.shevchenko@xxxxxxxxx wrote: > On Tue, Oct 22, 2019 at 06:18:57PM +0800, Dilip Kota wrote: > > On 10/21/2019 6:44 PM, Dilip Kota wrote: > > > On 10/21/2019 4:29 PM, Gustavo Pimentel wrote: > > > > On Mon, Oct 21, 2019 at 7:39:19, Dilip Kota > > > > <eswara.kota@xxxxxxxxxxxxxxx> > > > > wrote: > > First of all, it's a good behaviour to avoid way long quoting. > > > > > > +static void pcie_update_bits(void __iomem *base, u32 mask, u32 > > > > > val, u32 ofs) > > > > > +{ > > > > > + u32 orig, tmp; > > > > > + > > > > > + orig = readl(base + ofs); > > > > > + > > > > > + tmp = (orig & ~mask) | (val & mask); > > > > > + > > > > > + if (tmp != orig) > > > > > + writel(tmp, base + ofs); > > > > > +} > > > > I'd suggest to the a take on FIELD_PREP() and FIELD_GET() and use more > > > > intuitive names such as new and old, instead of orig and tmp. > > > Sure, i will update it. > > I tried using FIELD_PREP and FIELD_GET but it is failing because FIELD_PREP > > and FIELD_GET > > are expecting mask should be constant macro. u32 or u32 const are not > > accepted. > > If you look at bitfield.h carefully you may find in particular > u32_replace_bits(). Thanks Andy - I was looking for something like this when I was reviewing the patch but wasn't able to find it. Andrew Murray > > -- > With Best Regards, > Andy Shevchenko > >