Message ID | 20220815090125.27705-7-peterwu.pub@gmail.com |
---|---|
State | New |
Headers | show |
Series | Add MediaTek MT6370 PMIC support | expand |
Hi ChiaEn, On 8/15/22 12:01, ChiaEn Wu wrote: > From: ChiaEn Wu <chiaen_wu@richtek.com> > > Add linear_range_idx macro for declaring the linear_range struct simply. > > Signed-off-by: ChiaEn Wu <chiaen_wu@richtek.com> > --- > include/linux/linear_range.h | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/include/linux/linear_range.h b/include/linux/linear_range.h > index fd3d0b358f22..fb53ea13c593 100644 > --- a/include/linux/linear_range.h > +++ b/include/linux/linear_range.h > @@ -26,6 +26,14 @@ struct linear_range { > unsigned int step; > }; > > +#define LINEAR_RANGE_IDX(_min, _min_sel, _max_sel, _step) \ > + { \ > + .min = _min, \ > + .min_sel = _min_sel, \ > + .max_sel = _max_sel, \ > + .step = _step, \ > + } > + I think this somewhat differs from what you had originally scetched. Eg, if I didn't misread the patch earlier - you had: #define MT6370_CHG_LINEAR_RANGE(_rfd, _min, _min_sel, _max_sel, _step) \ [_rfd] = { \ ... instead of the > +#define LINEAR_RANGE_IDX(_min, _min_sel, _max_sel, _step) \ > + { \ I think the latter (without the []-index) is more generic, and very welcome. However, the IDX-suffix does no longer make much sense, right? I suggested name LINEAR_RANGE_IDX for macro taking the array index as it would also be useful when dealing with arrays. Do you think you could still drop the IDX from macro name or keep the array index as the original did? Maybe ideally introduce both macros (unless Mark has objections), one with the [_rfd] and suffix IDX, and the other w/o the suffix and w/o the [_rfd]? Thanks for the improvements and the patience! ;) Yours -- Matti
diff --git a/include/linux/linear_range.h b/include/linux/linear_range.h index fd3d0b358f22..fb53ea13c593 100644 --- a/include/linux/linear_range.h +++ b/include/linux/linear_range.h @@ -26,6 +26,14 @@ struct linear_range { unsigned int step; }; +#define LINEAR_RANGE_IDX(_min, _min_sel, _max_sel, _step) \ + { \ + .min = _min, \ + .min_sel = _min_sel, \ + .max_sel = _max_sel, \ + .step = _step, \ + } + unsigned int linear_range_values_in_range(const struct linear_range *r); unsigned int linear_range_values_in_range_array(const struct linear_range *r, int ranges);