On 10/22/2019 7:44 PM, 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.
(Sorry for the late reply, I am back today from sick leave.)
Noted. Will take care of it.
+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 for pointing it.
But, I found bitfields are not contiguous during few function calls, so
cannot use them here.
Regards,
Dilip