mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 21:24:08 +08:00
ALSA: firewire-lib: handle the case that empty isochronous packet payload for CIP
Two quadlets are at least included in isochronous packet payload for Common Isochronous Packet (CIP) format in IEC 61883-1. However, it's better to equip ALSA IEC 61883-1/6 packet streaming engine for contrary packet. This commit handles isochronous cycle to process such packet so that the cycle is skipped. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Link: https://lore.kernel.org/r/20210518130048.146596-3-o-takashi@sakamocchi.jp Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
6d60b7a3d3
commit
c09010eeb3
@ -656,11 +656,18 @@ static int parse_ir_ctx_header(struct amdtp_stream *s, unsigned int cycle,
|
||||
}
|
||||
|
||||
if (cip_header_size > 0) {
|
||||
cip_header = ctx_header + 2;
|
||||
err = check_cip_header(s, cip_header, *payload_length,
|
||||
data_blocks, data_block_counter, syt);
|
||||
if (err < 0)
|
||||
return err;
|
||||
if (*payload_length >= cip_header_size) {
|
||||
cip_header = ctx_header + 2;
|
||||
err = check_cip_header(s, cip_header, *payload_length, data_blocks,
|
||||
data_block_counter, syt);
|
||||
if (err < 0)
|
||||
return err;
|
||||
} else {
|
||||
// Handle the cycle so that empty packet arrives.
|
||||
cip_header = NULL;
|
||||
*data_blocks = 0;
|
||||
*syt = 0;
|
||||
}
|
||||
} else {
|
||||
cip_header = NULL;
|
||||
err = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user