On 26/07/2024 10:13, Charles Keepax wrote: > On Thu, Jul 25, 2024 at 12:31:40PM +0200, Javier Carrasco wrote: >> The instances of the `snd_soc_component_driver` struct are not modified >> after their declaration, and they are only passed to >> `devm_snd_soc_register_component()`, which expects a constant >> `snd_soc_component_driver`. >> >> Move all instances of `snd_soc_component_driver` to read-only sections >> by declaring them const. >> >> Signed-off-by: Javier Carrasco <javier.carrasco.cruz@xxxxxxxxx> >> --- >> sound/soc/codecs/cs43130.c | 2 +- > >> -static struct snd_soc_component_driver soc_component_dev_cs43130 = { >> +static const struct snd_soc_component_driver soc_component_dev_cs43130 = { >> .probe = cs43130_probe, >> .controls = cs43130_snd_controls, >> .num_controls = ARRAY_SIZE(cs43130_snd_controls), > > This won't work for cs43130, whilst what the driver does is > clearly slightly sketch it directly modifies this struct before > registering it with ASoC. That would need fixed first before this > change can be made. > > Thanks, > Charles Hi Charles, thanks a lot for pointing this out, somehow I failed to compile cs43130 and sti-sas, which are the only two cases in the kernel that do modify snd_soc_component_driver after the declaration. The rest don't do that and I just double checked that they compile cleanly. Those two cases where modifications are required rely on values that are not known until they are probed. I think it makes then sense that they are left as they are, so I will drop both drivers for v2. Best regards, Javier Carrasco