On Thu, 6 Sep 2007, Timur Tabi wrote:
Eliot Blennerhassett wrote:
You need to add some constraints to your driver, in the open callback. E.g. snd_pcm_hw_constraint_step(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_BYTES, 16);
Thanks. snd_pcm_hw_constraint_step() is not documented anywhere, and the comments in the source code don't provide any clues, either. Even the "ALSA Driver API" document just lists the function, but doesn't actually tell you what it does.
I still haven't figured out what the "condition bits" do. It's always 0 every time one of the constraint functions are called. I looked in the ALSA core code, and it seems that if you specify some condition bits they must match some flag bits in the hw params for the constraint to apply. But the flags bits just get copied from user space, so there is no clue in the kernel code what they are or what they do.