On Thu, Oct 10, 2019 at 5:19 AM Candle Sun <candlesea@xxxxxxxxx> wrote: > > On Thu, Oct 10, 2019 at 2:00 AM Jiri Kosina <jikos@xxxxxxxxxx> wrote: > > > > On Wed, 9 Oct 2019, Nicolas Saenz Julienne wrote: > > > > > > diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c > > > > index 3eaee2c..3394222 100644 > > > > --- a/drivers/hid/hid-core.c > > > > +++ b/drivers/hid/hid-core.c > > > > @@ -35,6 +35,8 @@ > > > > > > > > #include "hid-ids.h" > > > > > > > > +#define GET_COMPLETE_USAGE(page, id) (((page) << 16) + ((id) & 0xffff)) > > > > > > Not sure I like the macro. I'd rather have the explicit code. That said, lets > > > see what Benjamin has to say. > > > > Not sure about Benjamin :) but I personally would ask for putting it > > somewhere into hid.h as static inline. > > > > And even if it's for some reason insisted on this staying macro, please at > > least put it as close to the place(s) it's being used as possible, in > > order to maintain some code sanity. > > > > Thanks, > > > > -- > > Jiri Kosina > > SUSE Labs > > > > Thanks Nicolas and Jiri, > If macro is not good, I will change it to static function. But the > funciton is only used in hid-core.c, > maybe placing it into hid.h is not good? I would rather use a function too (in hid-core.c, as it's not reused anywhere else), and we can make it simpler from the caller point of view (if I am not mistaken): --- static void concatenate_usage_page(struct hid_parser *parser, int index) { parser->local.usage[index] &= 0xFFFF; parser->local.usage[index] |= (parser->global.usage_page & 0xFFFF) << 16; } // Which can then be called as: + parser->local.usage[parser->local.usage_index] = usage; + if (size <= 2) + concatenate_usage_page(parser, parser->local.usage_index); + // And for (i = 0; i < parser->local.usage_index; i++) - if (parser->local.usage_size[i] <= 2) - parser->local.usage[i] += parser->global.usage_page << 16; + if (parser->local.usage_size[i] <= 2) { + concatenate_usage_page(parser, i); + } } --- And now that I have written this, the check on the size could also be very well integrated in concatenate_usage_page(). Cheers, Benjamin > > Regards, > Candle