On Jul 3, 2008, at 10:42 AM, Mark Brown wrote:
On Thu, Jul 03, 2008 at 06:37:14PM +0400, Anton Vorontsov wrote:
Since we're using SSI in synchronous mode, the STCCR register controls both the receive and transmit sections. So, when we're trying to record anything, stccr register does not get initialized, thus the output file filled with the white noise.
Fix this by initializing the STCCR for both playback and capture. If TX/RX widths don't match, return that we're busy at the moment.
Signed-off-by: Anton Vorontsov avorontsov@ru.mvista.com
Acked-by: Mark Brown broonie@opensource.wolfsonmicro.com
but Timur needs to ack it since I don't have any particular knowledge of the hardware.
Anton has the right idea, but I'm not sure the fix is the best. I was planning on posting my fix after I got back from vacation.
Part of the problem is that STCK and SRCK can be wired together, which means that even though you're not in synchronous mode, the sample rates have to match. For the 8610 HPCD, this isn't a problem, but the SSI driver is supposed to support more than just that board. We need device tree additions to cover all cases.
Anton, are you sure returning -EBUSY is the right fix? Would this make applications like mplayer detect the problem and automatically pick a matching sample format that does work?