On Thu, Jan 18, 2024 at 8:11 PM Mark Brown broonie@kernel.org wrote:
On Thu, Jan 18, 2024 at 07:41:54PM +0200, andy.shevchenko@gmail.com 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.