Suspend related fixes on Tegra
Merge series from Sameer Pujar <spujar@nvidia.com>: This series addresses following problems: * The runtime PM is not balanced in MVC driver, whenever mute or volume mixer controls are set. * Some of the AHUB devices (SFC, MVC, Mixer, AMX and ADX) use late system sleep. Suspend failure is seen on Jetson TX2 platform.
This commit is contained in:
Коммит
8a724d5f60
|
@ -514,8 +514,8 @@ static int tegra210_adx_platform_remove(struct platform_device *pdev)
|
|||
static const struct dev_pm_ops tegra210_adx_pm_ops = {
|
||||
SET_RUNTIME_PM_OPS(tegra210_adx_runtime_suspend,
|
||||
tegra210_adx_runtime_resume, NULL)
|
||||
SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
|
||||
pm_runtime_force_resume)
|
||||
SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
|
||||
pm_runtime_force_resume)
|
||||
};
|
||||
|
||||
static struct platform_driver tegra210_adx_driver = {
|
||||
|
|
|
@ -583,8 +583,8 @@ static int tegra210_amx_platform_remove(struct platform_device *pdev)
|
|||
static const struct dev_pm_ops tegra210_amx_pm_ops = {
|
||||
SET_RUNTIME_PM_OPS(tegra210_amx_runtime_suspend,
|
||||
tegra210_amx_runtime_resume, NULL)
|
||||
SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
|
||||
pm_runtime_force_resume)
|
||||
SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
|
||||
pm_runtime_force_resume)
|
||||
};
|
||||
|
||||
static struct platform_driver tegra210_amx_driver = {
|
||||
|
|
|
@ -666,8 +666,8 @@ static int tegra210_mixer_platform_remove(struct platform_device *pdev)
|
|||
static const struct dev_pm_ops tegra210_mixer_pm_ops = {
|
||||
SET_RUNTIME_PM_OPS(tegra210_mixer_runtime_suspend,
|
||||
tegra210_mixer_runtime_resume, NULL)
|
||||
SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
|
||||
pm_runtime_force_resume)
|
||||
SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
|
||||
pm_runtime_force_resume)
|
||||
};
|
||||
|
||||
static struct platform_driver tegra210_mixer_driver = {
|
||||
|
|
|
@ -164,7 +164,7 @@ static int tegra210_mvc_put_mute(struct snd_kcontrol *kcontrol,
|
|||
if (err < 0)
|
||||
goto end;
|
||||
|
||||
return 1;
|
||||
err = 1;
|
||||
|
||||
end:
|
||||
pm_runtime_put(cmpnt->dev);
|
||||
|
@ -236,7 +236,7 @@ static int tegra210_mvc_put_vol(struct snd_kcontrol *kcontrol,
|
|||
TEGRA210_MVC_VOLUME_SWITCH_MASK,
|
||||
TEGRA210_MVC_VOLUME_SWITCH_TRIGGER);
|
||||
|
||||
return 1;
|
||||
err = 1;
|
||||
|
||||
end:
|
||||
pm_runtime_put(cmpnt->dev);
|
||||
|
@ -639,8 +639,8 @@ static int tegra210_mvc_platform_remove(struct platform_device *pdev)
|
|||
static const struct dev_pm_ops tegra210_mvc_pm_ops = {
|
||||
SET_RUNTIME_PM_OPS(tegra210_mvc_runtime_suspend,
|
||||
tegra210_mvc_runtime_resume, NULL)
|
||||
SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
|
||||
pm_runtime_force_resume)
|
||||
SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
|
||||
pm_runtime_force_resume)
|
||||
};
|
||||
|
||||
static struct platform_driver tegra210_mvc_driver = {
|
||||
|
|
|
@ -3594,8 +3594,8 @@ static int tegra210_sfc_platform_remove(struct platform_device *pdev)
|
|||
static const struct dev_pm_ops tegra210_sfc_pm_ops = {
|
||||
SET_RUNTIME_PM_OPS(tegra210_sfc_runtime_suspend,
|
||||
tegra210_sfc_runtime_resume, NULL)
|
||||
SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
|
||||
pm_runtime_force_resume)
|
||||
SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
|
||||
pm_runtime_force_resume)
|
||||
};
|
||||
|
||||
static struct platform_driver tegra210_sfc_driver = {
|
||||
|
|
Загрузка…
Ссылка в новой задаче