Hi,
This patchset adds a constrain to ALSA dice driver to start PCM substreams and AMDTP packet transferring just at current sampling transfer frequency.
Dice hardware doesn't allow drivers to get supported combinations between sampling rate and PCM channels. ALSA dice driver should follow to the hardware design, though current ALSA driver has some over-specifications. As a result, the driver has several issue and brings inconvenience to users.
This patchset consists of two parts: * 01-05: to add constrain to current sampling transfer frequency and related code cleanup * 06-08: to ensure and stabilize AMDTP packet transmission
As a result, userspace applications can request PCM substreams at current sampling transfer frequency. Therefore, when users want to start PCM substreams at different rate, they should set the rate in advance by the other ways (i.e. ffado-dbus-server/ffado-mixer).
Takashi Sakamoto (8): ALSA: dice: limit to current sampling transfer frequency ALSA: dice: limit stream to current sampling transfer frequency. ALSA: dice: add MIDI ports according to current number of MIDI substreams ALSA: dice: get the number of MBLA data channel at opening PCM substream ALSA: dice: purge generating channel cache ALSA: dice: ensure phase lock before starting streaming ALSA: dice: expand timeout to wait for Dice notification ALSA: dice: wait for ensuring phase lock
sound/firewire/dice/dice-midi.c | 25 +++- sound/firewire/dice/dice-pcm.c | 205 ++++++++++----------------------- sound/firewire/dice/dice-stream.c | 118 +++++++++++++------ sound/firewire/dice/dice-transaction.c | 109 ------------------ sound/firewire/dice/dice.c | 67 +---------- sound/firewire/dice/dice.h | 14 +-- 6 files changed, 162 insertions(+), 376 deletions(-)