On Tue, Apr 16, 2024 at 1:09 PM Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxx> wrote: > > From: Maciej Strozek <mstrozek@xxxxxxxxxxxxxxxxxxxxx> > > On some cs42l43 systems a couple of cs35l56 amplifiers are attached > to the cs42l43's SPI and I2S. On Windows the cs42l43 is controlled > by a SDCA class driver and these two amplifiers are controlled by > firmware running on the cs42l43. However, under Linux the decision > was made to interact with the cs42l43 directly, affording the user > greater control over the audio system. However, this has resulted > in an issue where these two bridged cs35l56 amplifiers are not > populated in ACPI and must be added manually. > > Check for the presence of the "01fa-cirrus-sidecar-instances" property > in the SDCA extension unit's ACPI properties to confirm the presence > of these two amplifiers and if they exist add them manually onto the > SPI bus. ... > +static void cs42l43_release_sw_node(void *data) > +{ > + software_node_unregister(&cs42l43_gpiochip_swnode); > +} ... > + ret = devm_add_action(priv->dev, cs42l43_release_sw_node, NULL); > + if (ret) { > + software_node_unregister(&cs42l43_gpiochip_swnode); This is not needed when you use devm_add_action_or_reset(); that's why I mentioned that API and not simple devm_add_action(). Can be fixed later of course, not a big deal. > + return ret; > + } -- With Best Regards, Andy Shevchenko