Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753875AbbGFIr4 (ORCPT ); Mon, 6 Jul 2015 04:47:56 -0400 Received: from mail-by2on0116.outbound.protection.outlook.com ([207.46.100.116]:47083 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753744AbbGFIrt (ORCPT ); Mon, 6 Jul 2015 04:47:49 -0400 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none; From: Zidan Wang To: CC: , , , , , , , , Zidan Wang Subject: [alsa-devel][PATCH 2/2] ASoC: fsl_ssi: sound is wrong after suspend/resume Date: Mon, 6 Jul 2015 16:49:17 +0800 Message-ID: <59abec18b5cf1d8e05ba3ae4aad89719bbeca052.1436172253.git.zidan.wang@freescale.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: References: X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD053;1:tqrkw0zVg1bYEOuAKG2YYnq/57Jkty8nHbONKdovTdGZxdM9fQp+5+1xROOar4xVPU+YYDsEK5/T2HqC8vrEAAAWjrxybtHGgkBn6rjf2pKcEreTY7TbAdsq/9KECQeWy1moC//eDbi47tZGtlR5+efdWJDo9UtyA2a1wYqzdTg75XcJjL2A6WDH9l3D/3FKqIjOdh/DcbTmUoSVNfQEnHl6/2buguvzPxHpjWL2/Ar/8JsRteIIQbSNmuYGhXR9xTbXtUgUjdbdPZhCqCPxTEr2NX1seIdLd0x++UwKkCTSCAB6UCm5oKrZPPvsxZGMptcmkKUcOio+mbFCYAUuFojNjVXJWKjFziTemAAWdtICP0x4JD/DDLjoO1WYRLpF X-Forefront-Antispam-Report: CIP:192.88.158.2;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(1060300003)(2980300002)(339900001)(199003)(189002)(6806004)(86362001)(19580395003)(19580405001)(85426001)(50986999)(50226001)(118296001)(110136002)(107886002)(5001960100002)(76176999)(87936001)(46102003)(62966003)(50466002)(105606002)(36756003)(106466001)(92566002)(77156002)(47776003)(229853001)(2950100001)(4290100001)(77096005)(33646002)(2351001)(110436001)(104016003)(48376002)(4001430100001);DIR:OUT;SFP:1102;SCL:1;SRVR:BN3PR0301MB1249;H:az84smr01.freescale.net;FPR:;SPF:Fail;MLV:sfv;A:1;MX:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1249;2:5JJEULYAzaUvEC5RO+Qp5jXC4iZKga5hTTMoFTstLR7WtNVPfzGbJS2eSOisrd9d;3:K5pQQzO4vnW4L74d5DM8iKt9EOkAnTfqvV08aHZdeS1G14zpnDTvAZfsLEVkPvpjeOKbvlMjDeyM+t5OLvxuC2sIWs0D30y2A0zZc+Ilatw1J0mxaHYYksPvwxB+ao+LSXraumWS9mLYEcyEUDGdka3V9P9O84lbw0flYhs6CDWvEvUgNTLi1YBK1WvaT1BMU4JKmrERTxEg7nEwPqAozT8ovWlBSPuxYKY3+GRsfto=;25:XwqEwz7nTWWLqGQrIb5yKu2FGQjbWVXMJ7JxkV7DDwYH/tcH5Ky2zeDyZW1xaqUa/rjFuazK0hllywA2NDf8W7E+4xL4mXn6rRNZHWm/iz2xo697dWZbmhHFhDQs+T2Ft8LPCWOiehp0xKL8xiX4UiC/U8p4FcBFPT9kBI4P852NK4hMK8aW4BkWRjwkcG3GveFT+NzUHCESnTgunZ5iFFwHoRXYllRStBdshQ/yNobscGWT5wjnZ4I0v/+ziHx1WRkcfeGC/yYs/Wa0hVDj5w==;20:RYSpdyBAzzWwgUeKhNvnC+h94dTblmh7fCnOXu3aD6B88QyJ2Vmog0SLdoyQwgqISip4rkm8VEICt04kA8hIpVZr8Uv1CAgevofU+Mqxpo+GGLkrQtDXD5Vqjv45YOfYnhcM3bLJyqvVAxB3WeHPEfWeeKXzO1GCaU+/JvHdT+OZfo2o+I7v0NOogv8SgC+MQ4/FSV3ZZb/2TvXZDclpQZUjPPowEpCOXn0cNyiZ8yXuNJ4BmoccAnR9OVakZyo7VGQ8GaUGFOKpGaCrKF2M7r5Nld1qHyZ8urrfJ0YvQfuYtM6lSr9yipX/nVyKarj+SPSDSmo3vYRCFy4ZgFOCvfEMXmDXmoLISJstcpECp34= X-Microsoft-Antispam: UriScan:;BCL:1;PCL:0;RULEID:;SRVR:BN3PR0301MB1249; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:1;PCL:0;RULEID:(601004)(1201001)(5005006)(3002001);SRVR:BN3PR0301MB1249;BCL:1;PCL:0;RULEID:;SRVR:BN3PR0301MB1249; X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1249;4:yhzIhpcFwbcBpNIn7wVZpuT+dQ76nj5J4oGEm3NQtbxUXrS99h3HsAzADG3Yvgu0UpUNTqacsZqm4Wc3R5/PTS+i4UdQV1M5EjpwSq+FV6iaQ2X3ISfa94VM6qvcaAP6qQjf5l2rg3tWlCQnItUdsY+ZMllgx1UyiBRdPvgrU0mcYgkpQlR5FixsKaJPI7X65WPSaHeTXAgtYlDZB3EHZ8BueHXQvdIng/oOGh0RGGh6KSlDhXouM0O/R+KCfxi+rQwpssDTG0CP8ALwWpVzIQkGutbhIIKAljweDxjpSCkePunF7Xqa9P5i5Et1epBN X-Forefront-PRVS: 06290ECA9D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN3PR0301MB1249;23:qBSQE2F9srxlsPewHncYJ19ne70Gsl2C3CctpEG?= =?us-ascii?Q?473/KfOeHt/oGm9DVLLzD7/ZE1pWwkwwROhJ/UVTjV7cy2kmPg8R5400VKnj?= =?us-ascii?Q?GAeobGWHdcaj1bJdazj3aaAt1aqRUqAuUaM709Ycwqqg7BSRtdoSC2b3iuUX?= =?us-ascii?Q?8vQNO/iQVqMsAEebYW0Pc8ui1aAMHs0oQOeZLLqb2cAQcAIVFvsVeHcDke4V?= =?us-ascii?Q?7xSz4nJvVPuH5WFpMeq8ybv0bQmYV6j8Xn4wFFdi96hlHoI/sad0noO+rOJF?= =?us-ascii?Q?mqGu2P39SMjxNX7+PGiYLOhJdaJxCswEmiqJkzjAuO1PDuTfH+G8pUzAqQaH?= =?us-ascii?Q?sEERh2SW8/exy1xJ+GCcVRbxFT/O5ro+RFJ862hI8ocs+pZkHpc7u41aj0oO?= =?us-ascii?Q?V1MX04eFLciF0lWwT+BjSKMDCZY0r+Gs/B1rhcMGsEivB7wJ4YXrktMS0fjI?= =?us-ascii?Q?wSdi74zKNSnIIOoFWQaiE2UEXi8gx68NIYPZKbnecNNj4u6cYsM8eiVAC9lL?= =?us-ascii?Q?2PTnnrCLX/Ay70Jele1BgYaehRwiIYF0Q66ZhT2P4D91PzwZ+ChnkYppaYuc?= =?us-ascii?Q?87zVIxRx3rt73EmAJKWGntGIwcBwcaPkwDgd5LrK2nSHxa2X+91gJ61Ei4jv?= =?us-ascii?Q?IUTVs7io20d+BZ92BJ0lFO4DYT3don9JMDZgUmX3H53ifzx+3pcjPcxUD+O3?= =?us-ascii?Q?fwI1SQv4qvwpphewNMpH7MHI7LRHMWpuytDVt0ABln4yCbl5GyQziFlTrayU?= =?us-ascii?Q?qiCz/HwcvuL+mJDLuupMHwm6f5gwoWtxiyX7CvY2tVNGsOTvOTZ00H9PxqW7?= =?us-ascii?Q?T+LSCc2+ij1UmialVGxVU8O02iBD2G/IP7CoUAATiR/4ZIKwRMllQ/GZjTOn?= =?us-ascii?Q?e3vEDcCV1T2L7AmzFHrZHgR9BvKHZ/ALw/Bt1By/HrLeRuO9PLwgSAjgEMq8?= =?us-ascii?Q?pRUQShiynefCuYlr2ywZ7fcRbQpC8Q+o3XC+4bNm9M9WrwLbhCI0LJa9o8jO?= =?us-ascii?Q?Ez4jzNeLRu6xr2yM/ailcE3BP?= X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1249;5:yOt8+FYIneMXVeBD5D/6FliQnESgFvLIy9Mpq3L9iuQDrScjddvzXmRxCGV3zIqn9qhzGt50iZ0w0Q7XYqhQxZ+Xx0hSNztvhg5A9ESMSBGjs4hdzkYxZQE7oGDO3cf96R2s4EKoB3/Crmu5NrIFAw==;24:/4NqfO2kacNdP7X8SHA7YsmCqfiAOZA+xoH7exoMknmbqk14DL/q8l24QFCzalc9HEyEpeYv2lKQKPa1lsTBsCrYVcZpx1p4iuvgw/fwk/E=;20:8LwONaE5/1Ihiinux70ybj5PClM1jfRegXo523b9xpXU/+gz54GYU3BJgbDbKMMt0uAy2/tQqOfTZJP+laoJAg== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2015 08:47:47.1297 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d;Ip=[192.88.158.2];Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0301MB1249 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1645 Lines: 53 The register SFCSR is volatile, but some bits in it need to be recovered after suspend/resume. Signed-off-by: Zidan Wang --- sound/soc/fsl/fsl_ssi.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c index 52b894f..e414f18 100644 --- a/sound/soc/fsl/fsl_ssi.c +++ b/sound/soc/fsl/fsl_ssi.c @@ -262,6 +262,9 @@ struct fsl_ssi_private { unsigned int baudclk_streams; unsigned int bitclk_freq; + /*regcache for SFCSR*/ + u32 regcache_sfcsr; + /* DMA params */ struct snd_dmaengine_dai_dma_data dma_params_tx; struct snd_dmaengine_dai_dma_data dma_params_rx; @@ -1553,6 +1556,9 @@ static int fsl_ssi_suspend(struct device *dev) struct fsl_ssi_private *ssi_private = dev_get_drvdata(dev); struct regmap *regs = ssi_private->regs; + regmap_read(regs, CCSR_SSI_SFCSR, + &ssi_private->regcache_sfcsr); + regcache_cache_only(regs, true); regcache_mark_dirty(regs); @@ -1565,6 +1571,12 @@ static int fsl_ssi_resume(struct device *dev) struct regmap *regs = ssi_private->regs; regcache_cache_only(regs, false); + + regmap_update_bits(regs, CCSR_SSI_SFCSR, + CCSR_SSI_SFCSR_RFWM1_MASK | CCSR_SSI_SFCSR_TFWM1_MASK | + CCSR_SSI_SFCSR_RFWM0_MASK | CCSR_SSI_SFCSR_TFWM0_MASK, + ssi_private->regcache_sfcsr); + return regcache_sync(regs); } #endif /* CONFIG_PM_SLEEP */ -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/