summaryrefslogtreecommitdiffstats
path: root/sound/firewire/amdtp.c
diff options
context:
space:
mode:
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>2014-04-25 22:45:03 +0900
committerTakashi Iwai <tiwai@suse.de>2014-05-26 14:24:33 +0200
commit7ab566453fe32d6745a82772a16e9bc34c5403a5 (patch)
tree30732973953135dc33d10b163b3624ef9cb867dd /sound/firewire/amdtp.c
parent315fd41fe9d43838ab5afd26c58d908d18313d9a (diff)
downloadlinux-7ab566453fe32d6745a82772a16e9bc34c5403a5.tar.gz
linux-7ab566453fe32d6745a82772a16e9bc34c5403a5.tar.bz2
linux-7ab566453fe32d6745a82772a16e9bc34c5403a5.zip
ALSA: fireworks/firewire-lib: Add a quirk for empty packet with TAG0
Fireworks has a quirk to transmit empty packets with TAG0. This commit adds handling this quirk for full duplex stream synchronization. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/firewire/amdtp.c')
-rw-r--r--sound/firewire/amdtp.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sound/firewire/amdtp.c b/sound/firewire/amdtp.c
index 5b8846123474..dce4c6dd3f6d 100644
--- a/sound/firewire/amdtp.c
+++ b/sound/firewire/amdtp.c
@@ -815,7 +815,7 @@ int amdtp_stream_start(struct amdtp_stream *s, int channel, int speed)
};
unsigned int header_size;
enum dma_data_direction dir;
- int type, err;
+ int type, tag, err;
mutex_lock(&s->mutex);
@@ -869,9 +869,12 @@ int amdtp_stream_start(struct amdtp_stream *s, int channel, int speed)
} while (s->packet_index > 0);
/* NOTE: TAG1 matches CIP. This just affects in stream. */
+ tag = FW_ISO_CONTEXT_MATCH_TAG1;
+ if (s->flags & CIP_EMPTY_WITH_TAG0)
+ tag |= FW_ISO_CONTEXT_MATCH_TAG0;
+
s->callbacked = false;
- err = fw_iso_context_start(s->context, -1, 0,
- FW_ISO_CONTEXT_MATCH_TAG1);
+ err = fw_iso_context_start(s->context, -1, 0, tag);
if (err < 0)
goto err_context;