ALSA: firewire-lib: fix invalid assignment to union data for directional parameter
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Fri, 8 May 2020 04:36:26 +0000 (13:36 +0900)
committerTakashi Iwai <tiwai@suse.de>
Fri, 8 May 2020 07:42:21 +0000 (09:42 +0200)
Although the value of FDF is used just for outgoing stream, the assignment
to union member is done for both directions of stream. At present this
causes no issue because the value of same position is reassigned later for
opposite stream. However, it's better to add if statement.

Fixes: d3d10a4a1b19 ("ALSA: firewire-lib: use union for directional parameters")
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20200508043635.349339-2-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/amdtp-am824.c

index 67d735e9a6a4c2564d12613b25c2078d66c446bd..fea92e148790f28fb6cdb33e0b0aee55665e3ced 100644 (file)
@@ -82,7 +82,8 @@ int amdtp_am824_set_parameters(struct amdtp_stream *s, unsigned int rate,
        if (err < 0)
                return err;
 
-       s->ctx_data.rx.fdf = AMDTP_FDF_AM824 | s->sfc;
+       if (s->direction == AMDTP_OUT_STREAM)
+               s->ctx_data.rx.fdf = AMDTP_FDF_AM824 | s->sfc;
 
        p->pcm_channels = pcm_channels;
        p->midi_ports = midi_ports;