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(). -- With Best Regards, Andy Shevchenko