On Fri, Aug 07, 2020 at 01:06:37PM +0200, Cezary Rojewski wrote: > Declare base structures, registers and device routines for the catpt > solution. Catpt deprecates and is a direct replacement for > sound/soc/intel/haswell. Supports Lynxpoint and Wildcat Point both. ... > +struct catpt_mregion { > + u32 start; > + u32 end; > + bool busy; > + struct list_head node; > +}; I'm wondering if struct resource can be used instead. You know that you may introduce a new type of resource if you want to. > +static inline size_t catpt_mregion_size(const struct catpt_mregion *reg) > +{ > + return reg->end - reg->start + 1; > +} > + > +/* True if region r1 intersects region r2 */ > +static inline bool catpt_mregion_intersects(struct catpt_mregion *r1, > + struct catpt_mregion *r2) > +{ > + return (r1->start >= r2->start && r1->start <= r2->end) || > + (r1->end >= r2->start && r1->end <= r2->end); > +} > + > +static inline bool catpt_mregion_intersecting(struct catpt_mregion *r1, > + struct catpt_mregion *r2, > + struct catpt_mregion *ret) > +{ > + if (!catpt_mregion_intersects(r1, r2)) > + return false; > + ret->start = max(r1->start, r2->start); > + ret->end = min(r1->end, r2->end); > + return true; > +} Yeah, it reminds the existing resource infrastructure. Why to repeat it? -- With Best Regards, Andy Shevchenko