forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-31 f70575805708cabdedea7498aaa3f710fde4d920
kernel/sound/soc/uniphier/aio-cpu.c
....@@ -420,24 +420,36 @@
420420 }
421421 EXPORT_SYMBOL_GPL(uniphier_aio_dai_remove);
422422
423
-int uniphier_aio_dai_suspend(struct snd_soc_dai *dai)
423
+static void uniphier_aio_dai_suspend(struct snd_soc_dai *dai)
424424 {
425425 struct uniphier_aio *aio = uniphier_priv(dai);
426
+
427
+ if (!snd_soc_dai_active(dai))
428
+ return;
426429
427430 aio->chip->num_wup_aios--;
428431 if (!aio->chip->num_wup_aios) {
429432 reset_control_assert(aio->chip->rst);
430433 clk_disable_unprepare(aio->chip->clk);
431434 }
435
+}
432436
437
+static int uniphier_aio_suspend(struct snd_soc_component *component)
438
+{
439
+ struct snd_soc_dai *dai;
440
+
441
+ for_each_component_dais(component, dai)
442
+ uniphier_aio_dai_suspend(dai);
433443 return 0;
434444 }
435
-EXPORT_SYMBOL_GPL(uniphier_aio_dai_suspend);
436445
437
-int uniphier_aio_dai_resume(struct snd_soc_dai *dai)
446
+static int uniphier_aio_dai_resume(struct snd_soc_dai *dai)
438447 {
439448 struct uniphier_aio *aio = uniphier_priv(dai);
440449 int ret, i;
450
+
451
+ if (!snd_soc_dai_active(dai))
452
+ return 0;
441453
442454 if (!aio->chip->active)
443455 return 0;
....@@ -484,7 +496,16 @@
484496
485497 return ret;
486498 }
487
-EXPORT_SYMBOL_GPL(uniphier_aio_dai_resume);
499
+
500
+static int uniphier_aio_resume(struct snd_soc_component *component)
501
+{
502
+ struct snd_soc_dai *dai;
503
+ int ret = 0;
504
+
505
+ for_each_component_dais(component, dai)
506
+ ret |= uniphier_aio_dai_resume(dai);
507
+ return ret;
508
+}
488509
489510 static int uniphier_aio_vol_info(struct snd_kcontrol *kcontrol,
490511 struct snd_ctl_elem_info *uinfo)
....@@ -596,6 +617,8 @@
596617 .name = "uniphier-aio",
597618 .controls = uniphier_aio_controls,
598619 .num_controls = ARRAY_SIZE(uniphier_aio_controls),
620
+ .suspend = uniphier_aio_suspend,
621
+ .resume = uniphier_aio_resume,
599622 };
600623
601624 int uniphier_aio_probe(struct platform_device *pdev)