On Wed, Jul 13, 2022 at 12:07:29PM +0200, Andy Shevchenko wrote: > On Wed, Jul 13, 2022 at 3:39 AM Kent Gibson <warthog618@xxxxxxxxx> wrote: > > > > Combine the polarity_change flag, struct line eflags, and hte enable > > flag into a single flag variable. > > > > The combination of these flags describes the configuration state > > of the edge detector, so formalize and clarify that by combining > > them into a single variable, edflags, in struct line. > > > > The edflags is a subset of the GPIO_V2_LINE_FLAGsb relevant to > > the edge detector, and is also a superset of the eflags it replaces. > > The eflags name is still used to describe the subset of edflags > > corresponding to the rising/falling edge flags where edflags is > > masked down to that subset. > > > > This consolidation reduces the number of variables being passed, > > simplifies state comparisons, and provides a more extensible > > foundation should additional edge sources be integrated in the > > future. > > I believe that you have checked this from a locking perspective, so we > won't have worse lock contamination, if any. > Yeah, they are used in the same way as the old eflags, so there is no change in that regard. > ... > > > struct linereq *lr; > > struct gpio_v2_line_event le; > > int level; > > - u64 eflags; > > + u64 edflags; > > I would at the same time move it up before `int level;`. > Ok. What is the general rule you want applied, cos I'm not seeing it. Cheers, Kent. > ... > > > + int level = -1, diff_seqno; > > + u64 eflags, edflags = READ_ONCE(line->edflags); > > Ditto. > > ... > > > u32 debounce_period_us; > > unsigned long irqflags = 0; > > int irq, ret; > > + u64 eflags; > > Ditto for similarity. > > -- > With Best Regards, > Andy Shevchenko