On Wed, Apr 30, 2014 at 07:07:56AM +0200, Jan Stary wrote: > On this Dell Inspiron 3700 (current i386, see dmesg below) > I can't seem to record sound. It's a maestro(4): > > maestro0 at pci0 dev 8 function 0 "ESS Maestro 2E" rev 0x10: irq 5 > ac97: codec id 0x83847609 (SigmaTel STAC9721/23) > ac97: codec features 18 bit DAC, 18 bit ADC, SigmaTel 3D > audio0 at maestro0 > > The BUGS section of maestro(4) says "Recording should work soon", > since May 2007 apparently. Is there any point in working on this?
sure, as long as you have the hardware and you plan to use it. > If so, can somebody (ratchov?) please help me get started? > The datasheet seems to be available here: ftp://ftp.sunet.se/pub/Linux/alsa/manuals/ess/DSMaestro2.pdf The effect processor, wavetable, FM synth, speaker virtualisation and friends make it look complicated, but only the DMA and interrupts and codec handling parts are relevant. Look at sys/dev/pci/maestro.c; also see netbsd, freebsd and linux drivers; they may have the recording working, possibly with interesting comments in the sources. Most probably, play and rec directions work the same way, so the code will be very "symmetric"; this helps quickly identifying the missing (or broken) bits. There's one important point: play and rec directions must run at the same rate, and there might be subtle differences (rounding errors) that may cause clock skew (sndiod will complain about that after few minutes/hours of full-duplex operation). If so (or if you're unsure), just lock both directions to 48kHz. Furthermore, play and rec directions must use the same encodings, if certain encodings are not usable in one direction, you could drop them from the other direction. FWIW, anything but s16le is very unlikely to be used. Don't loose your time on format conversions (they will be tedu'ed very soon). Feel free to contact me if you need some help -- Alexandre

