On Tue, Jun 5, 2018 at 2:38 AM, Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> wrote: > On Mon, 2018-06-04 at 22:21 +0300, Andy Shevchenko wrote: >> > +#define I2C_INT_ENABLE 0x0000ff80 >> > +#define I2C_INT_ERR 0x0000fcc0 >> >> Now it looks like a flags combinations. >> For me as for reader would be better to see quickly a decoded line. >> >> My proposal is to introduce something like following >> >> _INT_ALL GENMASK() >> _INT_ENABLE (_INT_ALL & ~(_FOO | _BAR)) >> _INT_ERR ... similar way as above ... >> >> What do you think? > > I don't think this absolutely needs to change but yes, open coding is > error prone. However I would think it more readable to use positive > logic and just list all the bits that are *set* even if it's a bit more > text: > > #define I2C_INT_ERR (I2C_INT_INV_CMD |\ > I2C_INT_PARITY |\ > I2C_INT_BE_OVERRUN |\ > .../...) > > #define I2C_INT_ENABLE (I2C_INT_ERR |\ > I2C_INT_DAT_REQ |\ > I2C_INT_CMD_COMP) Yep, it's fine. I prefered though slightly different style (not putting first value on the same line with #define), but it doesn't matter. > > Note: Eddie, I notice I2C_INT_BUSY is in "ERR" but not in "ENABLE", any > reason for that ? Exactly the reason why I payid attention on these values. -- With Best Regards, Andy Shevchenko