@@ -40,7 +40,6 @@ static int imx_rpmsg_late_probe(struct snd_soc_card *card)
4040 int ret ;
4141
4242 if (data -> lpa ) {
43- struct snd_soc_component * codec_comp ;
4443 struct device_node * codec_np ;
4544 struct device_driver * codec_drv ;
4645 struct device * codec_dev = NULL ;
@@ -60,22 +59,6 @@ static int imx_rpmsg_late_probe(struct snd_soc_card *card)
6059 }
6160 }
6261 if (codec_dev ) {
63- codec_comp = snd_soc_lookup_component_nolocked (codec_dev , NULL );
64- if (codec_comp ) {
65- int i , num_widgets ;
66- const char * widgets ;
67- struct snd_soc_dapm_context * dapm ;
68-
69- num_widgets = of_property_count_strings (data -> card .dev -> of_node ,
70- "ignore-suspend-widgets" );
71- for (i = 0 ; i < num_widgets ; i ++ ) {
72- of_property_read_string_index (data -> card .dev -> of_node ,
73- "ignore-suspend-widgets" ,
74- i , & widgets );
75- dapm = snd_soc_component_to_dapm (codec_comp );
76- snd_soc_dapm_ignore_suspend (dapm , widgets );
77- }
78- }
7962 codec_drv = codec_dev -> driver ;
8063 if (codec_drv -> pm ) {
8164 memcpy (& lpa_pm , codec_drv -> pm , sizeof (lpa_pm ));
@@ -226,6 +209,15 @@ static int imx_rpmsg_probe(struct platform_device *pdev)
226209 }
227210 }
228211
212+ if (data -> lpa && of_property_present (np , "ignore-suspend-widgets" )) {
213+ ret = snd_soc_of_parse_ignore_suspend_widgets (& data -> card ,
214+ "ignore-suspend-widgets" );
215+ if (ret ) {
216+ dev_err (& pdev -> dev , "failed to parse ignore-suspend-widgets: %d\n" , ret );
217+ return ret ;
218+ }
219+ }
220+
229221 platform_set_drvdata (pdev , & data -> card );
230222 snd_soc_card_set_drvdata (& data -> card , data );
231223 ret = devm_snd_soc_register_card (& pdev -> dev , & data -> card );
0 commit comments