On Thu, 18 Jul 2019 at 21:49, Cezary Rojewski <cezary.rojewski@xxxxxxxxx> wrote: > > On 2019-07-18 20:42, Cezary Rojewski wrote: > > On 2019-07-18 11:02, Oleksandr Suvorov wrote: > >> +enum { > >> + HP_POWER_EVENT, > >> + DAC_POWER_EVENT, > >> + ADC_POWER_EVENT, > >> + LAST_POWER_EVENT > >> +}; > >> + > >> +static u16 mute_mask[] = { > >> + SGTL5000_HP_MUTE, > >> + SGTL5000_OUTPUTS_MUTE, > >> + SGTL5000_OUTPUTS_MUTE > >> +}; > > > > If mute_mask[] is only used within common handler, you may consider > > declaring const array within said handler instead (did not check that > > myself). > > Otherwise, simple comment for the second _OUTPUTS_MUTE should suffice - > > its not self explanatory why you doubled that mask. Ok, I'll add a comment to explain doubled mask. > > > >> + > >> /* sgtl5000 private structure in codec */ > >> struct sgtl5000_priv { > >> int sysclk; /* sysclk rate */ > >> @@ -137,8 +157,109 @@ struct sgtl5000_priv { > >> u8 micbias_voltage; > >> u8 lrclk_strength; > >> u8 sclk_strength; > >> + u16 mute_state[LAST_POWER_EVENT]; > >> }; > > > > When I spoke of LAST enum constant, I did not really had this specific > > usage in mind. > > > > From design perspective, _LAST_ does not exist and should never be > > referred to as "the next option" i.e.: new enum constant. By its nature, LAST_POWER_EVENT is actually a size of the array, but I couldn't come up with a better name. > > That is way preferred usage is: > > u16 mute_state[ADC_POWER_EVENT+1; > > -or- > > u16 mute_state[LAST_POWER_EVENT+1]; > > > > Maybe I'm just being radical here :) Maybe :) I don't like first variant (ADC_POWER_EVENT+1): somewhen in future, someone can add a new event to this enum and we've got a possible situation with "out of array indexing". > > > > Czarek > > Forgive me for double posting. Comment above is targeted towards: > > >> +enum { > >> + HP_POWER_EVENT, > >> + DAC_POWER_EVENT, > >> + ADC_POWER_EVENT, > >> + LAST_POWER_EVENT > >> +}; > > as LAST_POWER_EVENT is not assigned explicitly to ADC_POWER_EVENT and > thus generates implicit "new option" of value 3. So will you be happy with the following variant? ... ADC_POWER_EVENT, LAST_POWER_EVENT = ADC_POWER_EVENT, ... u16 mute_state[LAST_POWER_EVENT+1]; ... -- Best regards Oleksandr Suvorov Toradex AG Altsagenstrasse 5 | 6048 Horw/Luzern | Switzerland | T: +41 41 500 4800 (main line)