summaryrefslogtreecommitdiffstats
path: root/sound/firewire/fireworks/fireworks_stream.c
diff options
context:
space:
mode:
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>2014-04-25 22:45:05 +0900
committerTakashi Iwai <tiwai@suse.de>2014-05-26 14:25:00 +0200
commit697022391e46614184101c59e46c9671598026db (patch)
tree184134a0b33f09ac49d8301f534dc9e83f61c2a8 /sound/firewire/fireworks/fireworks_stream.c
parentc8bdf49b9935cdeec917347df00a5434d58e9df0 (diff)
downloadop-kernel-dev-697022391e46614184101c59e46c9671598026db.zip
op-kernel-dev-697022391e46614184101c59e46c9671598026db.tar.gz
ALSA: fireworks/firewire-lib: Add a quirk for wrong dbs in tx packets
One of Fireworks firmware, named as 'AudioFire9', seems to transmit packets with wrong value of dbs. It's always 0x11 but actual size of data block is different. This commit adds a flag for this quirk and some codes to calculate correct size. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/firewire/fireworks/fireworks_stream.c')
-rw-r--r--sound/firewire/fireworks/fireworks_stream.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/firewire/fireworks/fireworks_stream.c b/sound/firewire/fireworks/fireworks_stream.c
index d687b04..7447af7 100644
--- a/sound/firewire/fireworks/fireworks_stream.c
+++ b/sound/firewire/fireworks/fireworks_stream.c
@@ -198,6 +198,9 @@ int snd_efw_stream_init_duplex(struct snd_efw *efw)
efw->tx_stream.flags |= CIP_EMPTY_WITH_TAG0;
/* Fireworks has its own meaning for dbc. */
efw->tx_stream.flags |= CIP_DBC_IS_END_EVENT;
+ /* AudioFire9 always reports wrong dbs. */
+ if (efw->is_af9)
+ efw->tx_stream.flags |= CIP_WRONG_DBS;
err = init_stream(efw, &efw->rx_stream);
if (err < 0) {
OpenPOWER on IntegriCloud