mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 17:25:35 +03:00
Revert "ASoC: Machine: ignore suspend for dai-links"
This reverts commit 1114afa7e3d861631d0585d76ca54363f46361c3 (manual revert done to resolve conflicts) Earlier suspend was ignored for Android because of high suspend latency in snd_soc_suspend(), this was breaking system suspend KPIs. This alone was contributing to around 3 seconds of latency. One more reason to ignore suspend was, during Android playback or capture, device cannot go suspend because of acquired wake locks. There was an issue in ASoC core which is fixed now in upstream, which helps to reduce the suspend times. The same is available in downstream kernel and below is the commit. "ASoC: core: Don't schedule DAPM work if already in target state" With this patch suspend/Resume latency for ASoC in 3 trials are 7.362/0.091, 5.445/0.088 and 5.096/0.087 ms respectively. Bug 200390814 Change-Id: Iae3b4f19f34568585ed120460f173d4b234a3eb1 Signed-off-by: Sameer Pujar <spujar@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1971226 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-mobile-misra <svc-mobile-misra@nvidia.com> Reviewed-by: Mohan Kumar D <mkumard@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Ravindra Lokhande <rlokhande@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
@@ -96,7 +96,6 @@ struct tegra_machine_soc_data {
|
|||||||
static int tegra_machine_driver_remove(struct platform_device *);
|
static int tegra_machine_driver_remove(struct platform_device *);
|
||||||
static int tegra_machine_driver_probe(struct platform_device *);
|
static int tegra_machine_driver_probe(struct platform_device *);
|
||||||
static void dai_link_setup(struct platform_device *);
|
static void dai_link_setup(struct platform_device *);
|
||||||
static void ignore_suspend(struct snd_soc_card *);
|
|
||||||
static int tegra_machine_sfc_init(struct snd_soc_pcm_runtime *);
|
static int tegra_machine_sfc_init(struct snd_soc_pcm_runtime *);
|
||||||
static int tegra_machine_rt565x_init(struct snd_soc_pcm_runtime *);
|
static int tegra_machine_rt565x_init(struct snd_soc_pcm_runtime *);
|
||||||
|
|
||||||
@@ -993,14 +992,6 @@ static const struct of_device_id tegra_machine_of_match[] = {
|
|||||||
{},
|
{},
|
||||||
};
|
};
|
||||||
|
|
||||||
static void __maybe_unused ignore_suspend(struct snd_soc_card *card)
|
|
||||||
{
|
|
||||||
struct snd_soc_pcm_runtime *rtd;
|
|
||||||
list_for_each_entry(rtd, &card->rtd_list, list) {
|
|
||||||
rtd->dai_link->ignore_suspend = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static int tegra_machine_driver_probe(struct platform_device *pdev)
|
static int tegra_machine_driver_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct device_node *np = pdev->dev.of_node;
|
struct device_node *np = pdev->dev.of_node;
|
||||||
@@ -1097,10 +1088,6 @@ static int tegra_machine_driver_probe(struct platform_device *pdev)
|
|||||||
goto err_alloc_dai_link;
|
goto err_alloc_dai_link;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_ANDROID
|
|
||||||
ignore_suspend(card);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
tegra_machine_add_i2s_codec_controls(card,
|
tegra_machine_add_i2s_codec_controls(card,
|
||||||
machine->soc_data->num_xbar_dai_links +
|
machine->soc_data->num_xbar_dai_links +
|
||||||
machine->num_codec_links);
|
machine->num_codec_links);
|
||||||
|
|||||||
Reference in New Issue
Block a user