[alsa-devel] Problem compiling soc - imx31 and wm8753
Hi! I am new here and do not know if I am posting correctly, please understand! :-) I knew about this list in the wolfsonmicro website and I hope someone can help me...
I am facing a problem while compiling the sound support for imx31ads board. I got the kernel from wolfsonmicro using the following command:
git clone git://opensource.wolfsonmicro.com/linux-2.6-asoc linux-2.6-asoc
After this I just copy the arch/arm/configs/mx31ads_defconfig to .config and run:
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig
I selected Alsa support, SoC, Support for i.MX CPU and Support for i.MX31 - WM8753. After this I run:
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- zImage
and I receive this error message:
CC sound/soc/imx/imx-ssi.o In file included from sound/soc/imx/imx-ssi.c:29: include/sound/driver.h:1:2: warning: #warning "This file is deprecated" sound/soc/imx/imx-ssi.c:34:26: error: asm/arch/dma.h: No such file or directory sound/soc/imx/imx-ssi.c:35:28: error: asm/arch/clock.h: No such file or directory sound/soc/imx/imx-ssi.c:37:26: error: asm/hardware.h: No such file or directory In file included from sound/soc/imx/imx-ssi.c:39: sound/soc/imx/imx-ssi.h:10:31: error: asm/arch/hardware.h: No such file or directory In file included from sound/soc/imx/imx-ssi.c:39: sound/soc/imx/imx-ssi.h:213: error: array type has incomplete element type In file included from sound/soc/imx/imx-ssi.c:40: sound/soc/imx/imx31-pcm.h:62: error: expected specifier-qualifier-list before 'dma_channel_params' sound/soc/imx/imx31-pcm.h:65: error: array type has incomplete element type sound/soc/imx/imx-ssi.c:72: error: unknown field 'params' specified in initializer sound/soc/imx/imx-ssi.c:72: error: extra brace group at end of initializer sound/soc/imx/imx-ssi.c:72: error: (near initialization for 'imx_ssi1_pcm_stereo_out0') sound/soc/imx/imx-ssi.c:74: error: 'emi_2_per' undeclared here (not in a function) sound/soc/imx/imx-ssi.c:76: error: 'SSI1_BASE_ADDR' undeclared here (not in a function) sound/soc/imx/imx-ssi.c:77: error: 'DMA_REQ_SSI1_TX1' undeclared here (not in a function) sound/soc/imx/imx-ssi.c:78: error: 'SSI' undeclared here (not in a function) sound/soc/imx/imx-ssi.c:79: warning: excess elements in struct initializer sound/soc/imx/imx-ssi.c:79: warning: (near initialization for 'imx_ssi1_pcm_stereo_out0') sound/soc/imx/imx-ssi.c:84: error: unknown field 'params' specified in initializer sound/soc/imx/imx-ssi.c:84: error: extra brace group at end of initializer sound/soc/imx/imx-ssi.c:84: error: (near initialization for 'imx_ssi1_pcm_stereo_out1') ... ... ... sound/soc/imx/imx-ssi.c:836: error: field name not in record or union initializer sound/soc/imx/imx-ssi.c:836: error: (near initialization for 'imx_ssi_pcm_dai') sound/soc/imx/imx-ssi.c:837: error: field name not in record or union initializer sound/soc/imx/imx-ssi.c:837: error: (near initialization for 'imx_ssi_pcm_dai') sound/soc/imx/imx-ssi.c:838: error: field name not in record or union initializer sound/soc/imx/imx-ssi.c:838: error: (near initialization for 'imx_ssi_pcm_dai') sound/soc/imx/imx-ssi.c:841: warning: type defaults to 'int' in declaration of 'imx_ssi_pcm_dai' make[3]: *** [sound/soc/imx/imx-ssi.o] Error 1 make[2]: *** [sound/soc/imx] Error 2 make[1]: *** [sound/soc] Error 2 make: *** [sound] Error 2
I did not change nothing, just configure and compile... My gcc version is 4.1.2 from Freescale. What can be wrong? Could be this version of gcc a problem? I already tried to correct the missing include files but the other errors are still there after the corrections...
Thanks in advance, Marcelo Utikawa da Fonseca
--------------------------------------------- Tecnequip Tecnologia em Equipamentos Endereço/Address: Rua Juno, 527 Cidade/City: São Paulo Estado/State: SP País/Country: Brasil CEP/Postal Code: 03445-000 Fone/Phone: 55-11-20937199 FAX: 55-11-29412289
On Wed, Mar 11, 2009 at 11:47:25AM -0300, Marcelo Utikawa da Fonseca wrote:
I am facing a problem while compiling the sound support for imx31ads board. I got the kernel from wolfsonmicro using the following command:
git clone git://opensource.wolfsonmicro.com/linux-2.6-asoc linux-2.6-asoc
After this I just copy the arch/arm/configs/mx31ads_defconfig to .config and run:
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig
I did not change nothing, just configure and compile... My gcc version is 4.1.2 from Freescale. What can be wrong? Could be this version of gcc a problem? I already tried to correct the missing include files but the other errors are still there after the corrections...
The i.MX31 support that is present in ASoC git depends on underlying support for the CPU which is not present in any mainline tree (which is why this code has not been contributed to mainline yet).
Probably the easiest thing to do is to start from the BSP provided by Freescale - I believe that most versions of that contain the CPU audio drivers already, probably including a version of the WM8731 driver. It should be much easier to merge that driver (by itself, just wm8731.c and wm8731.h) into the Freescale BSP than to merge the i.MX31 support into the standard kernel.
The i.MX31 Freescale's BSP does not have asoc support, just an interface for MC13783 (a Power Management IC from Freescale with integrated audio interface). The wolfsonmicro's tree is the only one that have support to asoc but it does not compiles using the mentioned steps. Am I missing something or may be these drivers broken?
Mark Brown escreveu:
On Wed, Mar 11, 2009 at 11:47:25AM -0300, Marcelo Utikawa da Fonseca wrote:
I am facing a problem while compiling the sound support for imx31ads board. I got the kernel from wolfsonmicro using the following command:
git clone git://opensource.wolfsonmicro.com/linux-2.6-asoc linux-2.6-asoc
After this I just copy the arch/arm/configs/mx31ads_defconfig to .config and run:
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig
I did not change nothing, just configure and compile... My gcc version is 4.1.2 from Freescale. What can be wrong? Could be this version of gcc a problem? I already tried to correct the missing include files but the other errors are still there after the corrections...
The i.MX31 support that is present in ASoC git depends on underlying support for the CPU which is not present in any mainline tree (which is why this code has not been contributed to mainline yet).
Probably the easiest thing to do is to start from the BSP provided by Freescale - I believe that most versions of that contain the CPU audio drivers already, probably including a version of the WM8731 driver. It should be much easier to merge that driver (by itself, just wm8731.c and wm8731.h) into the Freescale BSP than to merge the i.MX31 support into the standard kernel. _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
--------------------------------------------- Tecnequip Tecnologia em Equipamentos Endere�o/Address: Rua Juno, 527 Cidade/City: S�o Paulo Estado/State: SP Pa�s/Country: Brasil CEP/Postal Code: 03445-000 Fone/Phone: 55-11-20937199 FAX: 55-11-29412289
On Wed, Mar 11, 2009 at 02:08:44PM -0300, Marcelo Utikawa da Fonseca wrote:
The i.MX31 Freescale's BSP does not have asoc support, just an interface for MC13783 (a Power Management IC from Freescale with integrated audio interface). The wolfsonmicro's tree is the only one that have support to asoc but it does not compiles using the mentioned steps. Am I missing something or may be these drivers broken?
As I say, the drivers rely on code in the Freescale BSP; you may not have the lastest Freescale BSP. There is some code here:
git://opensource.wolfsonmicro.com/linux-2.6-audioplus imx31
but note that this uses ASoC v2 so will definitely require some porting of the WM8731 driver unless the copy there is already up to date. That tree is entirely focused on supporting the WM835x (an audio+PMIC device comprable to the Atlas which is shipped by default) with the i.MX31ADS.
On Wed, 2009-03-11 at 21:53 +0000, Mark Brown wrote:
On Wed, Mar 11, 2009 at 02:08:44PM -0300, Marcelo Utikawa da Fonseca wrote:
The i.MX31 Freescale's BSP does not have asoc support, just an interface for MC13783 (a Power Management IC from Freescale with integrated audio interface). The wolfsonmicro's tree is the only one that have support to asoc but it does not compiles using the mentioned steps. Am I missing something or may be these drivers broken?
As I say, the drivers rely on code in the Freescale BSP; you may not have the lastest Freescale BSP. There is some code here:
git://opensource.wolfsonmicro.com/linux-2.6-audioplus imx31
but note that this uses ASoC v2 so will definitely require some porting of the WM8731 driver unless the copy there is already up to date. That tree is entirely focused on supporting the WM835x (an audio+PMIC device comprable to the Atlas which is shipped by default) with the i.MX31ADS.
I'd also like to add that this was only a API/build testing driver. I never actually had any real wm8753 + i.MX31 to hardware test against. I just wanted to confirm the API fitted well here and I could build some code.
I would do as Mark suggested and use the Freescale BSP. Easiest option.
Alternatively, if you have some time - have a look at mainline i.MX31 support and port the SDMA and SSI drivers from the Wolfson tree to it. Not too much work for audio but you will also need to port other required subsystems from the ancient kernel version in the Freescale BSP to your current kernel which *will* eat into your project time.
Liam
participants (3)
-
Liam Girdwood
-
Marcelo Utikawa da Fonseca
-
Mark Brown