[alsa-devel] trouble using S/PDIF input on CMI8738-MC6: C-Media CMI8738 (model 55)

Jon jon at seniorblanco.com
Fri Aug 22 00:07:35 CEST 2014


On 08/21/2014 03:31 AM, Clemens Ladisch wrote:
> Jon wrote:
>> i/o error and resulting 44-byte file of silence.
>
> This indicates that the chip does not see any S/PDIF signal.
>
> Can't you connect some S/PDIF output to an input for testing?

Well, I have tried connecting its own output to its input (both via 
optical and coax) but that doesn't change anything.  Unfortunately I 
have no other devices with S/PDIF inputs to test with, though the 
optical cable lights up when I toggle "S/PDIF Output" to on, and if I 
attempt to play to the iec958 alsa device then "S/PDIF Out To DAC" and 
"S/PDIF Out" both also automatically enable themselves in alsamixer and 
I get no errors, so I suspect the digital *output* is probably working 
fine.  I have other devices with S/PDIF outputs that I have tested 
connecting to this device's input, however, again, no change.

>
>> I'm wondering if this problem could be really just as simple as
>> someone having guessed wrong about the correct value there having not
>> had this particular model on hand to test with?
>
> C-Media chips were very common once upon a time, and S/PDIF input always
> worked just fine for everybody else.  There are no GPIOs, so the only
> possible hardware implementation is to connect the S/PDIF input directly
> to the chip's input pin(s).

A quick search for this in google: cmipci input/output error

...shows several other various mail and forum archive listings of people 
having the same exact problem as me with model 55 of this card in alsa, 
going at least as far back as 2003.

https://www.mail-archive.com/alsa-user@lists.sourceforge.net/msg06771.html

Going from this one right here I just now discovered that if I directly 
connect the card's digital output to its own input, start speaker-test 
in one terminal, then quickly open alsamixer in a another terminal 
*after* I start recording with arecord in a third terminal and then 
manually toggle the "IEC958 In Record" (which at that point has turned 
itself on automatically) to off, and if I am quick enough to beat the 
i/o error, arecord then records an arbitrary amount of silence instead 
of erroring out. (I let it go until the file reached 11MB just to test) 
If I don't do this however, arecord still gives me the i/o error and exits.

Preemptively turning the "IEC958 In Record" to ON before starting the 
arecord attempt also still gives me an i/o error.

Might this new observation be of any significance?

Thanks,
Jon




More information about the Alsa-devel mailing list