linux/sound/firewire
Takashi Sakamoto 65845f29be ALSA: firewire-lib/dice: add arrangements of PCM pointer and interrupts for Dice quirk
In IEC 61883-6, one data block transfers one event. In ALSA, the event equals one PCM frame,
hence one data block transfers one PCM frame. But Dice has a quirk at higher sampling rate
(176.4/192.0 kHz) that one data block transfers two PCM frames.

Commit 10550bea44 ("ALSA: dice/firewire-lib: Keep dualwire mode but obsolete
CIP_HI_DUALWIRE") moved some codes related to this quirk into Dice driver. But the commit
forgot to add arrangements for PCM period interrupts and DMA pointer updates. As a result, Dice
driver cannot work correctly at higher sampling rate.

This commit adds 'double_pcm_frames' parameter to amdtp structure for this quirk. When this
parameter is set, PCM period interrupts and DMA pointer updates occur at double speed than in
IEC 61883-6.

Reported-by: Daniel Robbins <drobbins@funtoo.org>
Fixes: 10550bea44 ("ALSA: dice/firewire-lib: Keep dualwire mode but obsolete CIP_HI_DUALWIRE")
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Cc: <stable@vger.kernel.org> # 3.16
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-08-29 09:52:07 +02:00
..
bebob ALSA: bebob: Correction for return value of special_clk_ctl_put() in error 2014-07-22 17:31:28 +02:00
fireworks ALSA: fireworks: fix specifiers in format strings for propper output 2014-08-05 09:15:20 +02:00
amdtp.c ALSA: firewire-lib/dice: add arrangements of PCM pointer and interrupts for Dice quirk 2014-08-29 09:52:07 +02:00
amdtp.h ALSA: firewire-lib/dice: add arrangements of PCM pointer and interrupts for Dice quirk 2014-08-29 09:52:07 +02:00
cmp.c ALSA: firewire-lib: Fix sparse warning of incorrect type in assignment 2014-05-27 17:34:37 +02:00
cmp.h ALSA: firewire-lib: Add a new function to check others' connection 2014-05-26 14:22:46 +02:00
dice-interface.h ALSA: dice: document quadlet alignment 2013-10-20 22:07:57 +02:00
dice.c ALSA: firewire-lib/dice: add arrangements of PCM pointer and interrupts for Dice quirk 2014-08-29 09:52:07 +02:00
fcp.c ALSA: firewire-lib: Remove a comment about restriction of asynchronous operation 2014-06-03 08:14:21 +02:00
fcp.h ALSA: firewire-lib: Add some AV/C general commands 2014-05-26 14:23:13 +02:00
isight.c ALSA: firewire: Convert to snd_card_new() with a device pointer 2014-02-14 08:13:31 +01:00
iso-resources.c sound: Add export.h for THIS_MODULE/EXPORT_SYMBOL where needed 2011-10-31 19:31:22 -04:00
iso-resources.h firewire: octlet AT payloads can be stack-allocated 2011-05-10 22:53:44 +02:00
Kconfig ALSA: firewire: trivial typo fixes in Kconfig 2014-07-28 10:26:42 +02:00
lib.c ALSA: firewire: extend snd_fw_transaction() 2013-10-20 22:07:57 +02:00
lib.h ALSA: firewire: extend snd_fw_transaction() 2013-10-20 22:07:57 +02:00
Makefile ALSA: bebob: Add skelton for BeBoB based devices 2014-05-26 14:29:12 +02:00
packets-buffer.c sound: Add export.h for THIS_MODULE/EXPORT_SYMBOL where needed 2011-10-31 19:31:22 -04:00
packets-buffer.h
scs1x.c ALSA: firewire: Convert to snd_card_new() with a device pointer 2014-02-14 08:13:31 +01:00
speakers.c ALSA: firewire-lib: Add some AV/C general commands 2014-05-26 14:23:13 +02:00