[alsa-devel] Status of CMI9738 and SiS7012

Takashi Iwai tiwai at suse.de
Wed Mar 28 11:57:44 CEST 2007


At Tue, 27 Mar 2007 10:44:23 -0600,
Rob Franklin wrote:
> 
> On 3/27/07, Takashi Iwai <tiwai at suse.de> wrote:
> > At Tue, 27 Mar 2007 08:49:05 -0600,
> > Rob Franklin wrote:
> > >
> > > Hi All,
> > >
> > > I posted a question a couple of weeks ago to the alsa-users list
> > > (Can't get spdif working with ALSA and FC6 on ECS L4S5MG/651+
> > > motherboard), but never got a response.
> > >
> > > I have been looking at the ALSA source code for the AC'97 codec on my
> > > board  (CMI9738) and the source code for the intel8x0 driver (for my
> > > SiS 7012).  However, as far as I can tell from looking at the source,
> > > S/PDIF is not enabled/supported for this combination of devices.
> > > Additionally, Googling around I haven't found any mention of people
> > > getting spdif working with ALSA and a CM9738 / SiS7012 combo.
> > >
> > > I am wondering whether anyone on the developer list can confirm that
> > > this is the case.  Also, if this is the case can someone give me an
> > > idea of what would be required to get this working.  The system is
> > > setup with dual boot and so I could grab some of the values from
> > > windows using a PCI sniffer, and I might be able to do some hacking on
> > > the source code and submit a patch if someone could help guide me in
> > > the right direction.
> >
> > Are you sure it's CM9738?  AFAIK, CM9738 doesn't support SPDIF at
> > all, but CM9739 does...
> >
> That was my first thought too, but I pulled open the case last night
> and verified that it was indeed a 9738.  The download page from the
> motherboard manufacturer has a driver for CMI9738 and a CMI9738/9739
> driver (http://www.ecsusa.com/downloads/drivers_sound.html).  I am
> wondering if there are two different versions of this chip.
> 
> Here is the output from lspci -vv for the sound device:
> 
> 00:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS]
> AC'97 Sound Controller (rev a0)
>         Subsystem: Elitegroup Computer Systems Unknown device 0a44
>         Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
> ParErr- Stepping- SERR- FastB2B-
>         Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
> >TAbort- <TAbort- <MAbort- >SERR- <PERR-
>         Latency: 32 (13000ns min, 2750ns max)
>         Interrupt: pin C routed to IRQ 22
>         Region 0: I/O ports at d000 [size=256]
>         Region 1: I/O ports at d400 [size=128]
>         Capabilities: <access denied>
> 
> One thought that I had was to force the AC'97 driver to detect the
> chip as a 9739 instead of a 9738 to see whether my 9738 can work as a
> 9739.  But I'm not sure how to do that short of modifying the source
> code and recompiling the kernel module.

First check whether its codec id is CMI9738, see
/proc/asound/card0/codec97#0/* files.  If it's really CM9738, you can
hack pci/ac97/ac97_codec.c to replace patch_cm9738 with patch_cm9739
in snd_ac97_codec_ids[].


Takashi


More information about the Alsa-devel mailing list