On Mon, Jan 11, 2010 at 01:14:19PM +0100, Sascha Hauer wrote:
On Mon, Jan 11, 2010 at 11:36:31AM +0000, Mark Brown wrote:
At least some of the driver was unconditionally setting both TX and RX configuration simultaneously, though looking again hw_params() is OK.
You probably mean imx_ssi_set_dai_fmt(), imx_ssi_set_dai_tdm_slot() and imx_ssi_set_dai_sysclk(). We do not have the playback/record information available in these functions. Should we pass a struct snd_pcm_substream * to the functions?
Hrm, I think it was tdm_slot() - you get separate RX and TX masks so it should be able to work asymmetrically.
I'll drop the patch. Like I say, I've never actually seen the driver working - even when configured as the master it doesn't seem to do any DMA (well, FIQs).
Unfortunately I do not have a mx31ads available, so I can't provide a driver for this board. I never used master mode, but if I understand the datasheet correctly the SSI unit has two clock inputs, one for the register accesses which gets enabled by clk_enable and one for the baud rate which doesn't get touched by the driver atm. Have you checked that the baud clock is configured correctly?
Oh, then the master mode support should just be removed from the driver until it actually does all the required work. That'd have saved me some time...
If you have by chance a mx27ads or a mx35 3stack board I could see that I make the driver work on one of these boards.
I have neither of those boards.