# Old Dell CPX laptop sound issues



## crass (Dec 4, 2013)

Hi all,

For some days I have been trying to get the sound to work on the aforementioned laptop. I have been using the FreeBSD 9.2 i386 release.  I cannot get the sound to work on this release. I know that previous to 9.2 the sound was working, or at least the right actions produced the desired results. I have placed snd_maestro_load in /boot/loader.conf. I have done `cat /dev/sndstat` only to get

```
FreeBSD Audio Driver (newpcm: 32bit 2009061500/i386) / installed device:[blank/none]
```
 I have done `kldload snd_maestro` on the command line - still nothing. `dmesg` shows some message about 
	
	



```
pcm0: cannot allocate status buffer[code]

I have just tried the 10 RC release - same problem. Has support for [file]snd_maestro[/file] been dropped?

Cheers.
```


----------



## lemur (Dec 18, 2013)

I wanted to take a crack at finding/fixing a bug (http://www.freebsd.org/cgi/query-pr.cgi?pr=184512) so I pulled out some old hardware to test this on 9.2.  

Dell XPS M1330 with Intel ICH8M had sound support from the default kernel, snd_hda(4).
Dell Inspiron 8000 with ESS Maestro3 chipset snd_maestro3(4) requires `kldload snd_maestro3`.
Dell Latitude X300 with Intel ICH4 had sound support from the default kernel, snd_ich(4).
Dell Latitude X200 with Intel ICH3 had sound support from the default kernel, snd_ich(4).

I don't have any hardware that uses snd_maestro(4).

Sorry.


----------



## lemur (Dec 19, 2013)

> pcm0: cannot allocate status buffer



The above error message happens on line 1835, before the driver can attach to the device. The maestro driver fails to get memory for the status/record buffer (the call to dma_malloc() does not succeed).  If I were being thorough, I would trace through the two conditions in dma_malloc() that return null and try to figure out why (requires hardware). The only change in the maestro driver for 9.2 runs after that part of the code that fails so I'm guessing that the loss of sound you experience with 9.2 comes from a change somewhere higher up in the hierarchy (maybe PCI changes?).  

While I'm trying to make educated guesses, I've never looked at this code before and I don't have the hardware. I haven't worked on FreeBSD kernel drivers since 2006 so I'd have to get familiar with the current PCI subsystem. If you want to continue with this guessing game, you could boot into a live CD like the 9.2 live cd and try the following commands in an attempt to locate which changes since 9.1 contributed to the loss of sound.

`sysctl hw.pci.realloc_bars=1`
`sysctl hw.snd.verbose=4`
`kldload snd_maestro`
`cat /dev/sndstat`

I wouldn't make guesses if I had the hardware. I would trace through and find out exactly what happens. I'm on holiday and wanted to contribute to FreeBSD during my time off. I saw the maestro bug and knew I had hardware with maestro something. It turns out it was maestro3 and so I'm not able to help after all. I wish you all the best.


----------

