Subject: Re: CURRENT on IBM ThinkPad 600E
To: Mirko Thiesen <thiesi@NetWorkXXIII.de>
From: Nicolas Joly <njoly@pasteur.fr>
List: port-i386
Date: 07/03/2005 16:02:32
On Sun, Jul 03, 2005 at 02:49:56PM +0200, Mirko Thiesen wrote:
[...]
> 1. The onboard audio chip isn't recognized:
> 
> Cirrus Logic CS4610 SoundFusion Audio Accelerator (audio multimedia, 
> revision 0x01) at pci0 dev 6 function 0 not configured pcib0 at pci0 dev 
> 7 function 0
> 
> According to what Jason writes in cs4280.c it should work. I checked 
> pcidevs, and the CS4610 is listed in there with its correct (according 
> to scanpci) ID:
> 
> (14:29:14) root@Tau [/usr/src/sys/dev/pci] # scanpci | grep -C 1 irr
> pci bus 0x0000 cardnum 0x06 function 0x00: vendor 0x1013 device 0x6001
>  Cirrus Logic CS 4610/11 [CrystalClear SoundFusion Audio Accelerator]
> 
> (14:29:42) root@Tau [/usr/src/sys/dev/pci] # cat pcidevs | grep 4610
> product CIRRUS CS4610           0x6001  CS4610 SoundFusion Audio Accelerator
> 
> Yes, the driver is indeed compiled into the kernel:
> 
> (14:30:44) root@Tau [/usr/src] # cat sys/arch/i386/conf/TAU | grep clcs
> clcs*   at pci? dev ? function ?        # Cirrus Logic CS4280
> 
> Looks good, doesn't it? So why isn't it configured then?

According to the driver source code (src/sys/dev/pci/cs4280.c), it has
some support for your card but it wasn't tested :

static int
cs4280_match(struct device *parent, struct cfdata *match, void *aux)
{
        struct pci_attach_args *pa;

        pa = (struct pci_attach_args *)aux;
        if (PCI_VENDOR(pa->pa_id) != PCI_VENDOR_CIRRUS)
                return 0;
        if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_CIRRUS_CS4280
#if 0  /* I can't confirm */
            || PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_CIRRUS_CS4610
#endif
            )
                return 1;
        return 0;
}

Just change '#if 0' to '#if 1' to give it a try ...

-- 
Nicolas Joly

Biological Software and Databanks.
Institut Pasteur, Paris.