On Mon, Apr 08, 2019 at 10:41:06AM +0300, Mika Westerberg wrote: > On Mon, Apr 08, 2019 at 12:21:03PM +0800, Chris Chiu wrote: > > +static void static u32 (see below why) > > +intel_gpio_update_pad_mode(void __iomem *hostown, u32 mask, u32 value) > > +{ > > + u32 curr = readl(hostown); > > + u32 updated = (curr & ~mask) | (value & mask); > > I think here we should first complain if the expected ownership is not > correct. Warning or info level probably enough. It is easy to achieve, something like if ((value ^ saved) & requeted) dev_warn(...); See also below. (I had mentioned this earlier) > > + return writel(updated, hostown); writel() is a void function, this is wrong. We need to return curr instead to make above working to issue a warning message. > Also if the pin is not requested and not changed we should not touch the > register. I don't think it brings any value here, if mask is 0 we will write back the same value we read. > Otherwise this looks good to me. -- With Best Regards, Andy Shevchenko