From patchwork Wed Aug 10 10:14:22 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Meerwald-Stadler X-Patchwork-Id: 9272889 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id BC05660231 for ; Wed, 10 Aug 2016 10:18:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A951A27FC0 for ; Wed, 10 Aug 2016 10:18:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9E4DC28159; Wed, 10 Aug 2016 10:18:24 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_NONE,T_DKIM_INVALID autolearn=no version=3.3.1 Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8EB1F28066 for ; Wed, 10 Aug 2016 10:18:23 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id 52788265D6E; Wed, 10 Aug 2016 12:18:21 +0200 (CEST) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id D9616265D63; Wed, 10 Aug 2016 12:18:17 +0200 (CEST) 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 E980326599E; Wed, 10 Aug 2016 12:18:16 +0200 (CEST) Received: from pmeerw.net (ns.pmeerw.net [84.19.176.92]) by alsa0.perex.cz (Postfix) with ESMTP id 08F6B265D63 for ; Wed, 10 Aug 2016 12:18:11 +0200 (CEST) Received: from localhost.localdomain (91-133-76-225.stat.cablelink.at [91.133.76.225]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: pmeerw@pmeerw.net) by pmeerw.net (Postfix) with ESMTPSA id CC94C55C0EEA; Wed, 10 Aug 2016 12:18:07 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pmeerw.net; s=mail; t=1470824288; bh=7QQz0QFk8WVouflvVVrdSKuhCzGo2yRWwiahusuUrmA=; h=From:To:Cc:Subject:Date:From; b=T0V3n2wtgYhu8f/SxPyepuBhICDCwOH6KGlRMewVz5nzn/dUc4INKQD9jUkvwxddd kmPOZUp2HlxxPmayWcsZXqxsowp2sfIl90X4uHnRQlpo2IbJ7k3R3VwHHtFFUyjyoD 28D1bPepY8vAGnLD/hYzC5ClsKxUpMIrm7HKvltQ= From: Peter Meerwald To: Mark Brown Date: Wed, 10 Aug 2016 12:14:22 +0200 Message-Id: <20160810101422.2086-1-pmeerw@pmeerw.net> X-Mailer: git-send-email 2.9.2 Cc: alsa-devel@alsa-project.org, Nicolas Ferre , linux-kernel@vger.kernel.org, Songjun Wu , Peter Meerwald-Stadler , Christoph Huber , linux-arm-kernel@lists.infradead.org Subject: [alsa-devel] [PATCH] sound: soc: atmel: Don't unconditionally reset SSC on stream startup 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: , MIME-Version: 1.0 Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP From: Christoph Huber commit cbaadf0f90d6 (ASoC: atmel_ssc_dai: refactor the startup and shutdown) refactored code such that the SSC is reset on every startup; this breaks duplex audio (e.g. first start audio playback, then start record, causing the playback to stop/hang) Signed-off-by: Christoph Huber Signed-off-by: Peter Meerwald-Stadler Cc: Songjun Wu Cc: Nicolas Ferre --- sound/soc/atmel/atmel_ssc_dai.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sound/soc/atmel/atmel_ssc_dai.c b/sound/soc/atmel/atmel_ssc_dai.c index 841d059..b3e9f0c 100644 --- a/sound/soc/atmel/atmel_ssc_dai.c +++ b/sound/soc/atmel/atmel_ssc_dai.c @@ -298,8 +298,9 @@ static int atmel_ssc_startup(struct snd_pcm_substream *substream, clk_enable(ssc_p->ssc->clk); ssc_p->mck_rate = clk_get_rate(ssc_p->ssc->clk); - /* Reset the SSC to keep it at a clean status */ - ssc_writel(ssc_p->ssc->regs, CR, SSC_BIT(CR_SWRST)); + /* Reset the SSC if it is not initialized to keep it at a clean status */ + if(!ssc_p->initialized) + ssc_writel(ssc_p->ssc->regs, CR, SSC_BIT(CR_SWRST)); if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { dir = 0;