]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
greybus: audio: Fix incorrect codec state modification
authorVaibhav Agarwal <vaibhav.agarwal@linaro.org>
Tue, 12 Jul 2016 09:56:00 +0000 (04:56 -0500)
committerAlex Elder <elder@linaro.org>
Wed, 13 Jul 2016 18:48:07 +0000 (13:48 -0500)
In case module is removed dynamically with ongoing playback, during
module cleanup codec state is mistakenly modified. State should be
modified for module only. Fix this.

Fixes: 76414cb499b7 ("audio: Use single codec driver
registration")

Signed-off-by: Vaibhav Agarwal <vaibhav.agarwal@linaro.org>
Reviewed-by: Mark Greer <mgreer@animalcreek.com>
Signed-off-by: Alex Elder <elder@linaro.org>
drivers/staging/greybus/audio_codec.c

index 3c5a5aeeef8a92624259d368a42b2525356bc2bf..5e05375bb71e2b5ae6bfb1b10b23e72f52f9bb89 100644 (file)
@@ -971,7 +971,7 @@ static void gbaudio_codec_cleanup(struct gbaudio_module_info *module)
                ret = gb_audio_apbridgea_unregister_cport(data->connection,
                                                i2s_port, cportid,
                                                AUDIO_APBRIDGEA_DIRECTION_TX);
-               gbcodec->stream[0].state = GBAUDIO_CODEC_SHUTDOWN;
+               module->ctrlstate[0] = GBAUDIO_CODEC_SHUTDOWN;
        }
 
        if (cap_state == GBAUDIO_CODEC_START) {
@@ -996,7 +996,7 @@ static void gbaudio_codec_cleanup(struct gbaudio_module_info *module)
                ret = gb_audio_apbridgea_unregister_cport(data->connection,
                                                i2s_port, cportid,
                                                AUDIO_APBRIDGEA_DIRECTION_RX);
-               gbcodec->stream[1].state = GBAUDIO_CODEC_SHUTDOWN;
+               module->ctrlstate[1] = GBAUDIO_CODEC_SHUTDOWN;
        }
 }