I modified 2.6.30-rc7 which was pulled from davinci git last week to support our dm6446 board. In order to get i2s configured properly I had to make some changes. There was no longer a definition for the CLKSM bit. hwparams does not read the SRGR register, but instead simply sets FSGM which is already set then configures the period and pulse width. The datasheet does mention that ASP internal input clock is the default mode on DSP reset, but I am not observing this. I assume that is intended to be applicable to GPP boots DSP?

What would be the proper method for configuring the clock divider? Other than values in hw_params... Settings from the machine driver or something in the board support file?

First of all with respect to EDMA, I noticed initially that I no longer encountered the problem I had previously had with the event not being set for ASP when stopping and starting audio.

I ran a simple speaker-test loop which I had been using to test for audio lockups previously and quickly encountered that condition. To see if it was similar to what I had experienced before I added a 10ms delay after edma stop to increase the latency between stopping and starting edma and the issue (for the most part) went away. I verified that the codec (tlv320dac2x) was configured properly and that the i2s clock was active. At the point where it locks up, EDMA interrupts are no longer generated on the ASP channel. I am at a loss as to what the real failure condition here is. All I am doing is running (in two terminals).

while [ 1 ]; do speaker-test; done
while [ 1 ]; do killall speaker-test; usleep 200000; done

I have not tried this on the EVM with the latest GIT kernel and this is a custom board so it's quite possible that the problem has something to do with our specific design. Any insight is appreciated.

Thanks.


_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to