@@ -735,6 +735,7 @@ static const struct snd_soc_component_driver q6apm_audio_component = {
735735 .name = APM_AUDIO_DRV_NAME ,
736736 .probe = q6apm_audio_probe ,
737737 .remove = q6apm_audio_remove ,
738+ .remove_order = SND_SOC_COMP_ORDER_LAST ,
738739};
739740
740741static int apm_probe (gpr_device_t * gdev )
@@ -766,13 +767,18 @@ static int apm_probe(gpr_device_t *gdev)
766767
767768 q6apm_get_apm_state (apm );
768769
769- ret = devm_snd_soc_register_component (dev , & q6apm_audio_component , NULL , 0 );
770+ ret = snd_soc_register_component (dev , & q6apm_audio_component , NULL , 0 );
770771 if (ret < 0 ) {
771772 dev_err (dev , "failed to register q6apm: %d\n" , ret );
772773 return ret ;
773774 }
774775
775- return of_platform_populate (dev -> of_node , NULL , NULL , dev );
776+ return devm_of_platform_populate (dev );
777+ }
778+
779+ static void apm_remove (gpr_device_t * gdev )
780+ {
781+ snd_soc_unregister_component (& gdev -> dev );
776782}
777783
778784struct audioreach_module * q6apm_find_module_by_mid (struct q6apm_graph * graph , uint32_t mid )
@@ -839,6 +845,7 @@ MODULE_DEVICE_TABLE(of, apm_device_id);
839845
840846static gpr_driver_t apm_driver = {
841847 .probe = apm_probe ,
848+ .remove = apm_remove ,
842849 .gpr_callback = apm_callback ,
843850 .driver = {
844851 .name = "qcom-apm" ,
0 commit comments