From patchwork Mon Nov 9 11:02:29 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zidan Wang X-Patchwork-Id: 7582581 Return-Path: X-Original-To: patchwork-alsa-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id B381EC05C6 for ; Mon, 9 Nov 2015 11:01:05 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 3F9132053F for ; Mon, 9 Nov 2015 11:01:00 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.kernel.org (Postfix) with ESMTP id D625D2053E for ; Mon, 9 Nov 2015 11:00:54 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id E3E032619DB; Mon, 9 Nov 2015 12:00:52 +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 C5F6426154F; Mon, 9 Nov 2015 12:00:42 +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 CF49F261569; Mon, 9 Nov 2015 12:00:41 +0100 (CET) Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0115.outbound.protection.outlook.com [157.56.111.115]) by alsa0.perex.cz (Postfix) with ESMTP id 4F0F326153C for ; Mon, 9 Nov 2015 12:00:34 +0100 (CET) Received: from BY2PR03CA007.namprd03.prod.outlook.com (10.255.93.24) by BN3PR0301MB1250.namprd03.prod.outlook.com (10.161.207.26) with Microsoft SMTP Server (TLS) id 15.1.318.15; Mon, 9 Nov 2015 11:00:32 +0000 Received: from BN1AFFO11FD019.protection.gbl (10.255.93.4) by BY2PR03CA007.outlook.office365.com (10.255.93.24) with Microsoft SMTP Server (TLS) id 15.1.312.18 via Frontend Transport; Mon, 9 Nov 2015 11:00:31 +0000 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; freescale.mail.onmicrosoft.com; dmarc=none action=none header.from=freescale.com; Received-SPF: Fail (protection.outlook.com: domain of freescale.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BN1AFFO11FD019.mail.protection.outlook.com (10.58.52.79) with Microsoft SMTP Server (TLS) id 15.1.325.5 via Frontend Transport; Mon, 9 Nov 2015 11:00:31 +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 tA9B0Rrw015809; Mon, 9 Nov 2015 04:00:28 -0700 From: Zidan Wang To: Date: Mon, 9 Nov 2015 19:02:29 +0800 Message-ID: X-Mailer: git-send-email 1.9.1 X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD019; 1:yO+I+ez0Zvzh8U27Z4TFqprNFr0Y2ydnWQ1p+Xk1DX/UsxQewk+vZONZIg2KYnoqejt/16IFTVfPitN+p+7ufeoGtt7V0mrypgBkHIYCmbBBoHQ3s+bcQHeg0LKsbkHGZWk3xEzZ/6/i5qxVKHSPi4oBblGMVCaltknKF+/yKm85EZj+025AQY9vS9//C4XxeZymMbT794UzkMUrLMGGQEPDI3CBdnpsSZC7oNPSse6QzcPluMX4msrRgK9tlac7Wd/6MwYN4jix2ozlZ1rXIUKcPGXXfeYpFxkwNg9nfOnXHOE0hjsQW7NO7WX9eN53009IZXiiWRziT1ARQYe3UpI3lEkUjZbufTEg3ttDxes5KLO/ZFGWrLfOnpLCQvL0tS/2AxmYvT+dnMl4fRH2Ug== X-Forefront-Antispam-Report: CIP:192.88.158.2; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(19580395003)(19580405001)(33646002)(87936001)(118296001)(11100500001)(69596002)(50986999)(106466001)(5008740100001)(229853001)(5003940100001)(2351001)(36756003)(104016004)(6806005)(105606002)(77096005)(92566002)(4001430100002)(189998001)(81156007)(86362001)(107886002)(110136002)(5007970100001)(97736004)(85426001)(50466002)(50226001)(48376002)(5001920100001)(5001960100002)(47776003); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR0301MB1250; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BN3PR0301MB1250; 2:D7OeuCHHA3zPiQeRjxEEIaLaTWRAKkMGF3swM5nYPKRS7Il80Zu2p/zVysGWWVkBDll9GchX/SPiVyC69oPDSPKk7BThPhcrpHtQmXmY68DMdqL2CMWv6R1oNUdh5TZSPHrUV1DKrerN5nFZPLpU/7OjjSaB0FygBZJ7tFoDQx0=; 3:Oo9RmmBakvfjhWpRZT5vjRp6F7zsMupEo54CUwceypBiFzn1S2Yjq3ajgjUH0I3IKQ7LlpHVlioYgiXhoEYdzr5Tc63sQ2FL4jMGnJ85iUxYpgJG2zeTdFoH07tgfJnFb8D7zwjcGXa3QcXlMDHOmWtPcxvBImdbclkQl3R9dcFV0mGyWbRX1gAxwnOakpXbHA/+P49mEd7iYEzdfZ3B3ITflkOHyq4PB2kK4jMWp74=; 25:1ZW2gQGGUKUSEG9/9nex91xrQMX959kOwvxnUlmGrrKSxA5RapUfn5ino86XSSZ6CYqxeDCtHPVBtYSkXV2mX3bsTaffw9hunnrESF+Xj8feIFnsOwFQyOKeCHelMxmYjiLAIGD2TUKcu3GzcqVmXQwftYlKdGF1RsqsLx77yhwQdxcRlFtTcbTxTPEkUkGQhiEU+uKOdQ2DWng9JsmdzY2VUVirLC3Z3+El0t/J6raaZH+rr8LrKc16lD5El8pMX1iFs786kiFGoYD5g0riQg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0301MB1250; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0301MB1250; 20:uHUVzgB/GortkWcs0dEzMfZ/3dC2kP8+IdsBEIzy3P1Z2P2KX6lGepiVWoZ0P76tqYaNhSqC1EeQhAxVjZHT7tHMiYiV0ouxTvLNcnWyUuZ2e4Tx46PC30CxFuqsdr+OYbG5bSJZfOLmXPxoyop4aAwUjI07uXZrSGneJ4VVmGHNK04E/2uZxb1wcz2lwHmBOEYTrnJ8dmvLkWItdMA50e9koRwUbEeNwjHBxj7Bk6c53L4wCwcbKf1ZrcnNvsjkmvfnMAQmCl0iRqgvC+BJMijy3TM0XSa6QuhfM2oZaZsaY/IoRycC2XLDxCoLyIeq8u5MEBKhUJL0P1VLWNdBIPzNntfrgHlfG1frlc3gu10=; 4:gUa2sLVLcJ9p7suC5LWwhRBGcRnm4TrK4VzZOC4SS3XieR63WYrdpWPLdpKlc9lb+GaFAGBT7xiW28ZkH9UbRRpi4xbQ+Ucv8lznGyfA9rEwLq6WmMjukLNDNyHkMbjesgX9hSJLlcQcwFGmyMPO6LHEo12+XdIKdVg97rzfz/9tuz2BsqRuKn75KAhSSWf+5zzBijvjUOFTZ5hiPX77ZwCSxrDBMmaAsXB+pfdKHYLgSwhLbohCmUHb5SdcYRXXiRFQ6sJ+ykRk2vs2gT29tEjhNDpQeeMZ2RFnBvkZzdEGuJQ/dhwpOSs1KdwxWAShWZAxUOFxCG7Tki/ilQfS7bGi82c+X7xMmk6iheGCMSbZ1++kJv2+FV1JNloW0Uh9 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(5005006)(520078)(3002001)(10201501046); SRVR:BN3PR0301MB1250; BCL:0; PCL:0; RULEID:; SRVR:BN3PR0301MB1250; X-Forefront-PRVS: 0755F54DD9 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0301MB1250; 23:Hlan+cQ8GD1UrHP2FUlueq7Djou/+hoOlEmyEHb?= =?us-ascii?Q?dlox/y2FqHluy2PKicyX+zHAtrbpc1ywB7mxFGJ/AxGRSVRUREtYQYqC05ah?= =?us-ascii?Q?HDIpgwiTYtlRQmQCNtDQ8j3qLRBHJkFLytsvXV+pc04xnXbXCpxKnWH5mpOB?= =?us-ascii?Q?NraXLLcvC35nGa9jCRJ7L4ExE+3BBdJQrSwDrtRzE57iMRbEUJKmgY416ceJ?= =?us-ascii?Q?rVnAW9eBiOakcM9X4kfbypjTitqTieWbwsyjA7ls3PmrHpHKyP8K6wjiNc69?= =?us-ascii?Q?ZbD1eG0/1z0kbS8X03QMZO8j7fnoMfCtr2mF1r4jcwyXwjNSj/221oD2ehJD?= =?us-ascii?Q?SEliS/XhdN9yd8cf+3wD1XmsfxxdqZxCH28Y3F/1bJXa7+0qRYCFngg1klZZ?= =?us-ascii?Q?mSg7ma0xxKt1Vo+MJXz0P+IIKjLKUJHyLi6I6jGQe/NRB1twYInePtScUeZY?= =?us-ascii?Q?/DUHXpgnO/ODHIK+s/iU+dJsdczIe/Le0ve5y8bdHXlPJf12KTCq8+Zf/GKw?= =?us-ascii?Q?68JaIMWfZoLhWDaXmcqfymvpfsAgSUh1jOhuw8oUq5htmq7fk0EdC5NbbGn1?= =?us-ascii?Q?t0PTsec+Sa55ruUocT7FthYgFSS0grqeNFjwMYxN7OA1+SpUZ3e6nWECp4A8?= =?us-ascii?Q?lvYbGEHfnZtiXbOXfSL/0z+GuhpoT9LDDQvXkFLFaiTErcwfbNgkuieA0za/?= =?us-ascii?Q?5f+OM6Ni6hQbPQX6kl0lR0ZslXwi/OmoSeVg+tiIN1FX+WSLujtskZq1GAAi?= =?us-ascii?Q?Sj3Rwm9gRkTIK2ax/T2IGm2WQHoGT0APKpH/Yn8Gc+6IbALfj5Yw/5juEKHM?= =?us-ascii?Q?8ZBHN7DSMb8WXF8OKOfdWV9ajI9Y99Ib/KUyJ+PMoYvh4w0oUZZQ9AUUoqZ+?= =?us-ascii?Q?/2olHcpwmQpG4CjYW9iTyu5nMb6xBDtDo53xdI+f560JnCo711SMVUnH7V57?= =?us-ascii?Q?oqcUBQctCC7XXiilBKogfdkbKQS1hurAU441jfyGfAuUauaRn+0CxPOEQYFr?= =?us-ascii?Q?xZKaLGeBx7ANLKnd2Mxdni6RdohVt7eaaCn8oklSIu/MYFaSPYiBcfCAkkxn?= =?us-ascii?Q?BYw5xPrqimn44hCex6Nd52LnacHlbnJ3whI51bLZB6vukP7wPP8CWrDEgFX/?= =?us-ascii?Q?/TkID9/oGrao=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0301MB1250; 5:jY3+KEMtL9u3IE+sdI23coCqqVMlqvKTLWHAh2yE4GKxgrJh6sxBF2GdvoZLZ2V/Cf3TSXmQ5nWp518t2FqglTUa2vUYmOwltgHQfY48iPgb8+L0Wy9veFFWUDXDhqqTgVNeU8meM5b2PPar58+yPA==; 24:xDrX1gVm7Q+HnMHLq/7R2RhVGztOkGD5jM8I3mQ70/5eqWPXtdBQsa42wFRkGzHXhOU1YxzJoVXYGdGq45/SnLzAZH6Hgd70vAurXHMNG9A=; 20:TICpBq9+OzJvd6t+C7rgh6pArf8jFl5UC/U1Pj5Ju4VnEuF1tNl5SeEGsGZCgfCrT91X2JKKdMxsVR7lVI6teA== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2015 11:00:31.4040 (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: BN3PR0301MB1250 Cc: nicoleotsuka@gmail.com, alsa-devel@alsa-project.org, tiwai@suse.com, Zidan Wang , Xiubo.Lee@gmail.com Subject: [alsa-devel] [PATCH] ASoC: fsl-sai: don't set bclk for Tx/Rx Synchronous with another SAI mode 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 In fsl_sai_set_bclk function, we should not set bclk for Tx/Rx Synchronous with another SAI mode. Signed-off-by: Zidan Wang Acked-by: Nicolin Chen --- sound/soc/fsl/fsl_sai.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c index ffd5f9a..14c3078 100644 --- a/sound/soc/fsl/fsl_sai.c +++ b/sound/soc/fsl/fsl_sai.c @@ -354,13 +354,25 @@ static int fsl_sai_set_bclk(struct snd_soc_dai *dai, bool tx, u32 freq) return -EINVAL; } - if ((tx && sai->synchronous[TX]) || (!tx && !sai->synchronous[RX])) { + /* + * 1) For Asynchronous mode, we must set RCR2 register for capture, and + * set TCR2 register for playback. + * 2) For Tx sync with Rx clock, we must set RCR2 register for playback + * and capture. + * 3) For Rx sync with Tx clock, we must set TCR2 register for playback + * and capture. + * 4) For Tx and Rx are both Synchronous with another SAI, we just + * ignore it. + */ + if ((sai->synchronous[TX] && !sai->synchronous[RX]) || + (!tx && !sai->synchronous[RX])) { regmap_update_bits(sai->regmap, FSL_SAI_RCR2, FSL_SAI_CR2_MSEL_MASK, FSL_SAI_CR2_MSEL(sai->mclk_id[tx])); regmap_update_bits(sai->regmap, FSL_SAI_RCR2, FSL_SAI_CR2_DIV_MASK, savediv - 1); - } else { + } else if ((sai->synchronous[RX] && !sai->synchronous[TX]) || + (tx && !sai->synchronous[TX])) { regmap_update_bits(sai->regmap, FSL_SAI_TCR2, FSL_SAI_CR2_MSEL_MASK, FSL_SAI_CR2_MSEL(sai->mclk_id[tx]));