HI Sascha, I google a post from you. http://comments.gmane.org/gmane.linux.alsa.devel/68979 You said you used asynchronous mode on MC13783 (with two SSI ports, one for capture, one for play back). I think it is exactly the case I met, could you please show me the information to make it works? Thanks very much.
At 2016-04-18 11:25:28, "Edison" 13880996366@163.com wrote:
HI Community,
I'm working on kernel upgrading for 2.6.22 BSP to new community version 4.X (download from kernel.org without any vendor patches) for our customized IMX27 board, but met some problem when porting the MC13783 audio device driver. On our board, the hardware design for audio part is the same as IMX27 ADS board, in which MC13783 audio is connect to IMX27 with two SSI interface (SSI1/SS2). In the FSL 2.6.22 BSP, driver design is the same as the hardware schematic - alsa driver use SSI1 / SSI2 as codec and DAC respectively. In the community BSP (4.X), I tried to assign two difference SSI port for MC13783 codec as below /* MC13783 */ static struct mc13xxx_codec_platform_data mx27_ads_codec = { .dac_ssi_port = MC13783_SSI2_PORT, .adc_ssi_port = MC13783_SSI1_PORT, };
In mc13783 codec driver it will be bind to asynchronous DAI for separated routing for AD/DA (mc13783.c), one called mc13783-hifi-playback and the other called mc13783-hifi-capture, but the DAI bind will be certainly unsuccessful because in the mc13783 sound soc driver (imx-mc13783.c), the dai_link name seems fixed to be "mc13783_hifi", so looks like DAI bind can only be successfully if we use synchronous mode (AD/DA use the same SSI port rather than different ports). That seems to be a big difference between community BSP and FSL BSP. My question:
- Has someone used the asynchronous DAI in their design with community BSP (I cannot find any reference for mc13783-hifi-playback/mc13783-hifi-capture in the kernel source code)?
- Can I use synchronous DAI (force ADC/DAC use same SSI) instead of asynchronous DAI make audio works without hardware change? (Unfortunately I have done some experiments but seems not work, I cannot get the proper voice on the headphone when I say sometime on Mic with my self loop program). BTW, I met another problem even using synchronous DAI, the driver always return "coherent DMA mask is unset", now I have to patch it with default DMA mask.