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.