From patchwork Thu Dec 10 11:02:48 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zidan Wang X-Patchwork-Id: 7818261 Return-Path: X-Original-To: patchwork-alsa-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 52BFF9F39B for ; Thu, 10 Dec 2015 11:19:48 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 6AE8F205AA for ; Thu, 10 Dec 2015 11:19:47 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.kernel.org (Postfix) with ESMTP id 83CD320547 for ; Thu, 10 Dec 2015 11:19:44 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id 4B4BE265290; Thu, 10 Dec 2015 12:19:43 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Spam-Status: No, score=-2.6 required=5.0 tests=BAD_ENC_HEADER,BAYES_00, RCVD_IN_DNSWL_LOW, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id BC95526546D; Thu, 10 Dec 2015 12:14:29 +0100 (CET) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id 4401226546B; Thu, 10 Dec 2015 12:14:29 +0100 (CET) Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0115.outbound.protection.outlook.com [157.56.110.115]) by alsa0.perex.cz (Postfix) with ESMTP id 8D7BB2665AF for ; Thu, 10 Dec 2015 12:00:39 +0100 (CET) Received: from BLUPR03CA004.namprd03.prod.outlook.com (10.255.124.21) by BN3PR0301MB1252.namprd03.prod.outlook.com (10.161.207.28) with Microsoft SMTP Server (TLS) id 15.1.337.19; Thu, 10 Dec 2015 11:00:37 +0000 Received: from BL2FFO11FD036.protection.gbl (10.255.124.4) by BLUPR03CA004.outlook.office365.com (10.255.124.21) with Microsoft SMTP Server (TLS) id 15.1.355.16 via Frontend Transport; Thu, 10 Dec 2015 11:00:37 +0000 Authentication-Results: spf=permerror (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none; freescale.mail.onmicrosoft.com; dmarc=none action=none header.from=freescale.com; Received-SPF: PermError (protection.outlook.com: domain of freescale.com used an invalid SPF mechanism) Received: from az84smr01.freescale.net (192.88.158.2) by BL2FFO11FD036.mail.protection.outlook.com (10.173.161.132) with Microsoft SMTP Server (TLS) id 15.1.346.13 via Frontend Transport; Thu, 10 Dec 2015 11:00:37 +0000 Received: from b50113.ap.freescale.net (b50113.ap.freescale.net [10.192.241.29]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id tBAB0WBZ007431; Thu, 10 Dec 2015 04:00:32 -0700 From: Zidan Wang To: Date: Thu, 10 Dec 2015 19:02:48 +0800 Message-ID: <1449745370-18960-1-git-send-email-zidan.wang@freescale.com> X-Mailer: git-send-email 1.9.1 X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD036; 1:spQZ5JNCNBskgL/JfSIMUzAD1gYv5swcZMUZrlwgUOPSrwirnA3uuot03Mxfd1ocCbWKQi6+b5/ad3f0RTcZhumeopDeybXtk9zGBnC9RNPKssK/1Aa3kKE3tSZbWLSmeIMgQ+mf0w3IdtOqF8wtyiobOKdgrTG1vsn4rq82bhY0IDaWs4Ld3/IHGTb/rK0pVQM4qqWZQD0UUaLBNasXWiRfho3y5RXjvCm7JtIdu7SgUtgSrTL28y2EulAVib0z8BRyZRsZzhwa3UqOjQ4gWvICQoIOf87nTMdX2H5cTEMZV9vBReLxmkmWq7WeB6hOyV1o8CobWgR0tudBAESNQfsU+PVT88kxXwxBhFU7Hrrp5GvRNFc55WQRRd03kqa+u1kO6zmGNjeZGV1qIdctuFecWW5ovaPyzLuZDTIs254= X-Forefront-Antispam-Report: CIP:192.88.158.2; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(448002)(189002)(199003)(229853001)(2351001)(50466002)(48376002)(6806005)(106466001)(86362001)(77096005)(36756003)(47776003)(50986999)(50226001)(1096002)(5008740100001)(97736004)(81156007)(69596002)(19580395003)(19580405001)(4001430100002)(33646002)(5001960100002)(107886002)(104016004)(110136002)(189998001)(1220700001)(92566002)(11100500001)(586003)(87936001)(5003940100001)(85326001); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR0301MB1252; H:az84smr01.freescale.net; FPR:; SPF:PermError; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BN3PR0301MB1252; 2:tXRoYx3agGu8NRUzy0F00OCDo47CQVFM/1a14b5OaPFyBi9BPTAEBYBikFtzfRrFYbJgY1IGlA2s+0DSCkNOcmQlQ3MmdJVQhvd92f2ooD6VGmd36FgqyqTYRwgYWeY4REWGrYaCyS/SlKtZW1420w==; 3:exggCptI11I6dHaKdsRr8C2z5YuAaS0GM7dB+GwnRqfGLkb2VAdYbCbdFstnPOUoiUpdXVUqeXCPboTb5jwZ3+n/WLyfk2pGMG9yiqoiifbZL7bowiXDv6PZ2IAriuLz7rqsv32b/Kc3IA1URX9PQhPcoYv+W1oFju9IQLnuTrcDWhmvMS7wChAMcX/w6lO8+qwmUMYIWpuCzwH42nFuygAQi/OlNWwiWJjJnM+W6rE=; 25:t5hOk5lRm8r0sYMChQ4U3FlKgUnN6/Y1OM837jfSPOn5rZuOxzPNxP6UzmOA222rzjJVWAdhsunPzM5i8mSEeHtU9KPQGBYlGV1fS1lEif6xf7pjIlg7HaDcy4NXh3Mz2bYg4PmOR4PQuvspNnr3p4/JukuoINZoOh2PEo0putRxawdwC1ABrXgDkuoRlrnNRvraxkLA8byp9EV486wvuMx9tIY/0LDYyeWKVUz6yjcckyA6vfibVuDT2pY30SW3QjEgtiUQ1K5dkam1Vu1kKA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0301MB1252; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0301MB1252; 20:0QlkmNqUqcllRm2kcmI0Cc8Y7ZVJeG3xn7OMXF2asURIr07Zp9xvqpKgBzmFbks2rd2FIvOjyBDiqW5BzcnKRIkPk6WXbDgwm9LrXT8GfLVm1/+Z0oY9pnnE6KtIgoN/ETNzeYyqvXe5eJ8hPGlzio3sOwjeaYs3/qbEAv65Ov/17s7UeV2OKUqJgPxQTnRfIDK2BuKzbjG74CRKfOXbpYWLH79kUCqomREuEMjg+ouiIzGwT763/9tYaCrfltK1lXDnEhZsH7rQ0Jyd88o3RsipNwsqWtt5sB8TVP6CSgP/pcw/pZ8xWjE/b0OKgXSFk/6B3/SGXmyOOzlOPdDHwpASTVhfr45KPRMHTm6tRJo=; 4:aXUWNSoVP0HVLdLbaOcw+EbnnG8TBHUsYnBmbISDusLEfdP9GpN/kIyGyHk65bueZ9aQEcM2gUwDH99V7qY6f6So9azEzgrLwrm8BVLTmJU3o3zob7cGuvIhCyeZWoqdSDKctVnJgg4NDC3anoUW8zYtV7uZaIsDI+lQmjKeErdf4wMUpLJX0XmkWhfwHrmzlrybCZcA9df+ZV0eWwIaVyJ8c3CfGjclOaTfosuXGLCIT7J1sNC0c7PqP8/V6lPzqW1bBDvYFbsPU7fGMLrslRrzVT0qwRs9NS7fbeVM4fxJwFDaw/kN7G9JyFMuMy23899qf2Ir17h/r4acJyyUbBJBQ0EBGEsj+UQd6xKA8LyN5/GtUm1aiH2yEuP51fQswF1ktFTGD0H+AZtLZQbChDd8d0YtZe4iCcGdC5DH52KdNR+v3zRk5AunVdARFSer X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(520078)(8121501046)(5005006)(10201501046)(3002001); SRVR:BN3PR0301MB1252; BCL:0; PCL:0; RULEID:; SRVR:BN3PR0301MB1252; X-Forefront-PRVS: 078693968A X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0301MB1252; 23:Xk1A6Ozs+D0Q7J1nbDRQEPx+VrWIhif63RL7RNI?= =?us-ascii?Q?8SDBT7tPj5kPEfs7V1inG5kMKNp1rHdEDsdvNU3toHzfvqQI7f2RjlbNRv3X?= =?us-ascii?Q?7tQkVH4gHY1JtbUDtrV/dL4HWdPXN67fhIX90Vt/kNrifxFEFptua5btshUL?= =?us-ascii?Q?re7ez+zhA5hUNODVIePi4ywMICdf7hgtGyiwO9lkJn+irt6Cf7u8nhc7h5NH?= =?us-ascii?Q?e/ZD7vbFiY3nJOieHOQ6VGmAFIbltyR+4QniVuOUo2yssDJ/bttT+79dtNl4?= =?us-ascii?Q?eaRKDpHWcXbQp5W0ISlKQ6drJLN8HUBFLFgKI6brmVPS4JSQ5nKHRun2Wlz/?= =?us-ascii?Q?n6v82G+Z7pPoXxobAfM5kmb6SM8xR11+yPDuaRwrT1OGhzUvH85XP47+juGI?= =?us-ascii?Q?yVww7PdsNpXaG5dm6UciRjLXIgKORfpNN/YIv48ZCavpvbOx/J0ZPtFlPPNz?= =?us-ascii?Q?9M9aEsCYPjlkik9zqAH+EuLRshBSRliqf4dW8ahgTuxKxILYWd2J10pZSV06?= =?us-ascii?Q?wGEiUA3Gr+SsrPYSmtR40vc3+1BSRMX61zKESWWr0iEYumwiCaopF2/jV0J+?= =?us-ascii?Q?QCYIAO4nOoM7LMM/s0Z+3ZdvDK1W4ebRdlshguwf0Zwl+T0/fkRsOfS0QXt3?= =?us-ascii?Q?3YWx0/7R+EAgQ01YgaeX1TSy5YPeBDu8l27JShxjkpv+NzZT/D1C2xfIQkrT?= =?us-ascii?Q?bCODeBrpKpBHkfVk0knpwG5FU2c5gbVy48oeXidmOzDx669Xod12ptxVAWxS?= =?us-ascii?Q?Uvzzuj8wsBWKQ42XjWFKCniY3medtAVE3hhEpVYzCBX8+VLnDSiAY3YEKwTD?= =?us-ascii?Q?jEoIxW+uqL+b/jLnBDcC6XoTp3At9UZyKsoptECNUjqdZ1wkFJiGmFJOo0mj?= =?us-ascii?Q?IBHYuO6GJhmmxgEOvPsGaxAvptq7TS9Nv8mYtezK+WORuYBZINjaz0WXiiby?= =?us-ascii?Q?tE7DjDCyEIkX6lpJJ9+UWOaiRn7wQ/tyrHk7D0mH6cGy5tTIKpkvKEM/hDHn?= =?us-ascii?Q?6Zkaryn+IHVldD7+5pZ42ZPU/FQe3TyQyFW8IC0Xcc+CdNg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0301MB1252; 5:j7/XZ67hr9d8PYMXJuqECc6yIwGovgsEXqnOau7IObQzF8DdkWOGTpNCeU2HWLQKfya2pSK0dgcbid7bGVBt24NQTW+3Uu6ZPNW/9+vhHPF1eCYoxZwwtjkkKzEw03qqtBBrE840zsCDa/+PtcaFfA==; 24:m5pRMEFuB0edjW7wDFaQHCtGtkIUkhlJ4MPqhEn1Bopxs8VxeQIj1IP9eOft2jmiJvwEhE5o5oJTfpD710gKVN6XqimG5tAxgK6CTtTWuwk= X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2015 11:00:37.0969 (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: BN3PR0301MB1252 Cc: alsa-devel@alsa-project.org, Zidan Wang , Xiubo.Lee@gmail.com, tiwai@suse.com, nicoleotsuka@gmail.com Subject: [alsa-devel] [PATCH] ASoC: fsl_asrc: sound is wrong after suspend/resume X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP The register ASRCFG is volatile, but some bits need to be recovered after suspend/resume. Signed-off-by: Zidan Wang --- sound/soc/fsl/fsl_asrc.c | 6 ++++++ sound/soc/fsl/fsl_asrc.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c index 3e404ba..942e74bc 100644 --- a/sound/soc/fsl/fsl_asrc.c +++ b/sound/soc/fsl/fsl_asrc.c @@ -990,6 +990,9 @@ static int fsl_asrc_suspend(struct device *dev) { struct fsl_asrc *asrc_priv = dev_get_drvdata(dev); + regmap_read(asrc_priv->regmap, REG_ASRCFG, + &asrc_priv->regcache_cfg); + regcache_cache_only(asrc_priv->regmap, true); regcache_mark_dirty(asrc_priv->regmap); @@ -1010,6 +1013,9 @@ static int fsl_asrc_resume(struct device *dev) regcache_cache_only(asrc_priv->regmap, false); regcache_sync(asrc_priv->regmap); + regmap_update_bits(asrc_priv->regmap, REG_ASRCFG, + 0x1FFFC0, asrc_priv->regcache_cfg); + /* Restart enabled pairs */ regmap_update_bits(asrc_priv->regmap, REG_ASRCTR, ASRCTR_ASRCEi_ALL_MASK, asrctr); diff --git a/sound/soc/fsl/fsl_asrc.h b/sound/soc/fsl/fsl_asrc.h index 68802cd..3695ca9 100644 --- a/sound/soc/fsl/fsl_asrc.h +++ b/sound/soc/fsl/fsl_asrc.h @@ -453,6 +453,8 @@ struct fsl_asrc { int asrc_rate; int asrc_width; + + u32 regcache_cfg; }; extern struct snd_soc_platform_driver fsl_asrc_platform;