pcm: dmix: fix sw_params handling of timestamp types in direct plugins

In pcms using direct plugins (dmix/dsnoop/dshare), the timestamp type could
be different from the terminating hw plugin, then the kernel driver.

Be sure such pcms have plugins using consistently the same timestamp type.

signed-off-by: Sylvain Bertrand <sylvain.bertrand@legeek.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
sylvain.bertrand@gmail.com 2020-04-15 00:44:39 +00:00 committed by Takashi Iwai
parent fb48ad9e4f
commit d12df1dc9c
9 changed files with 60 additions and 1 deletions

View file

@ -173,6 +173,7 @@ struct snd_pcm_direct {
unsigned int recoveries; /* mirror of executed recoveries on slave */
int direct_memory_access; /* use arch-optimized buffer RW */
snd_pcm_direct_hw_ptr_alignment_t hw_ptr_alignment;
int tstamp_type; /* cached from conf, can be -1(default) on top of real types */
union {
struct {
int shmid_sum; /* IPC global sum ring buffer memory identification */
@ -357,6 +358,7 @@ struct snd_pcm_direct_open_conf {
int var_periodsize;
int direct_memory_access;
snd_pcm_direct_hw_ptr_alignment_t hw_ptr_alignment;
int tstamp_type;
snd_config_t *slave;
snd_config_t *bindings;
};