Loading sound/soc/tegra/tegra30_ahub.c +25 −0 Original line number Diff line number Diff line Loading @@ -627,9 +627,34 @@ static int tegra30_ahub_remove(struct platform_device *pdev) return 0; } #ifdef CONFIG_PM_SLEEP static int tegra30_ahub_suspend(struct device *dev) { regcache_mark_dirty(ahub->regmap_ahub); regcache_mark_dirty(ahub->regmap_apbif); return 0; } static int tegra30_ahub_resume(struct device *dev) { int ret; ret = pm_runtime_get_sync(dev); if (ret < 0) return ret; ret = regcache_sync(ahub->regmap_ahub); ret |= regcache_sync(ahub->regmap_apbif); pm_runtime_put(dev); return ret; } #endif static const struct dev_pm_ops tegra30_ahub_pm_ops = { SET_RUNTIME_PM_OPS(tegra30_ahub_runtime_suspend, tegra30_ahub_runtime_resume, NULL) SET_SYSTEM_SLEEP_PM_OPS(tegra30_ahub_suspend, tegra30_ahub_resume) }; static struct platform_driver tegra30_ahub_driver = { Loading sound/soc/tegra/tegra30_i2s.c +26 −0 Original line number Diff line number Diff line Loading @@ -514,6 +514,31 @@ static int tegra30_i2s_platform_remove(struct platform_device *pdev) return 0; } #ifdef CONFIG_PM_SLEEP static int tegra30_i2s_suspend(struct device *dev) { struct tegra30_i2s *i2s = dev_get_drvdata(dev); regcache_mark_dirty(i2s->regmap); return 0; } static int tegra30_i2s_resume(struct device *dev) { struct tegra30_i2s *i2s = dev_get_drvdata(dev); int ret; ret = pm_runtime_get_sync(dev); if (ret < 0) return ret; ret = regcache_sync(i2s->regmap); pm_runtime_put(dev); return ret; } #endif static const struct of_device_id tegra30_i2s_of_match[] = { { .compatible = "nvidia,tegra30-i2s", }, {}, Loading @@ -522,6 +547,7 @@ static const struct of_device_id tegra30_i2s_of_match[] = { static const struct dev_pm_ops tegra30_i2s_pm_ops = { SET_RUNTIME_PM_OPS(tegra30_i2s_runtime_suspend, tegra30_i2s_runtime_resume, NULL) SET_SYSTEM_SLEEP_PM_OPS(tegra30_i2s_suspend, tegra30_i2s_resume) }; static struct platform_driver tegra30_i2s_driver = { Loading sound/soc/tegra/tegra_asoc_utils.c +5 −18 Original line number Diff line number Diff line Loading @@ -173,7 +173,6 @@ int tegra_asoc_utils_init(struct tegra_asoc_utils_data *data, struct device *dev) { int ret; bool new_clocks = false; data->dev = dev; Loading @@ -181,40 +180,28 @@ int tegra_asoc_utils_init(struct tegra_asoc_utils_data *data, data->soc = TEGRA_ASOC_UTILS_SOC_TEGRA20; else if (of_machine_is_compatible("nvidia,tegra30")) data->soc = TEGRA_ASOC_UTILS_SOC_TEGRA30; else if (of_machine_is_compatible("nvidia,tegra114")) { else if (of_machine_is_compatible("nvidia,tegra114")) data->soc = TEGRA_ASOC_UTILS_SOC_TEGRA114; new_clocks = true; } else { else { dev_err(data->dev, "SoC unknown to Tegra ASoC utils\n"); return -EINVAL; } if (new_clocks) data->clk_pll_a = clk_get(dev, "pll_a"); else data->clk_pll_a = clk_get_sys(NULL, "pll_a"); if (IS_ERR(data->clk_pll_a)) { dev_err(data->dev, "Can't retrieve clk pll_a\n"); ret = PTR_ERR(data->clk_pll_a); goto err; } if (new_clocks) data->clk_pll_a_out0 = clk_get(dev, "pll_a_out0"); else data->clk_pll_a_out0 = clk_get_sys(NULL, "pll_a_out0"); if (IS_ERR(data->clk_pll_a_out0)) { dev_err(data->dev, "Can't retrieve clk pll_a_out0\n"); ret = PTR_ERR(data->clk_pll_a_out0); goto err_put_pll_a; } if (new_clocks) data->clk_cdev1 = clk_get(dev, "mclk"); else if (data->soc == TEGRA_ASOC_UTILS_SOC_TEGRA20) data->clk_cdev1 = clk_get_sys(NULL, "cdev1"); else data->clk_cdev1 = clk_get_sys("extern1", NULL); if (IS_ERR(data->clk_cdev1)) { dev_err(data->dev, "Can't retrieve clk cdev1\n"); ret = PTR_ERR(data->clk_cdev1); Loading Loading
sound/soc/tegra/tegra30_ahub.c +25 −0 Original line number Diff line number Diff line Loading @@ -627,9 +627,34 @@ static int tegra30_ahub_remove(struct platform_device *pdev) return 0; } #ifdef CONFIG_PM_SLEEP static int tegra30_ahub_suspend(struct device *dev) { regcache_mark_dirty(ahub->regmap_ahub); regcache_mark_dirty(ahub->regmap_apbif); return 0; } static int tegra30_ahub_resume(struct device *dev) { int ret; ret = pm_runtime_get_sync(dev); if (ret < 0) return ret; ret = regcache_sync(ahub->regmap_ahub); ret |= regcache_sync(ahub->regmap_apbif); pm_runtime_put(dev); return ret; } #endif static const struct dev_pm_ops tegra30_ahub_pm_ops = { SET_RUNTIME_PM_OPS(tegra30_ahub_runtime_suspend, tegra30_ahub_runtime_resume, NULL) SET_SYSTEM_SLEEP_PM_OPS(tegra30_ahub_suspend, tegra30_ahub_resume) }; static struct platform_driver tegra30_ahub_driver = { Loading
sound/soc/tegra/tegra30_i2s.c +26 −0 Original line number Diff line number Diff line Loading @@ -514,6 +514,31 @@ static int tegra30_i2s_platform_remove(struct platform_device *pdev) return 0; } #ifdef CONFIG_PM_SLEEP static int tegra30_i2s_suspend(struct device *dev) { struct tegra30_i2s *i2s = dev_get_drvdata(dev); regcache_mark_dirty(i2s->regmap); return 0; } static int tegra30_i2s_resume(struct device *dev) { struct tegra30_i2s *i2s = dev_get_drvdata(dev); int ret; ret = pm_runtime_get_sync(dev); if (ret < 0) return ret; ret = regcache_sync(i2s->regmap); pm_runtime_put(dev); return ret; } #endif static const struct of_device_id tegra30_i2s_of_match[] = { { .compatible = "nvidia,tegra30-i2s", }, {}, Loading @@ -522,6 +547,7 @@ static const struct of_device_id tegra30_i2s_of_match[] = { static const struct dev_pm_ops tegra30_i2s_pm_ops = { SET_RUNTIME_PM_OPS(tegra30_i2s_runtime_suspend, tegra30_i2s_runtime_resume, NULL) SET_SYSTEM_SLEEP_PM_OPS(tegra30_i2s_suspend, tegra30_i2s_resume) }; static struct platform_driver tegra30_i2s_driver = { Loading
sound/soc/tegra/tegra_asoc_utils.c +5 −18 Original line number Diff line number Diff line Loading @@ -173,7 +173,6 @@ int tegra_asoc_utils_init(struct tegra_asoc_utils_data *data, struct device *dev) { int ret; bool new_clocks = false; data->dev = dev; Loading @@ -181,40 +180,28 @@ int tegra_asoc_utils_init(struct tegra_asoc_utils_data *data, data->soc = TEGRA_ASOC_UTILS_SOC_TEGRA20; else if (of_machine_is_compatible("nvidia,tegra30")) data->soc = TEGRA_ASOC_UTILS_SOC_TEGRA30; else if (of_machine_is_compatible("nvidia,tegra114")) { else if (of_machine_is_compatible("nvidia,tegra114")) data->soc = TEGRA_ASOC_UTILS_SOC_TEGRA114; new_clocks = true; } else { else { dev_err(data->dev, "SoC unknown to Tegra ASoC utils\n"); return -EINVAL; } if (new_clocks) data->clk_pll_a = clk_get(dev, "pll_a"); else data->clk_pll_a = clk_get_sys(NULL, "pll_a"); if (IS_ERR(data->clk_pll_a)) { dev_err(data->dev, "Can't retrieve clk pll_a\n"); ret = PTR_ERR(data->clk_pll_a); goto err; } if (new_clocks) data->clk_pll_a_out0 = clk_get(dev, "pll_a_out0"); else data->clk_pll_a_out0 = clk_get_sys(NULL, "pll_a_out0"); if (IS_ERR(data->clk_pll_a_out0)) { dev_err(data->dev, "Can't retrieve clk pll_a_out0\n"); ret = PTR_ERR(data->clk_pll_a_out0); goto err_put_pll_a; } if (new_clocks) data->clk_cdev1 = clk_get(dev, "mclk"); else if (data->soc == TEGRA_ASOC_UTILS_SOC_TEGRA20) data->clk_cdev1 = clk_get_sys(NULL, "cdev1"); else data->clk_cdev1 = clk_get_sys("extern1", NULL); if (IS_ERR(data->clk_cdev1)) { dev_err(data->dev, "Can't retrieve clk cdev1\n"); ret = PTR_ERR(data->clk_cdev1); Loading