This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello, I am trying to configure Linux kernel to enable drivers for TLV320AIC3111 and have followed the steps shown on the following page.
https://www.ti.com/tool/TLV320AIC31XXSW-LINUX#description
I am trying to enable this driver on Linux Kernel 6.1.21-v7l+ and getting following error when I try to install the module:
[ 11.370164] bcmgenet fd580000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[ 437.268196] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_dapm_put_enum_double (err -2)
[ 437.268271] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_jack_report (err -2)
[ 437.268306] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_put_enum_double (err -2)
[ 437.268338] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_params_to_frame_size (err -2)
[ 437.268351] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_component_write (err -2)
[ 437.268372] snd_soc_tlv320aic31xx: Unknown symbol devm_snd_soc_register_component (err -2)
[ 437.268395] snd_soc_tlv320aic31xx: Unknown symbol __devm_regmap_init_i2c (err -2)
[ 437.268416] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_get_enum_double (err -2)
[ 437.268442] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_info_volsw (err -2)
[ 437.268469] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_dapm_put_volsw (err -2)
[ 437.268482] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_add_component_controls (err -2)
[ 437.268500] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_dapm_add_routes (err -2)
[ 437.268513] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_info_enum_double (err -2)
[ 437.268535] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_get_volsw (err -2)
[ 437.268553] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_put_volsw (err -2)
[ 437.268565] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_component_update_bits (err -2)
[ 437.268577] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_dapm_new_controls (err -2)
[ 437.268605] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_dapm_get_volsw (err -2)
[ 437.268622] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_dapm_get_enum_double (err -2)
[ 437.268635] snd_soc_tlv320aic31xx: Unknown symbol snd_soc_dapm_del_routes (err -2)
[ 437.268651] snd_soc_tlv320aic31xx: Unknown symbol snd_pcm_format_width (err -2)
Do we need to enabled any other #define in config file please?
thanks
And yes the have tired the default drivers that came with the Linux and also tried with one from TI website.
Yes, in the config file, CONFIG_SND_SOUND comes before CONFIG_SND_SOC_TLV320AIC31XX
Can those errors be related to device tree? I have no yet configured the device tree for Linux processor.
would you be able to explain how to do this please?
In menuconfig, all I get is option to select as module.
I don't think so, the issue is Unknown symbol. The Unknown symbols are the interfaces offered by SND_SOUND.
Good to know. I was tracing back the code to see where am I getting the errors and you are correct they are from SND_SOUND.
Sure once I get no errors with installing the module I will look into device tree.
edit the .config file directly.
CONFIG_SND_SOC=y
CONFIG_SND_SOC_TLV320AIC31XX=y
Oh okay, will try this right away. Am I expecting the KO files to be part of the kernel ?
Makes sense. Anyway to verify it compiled correctly, please ?
I have rebuild the modules, zImage and dtbs but it did not rebuild zImage
I compile the AIC31xx on krnel 6.3. So compiling is not isu=ssue.As to how to rebuild zImage, kindly consult the platform vendor.
I understand that. But would there be any verification to can suggests to verify that these modules are now part of kernel?
Will this conversion of modules to kernel code work? as the ALSA is also added as module ?
when I look in menuconfig, the codec drivers are part of ALSA and inside codec drivers we have tlv320aic31xx
I did directly update the .config file with the configs but after building the kernel looking back at the .config they are reverted to modules.
in menuconfig
Device Driver -> SOund Card support -> Advanced Linux Sound Arch
And this ALSA is module.
steps taken:
1. edit the .config to mark CONFIG_SND_SOC and CONFIG_SND_SOC_TLV320AIC31XX to y
2. sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage dtbs modules
and this is the repo I am working from .
git clone --depth=1 github.com/.../linux
Right, probably to are done for the day. but here is where I got to.
1. In menuconfig I was able to build the TLV320AIC31XX as part of the kernel and I can see the kernel is build again after the change.
2. before starring to configure device tree, wanted to know if there is any test to do to make sure the driver for TLV320AIC31XX is part of the kernel.
But I do appreciate all the support given on this.
Thanks
Also, would you have device tree or as overlay example for RPi CM4 for TLV320AIC31XX ?
Thanks. I am still unable to verify if the codec driver has installed as part of the kernel. any suggestions please?
audio device driver Guidelines.pdf (ti.com) At page 19 wrote on How to Check Sound Card register.