From patchwork Mon Aug 15 16:59:25 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: 9281621 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 2CBBD60467 for ; Mon, 15 Aug 2016 17:13:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0D1A228DD3 for ; Mon, 15 Aug 2016 17:13:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 00B7E28E12; Mon, 15 Aug 2016 17:13:43 +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 0192328DD3 for ; Mon, 15 Aug 2016 17:13:43 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id 341AA2666D2; Mon, 15 Aug 2016 19:13:42 +0200 (CEST) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 82AEB2667F9; Mon, 15 Aug 2016 19:09:57 +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 48165266A13; Mon, 15 Aug 2016 19:09:55 +0200 (CEST) Received: from pmeerw.net (ns.pmeerw.net [84.19.176.92]) by alsa0.perex.cz (Postfix) with ESMTP id 85B64266706 for ; Mon, 15 Aug 2016 18:59:26 +0200 (CEST) Received: from pmeerw.keymachine.de (pmeerw.net [84.19.176.92]) (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 0FEF255C0F03; Mon, 15 Aug 2016 18:59:26 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pmeerw.net; s=mail; t=1471280366; bh=Ywyqmj2DqAyTFcnN0ndAaINobJkVcuqFglc9G4NWAaw=; h=From:To:Cc:Subject:Date:From; b=cpr/lDB1gT2jICDy0qeF3ZCScCvrbGsbKOOqnzvOMqMkDcl8XuMbLg1Oe72s7O+Y4 p22c2sExiwgLTaWcLJzomnJzW9wlur48+e2C4GMSXjn/ha1vr4szYzR7J1f792S1eR oPBUwrfpgF/rusC5QnjJhqv7wYCvG9LjFi5ZJYcw= From: Peter Meerwald-Stadler To: Mark Brown Date: Mon, 15 Aug 2016 18:59:25 +0200 Message-Id: <1471280365-23452-1-git-send-email-pmeerw@pmeerw.net> X-Mailer: git-send-email 1.7.10.4 Cc: Peter Meerwald-Stadler , alsa-devel@alsa-project.org, Nicolas Ferre , Christoph Huber , Songjun Wu Subject: [alsa-devel] [PATCH v2] ASoC: atmel_ssc_dai: 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 --- v2 fixes formatting issues and rephrases the comment 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 54c09ac..16e459a 100644 --- a/sound/soc/atmel/atmel_ssc_dai.c +++ b/sound/soc/atmel/atmel_ssc_dai.c @@ -299,8 +299,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 unless initialized to keep it in a clean state */ + if (!ssc_p->initialized) + ssc_writel(ssc_p->ssc->regs, CR, SSC_BIT(CR_SWRST)); if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { dir = 0;