[PATCH 1/1] ASoC: cs42l51: add soft dependency declaration
When configured as module, CS42L51 codec driver uses two modules snd-soc-cs42l51 and snd-soc-cs42l51-i2c. Add soft dependency on snd-soc-cs42l51-i2c in snd-soc-cs42l51, to allow smart module dependency solving.
Signed-off-by: Olivier Moysan olivier.moysan@st.com --- sound/soc/codecs/cs42l51.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/sound/soc/codecs/cs42l51.c b/sound/soc/codecs/cs42l51.c index 097c4e8d9950..1630baad42e2 100644 --- a/sound/soc/codecs/cs42l51.c +++ b/sound/soc/codecs/cs42l51.c @@ -814,4 +814,5 @@ EXPORT_SYMBOL_GPL(cs42l51_of_match);
MODULE_AUTHOR("Arnaud Patard arnaud.patard@rtp-net.org"); MODULE_DESCRIPTION("Cirrus Logic CS42L51 ALSA SoC Codec Driver"); +MODULE_SOFTDEP("pre: snd-soc-cs42l51-i2c"); MODULE_LICENSE("GPL");
On Fri, Oct 02, 2020 at 05:29:04PM +0200, Olivier Moysan wrote:
When configured as module, CS42L51 codec driver uses two modules snd-soc-cs42l51 and snd-soc-cs42l51-i2c. Add soft dependency on snd-soc-cs42l51-i2c in snd-soc-cs42l51, to allow smart module dependency solving.
Doesn't the userspace tooling usually manage to figure this out from symbol usage?
Hello Mark,
On 10/2/20 5:41 PM, Mark Brown wrote:
On Fri, Oct 02, 2020 at 05:29:04PM +0200, Olivier Moysan wrote:
When configured as module, CS42L51 codec driver uses two modules snd-soc-cs42l51 and snd-soc-cs42l51-i2c. Add soft dependency on snd-soc-cs42l51-i2c in snd-soc-cs42l51, to allow smart module dependency solving.
Doesn't the userspace tooling usually manage to figure this out from symbol usage?
cs42l51.c does not use symbols from cs42l51-i2c.c, so cs42l51-i2c does not appear as a software dependency of cs42l51, for tools such as depmod. (cs42l51-i2c.c uses symbols from cs42l51.c, so there is a dependency in this way, but this does not help here)
When enabling a sound card based on cs42l51, all required modules are loaded automatically, excepted snd-soc-cs42l51-i2c module. This one has to be inserted explicitely.
With the use of softdep, cs42l51-i2c appears as a dependency of cs42l51 for depmod, which allows the probe of snd-soc-cs42l51-i2c.
If you think there is a better way to manage this dependency please let me know.
Regards Olivier
On Mon, Oct 05, 2020 at 03:01:23PM +0000, Olivier MOYSAN wrote:
On 10/2/20 5:41 PM, Mark Brown wrote:
On Fri, Oct 02, 2020 at 05:29:04PM +0200, Olivier Moysan wrote:
When configured as module, CS42L51 codec driver uses two modules snd-soc-cs42l51 and snd-soc-cs42l51-i2c. Add soft dependency on snd-soc-cs42l51-i2c in snd-soc-cs42l51, to allow smart module dependency solving.
Please fix your mail client, the formatting is completely broken - there's nothing distinguishing quoted and new text and you've got lines well over 80 columns.
Doesn't the userspace tooling usually manage to figure this out from symbol usage?
cs42l51.c does not use symbols from cs42l51-i2c.c, so cs42l51-i2c does not appear as a software dependency of cs42l51, for tools such as depmod. (cs42l51-i2c.c uses symbols from cs42l51.c, so there is a dependency in this way, but this does not help here)
But that's the dependency that exists and we want - the I2C driver is what has the bus bindings in it and will be what we decide to load to instantiate the device, that will then pull in the core code that it needs.
When enabling a sound card based on cs42l51, all required modules are loaded automatically, excepted snd-soc-cs42l51-i2c module. This one has to be inserted explicitely.
Whatever is going on here this patch is not addressing it. Most likely some ID tables are in the wrong file.
participants (2)
-
Mark Brown
-
Olivier Moysan