At Sun, 09 Mar 2008 23:56:01 +0100, Pavel Hofman wrote:
Hi,
I have most of the ESI Juli driver working, but I have hit a problem with the capture stream. I had to modify some ice1724.c code to allow redefining clock-related functions in the actual card file (Juli has a different clocking scheme), but all the DMA code is left intact, as well as the methods defining the capture stream.
The ice1724 vu-meters detect input ADC data, I can hear correct sound when setting the internal mixer to H/W-In. Yet, when trying to record, I get
arecord -v -D hw:0,0,0 -r 44100 -f S32_LE -c2
.... RIFF$WAVEfmt ... data arecord: pcm_read:1346: read error: File descriptor in bad state
It's -EBADFD and indicates that the PCM state isn't the expected one, in this case, SNDRV_PCM_STATE_PREPARED or RUNNING. The error comes from snd_pcm_capture_ioctl1() in core/pcm_native.c. Not sure what is broken, but this should be the starting point.
Takashi