greybus: audio: Report DISCONNECT event after resource cleanup.
Reporting DISCONNECT event immediately on module removal causes race condition while re-populating mixer controls by above HAL. The original intent was to avoid any (invalid) mixer control modification request from above layer. Ideally, it should report 'MODULE_NOT_READY' on module plug-out and DISCONNECT after resource cleanup. This would involve changes in GB Audio manager and HAL layer. Since we already have a plan to remove GB Audio manager, I'm making this change in GB codec driver to avoid any race condition. Also, codec driver already ensures mixer control modifcations for disconnected modules are not triggered to AP Bridge audio FW & reported invalid. Signed-off-by: Vaibhav Agarwal <vaibhav.agarwal@linaro.org> Reviewed-by: Mark Greer <mgreer@animalcreek.com> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
parent
02f1c12cca
commit
698282f659
@ -363,10 +363,12 @@ static void gb_audio_disconnect(struct gb_bundle *bundle)
|
||||
struct gbaudio_data_connection *dai, *_dai;
|
||||
|
||||
|
||||
/* cleanup module related resources first */
|
||||
gbaudio_unregister_module(gbmodule);
|
||||
|
||||
/* inform uevent to above layers */
|
||||
gb_audio_manager_remove(gbmodule->manager_id);
|
||||
|
||||
gbaudio_unregister_module(gbmodule);
|
||||
gbaudio_tplg_release(gbmodule);
|
||||
kfree(gbmodule->topology);
|
||||
gbmodule->topology = NULL;
|
||||
|
Loading…
x
Reference in New Issue
Block a user