From c7eca96f46f1162893f1031d406e22d2e20b061a Mon Sep 17 00:00:00 2001 From: Nikesh Oswal Date: Tue, 13 Dec 2011 15:10:28 +0530 Subject: asoc: tegra: restore i2s/das/spdif registers after suspend for t20 when system resumes from suspend state the i2s/das/spdif registers have power on reset values, this change restores the registers with their prior values from cache Bug: 904530 Change-Id: I35c14d95d2d6bf5bc116a1a80e21f4904c8969e5 Signed-off-by: Nikesh Oswal Reviewed-on: http://git-master/r/69715 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Sumit Bhattacharya Reviewed-by: Scott Peterson --- sound/soc/tegra/tegra20_das.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'sound/soc/tegra/tegra20_das.h') diff --git a/sound/soc/tegra/tegra20_das.h b/sound/soc/tegra/tegra20_das.h index 2fd731b70849..1d7c57fd0092 100644 --- a/sound/soc/tegra/tegra20_das.h +++ b/sound/soc/tegra/tegra20_das.h @@ -83,12 +83,23 @@ #define TEGRA20_DAS_DAC_ID_2 1 #define TEGRA20_DAS_DAC_ID_3 2 +#ifdef CONFIG_PM +#define TEGRA20_DAS_CACHE_SIZE ((((TEGRA20_DAS_DAC_INPUT_DATA_CLK_SEL) + (TEGRA20_DAS_DAC_INPUT_DATA_CLK_SEL_STRIDE*TEGRA20_DAS_DAC_ID_3))>>2) + 1) +#endif + struct tegra20_das { struct device *dev; void __iomem *regs; struct dentry *debug; +#ifdef CONFIG_PM + u32 reg_cache[TEGRA20_DAS_CACHE_SIZE]; +#endif }; +#ifdef CONFIG_PM +/* Restores the das registers from cache */ +extern int tegra20_das_resume(); +#endif /* * Terminology: * DAS: Digital audio switch (HW module controlled by this driver) -- cgit v1.2.3