[alsa-devel] hw_params function and OSS emulation

Takashi Iwai tiwai at suse.de
Wed Aug 22 23:57:29 CEST 2007

At Wed, 22 Aug 2007 16:08:49 -0500,
Timur Tabi wrote:
> Takashi Iwai wrote:
> > The buffer allocation in prepare callback would actually do work.
> > I've never mentioned that it doesn't work.  It's just not
> > recommended, simply because the prepare is called more often than
> > hw_params even without changing the parameters.
> What is the driver supposed to do on the second call to .prepare()?  In other 
> words, what is the point of calling it multiple times in a row?  Once my 
> driver is prepared to start, how could it become more prepared?

The purpose of prepare callback is to make the PCM stream ready to
start.  (The trigger callbacks are supposed to be just triggering, not
preparing the stream.)
Usually, once after the PCM is triggered, the registers are no
longer as same as the beginning.  If you want to stop and restart the
stream, you'll very likely to reset the registers again.  That's why
prepare is called again.  (Or, your driver is always go-or-die? :)


More information about the Alsa-devel mailing list