On Thu, Jan 18, 2024 at 8:11 PM Mark Brown <broonie@xxxxxxxxxx> wrote: > On Thu, Jan 18, 2024 at 07:41:54PM +0200, andy.shevchenko@xxxxxxxxx wrote: > > Fri, Aug 04, 2023 at 11:46:02AM +0100, Charles Keepax kirjoitti: > > > > + unsigned int hs2 = 0x2 << CS42L43_HSDET_MODE_SHIFT; > > > BIT(1) ? > > Given that this is writing a value into a register field called "MODE" > it seems very likely that it's an enumeration value rather than a > bitmask (and similarly for all the other places where you're making > similar comments). Please think a bit more about the code being > commented on when making these minor stylistic comments. I read a bit further and have given a comment about this as you put it above that they are plain values. Please, read my comments in full. ... > > > +static const char * const cs42l43_jack_text[] = { > > > + "None", "CTIA", "OMTP", "Headphone", "Line-Out", > > > + "Line-In", "Microphone", "Optical", > > > Better to have this by power of 2 blocks (seems it's related to the possible > > values ranges in the HW). > > If it's just a coincidence that there are 8 of them, perhaps other (logical) > > grouping is better? > > This is probably well within the realm of driver author taste... No objection, just a question. ... > > > + // Don't use devm as we need to get against the MFD device > > > This is weird... > > This is normal, the splitting into subdevices is often a purely Linux > internal thing and not represented in the firmware description so > external resources are linked to the top level. I meant the weirdness of mixing devm_ with non-devm_ in a way that ->remove() can be broken to the extent of oopses or crashes. -- With Best Regards, Andy Shevchenko