Received: by 2002:ac0:950c:0:0:0:0:0 with SMTP id f12csp853726imc; Mon, 11 Mar 2019 00:25:11 -0700 (PDT) X-Google-Smtp-Source: APXvYqw2r19h60GGS/q46e0Ybd5/i5PZpLjxG+Q64CQ0Vsd1uj7uaYOH+Cmc1B7LaIr2OyPCHr2/ X-Received: by 2002:a17:902:8d97:: with SMTP id v23mr31565081plo.274.1552289111556; Mon, 11 Mar 2019 00:25:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552289111; cv=none; d=google.com; s=arc-20160816; b=taJGZ6MXvRogZTnhfYwoD3b60hws+pdiT5JdbMpJflPZsioGLNHFJ+cRy/tGbcaCjg RFlQ3YlAkILo0PdAo1lnPjdw4rU/6wqjk7wxCsLt8l+P+U60qEXzQNY2XR/go0W6+z8k cFWFFtakgZ7ZOrKXHqXLYZmbq/QB2TbGCTBRU1OWOT8dxBDMjmP4T8HG2Kd96pxSNALJ yd0/f8j9phg1trkqy2jzkvkSsur3lV6zH7HaotB5Vpu37uWlZq/ytSAqQotm5Dx817G/ ERGY9mN4ha66lXzkmQH8nRtrXVUynugTv/69XBT1WjXbGp8FKbqNFGWGzewufq5Yd6kk t83A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=aV/cUVgbGWGxibnwypCyB9ESGN4jVDwD4uDibonXMAI=; b=q8ABTFolpjW/t8r4yObf0i/ynMeOjaC2fmIPYplz+koqIYLgRKEMuBPyLKMcikNVd6 IxB2ov1hVObOu4K3+gK4WfkSmUKP/RsH8x4o7FN1UBmaQmEiSmHxkh2cIam8zpPPpdJa Xxxsh+BzukfWeLotyKfnHNOzjl75A0Glncv4ORvixwSHv76yvO8cpwW85ic4sczMCMdv dTA5lBPKxPA6R0YI2rqtErrDeh2L2gTzfm8Nek7ALm4Bmpci1GoQX6/Ip6nPt6IiMWsn 0gmJ2Ooz1qUtMYyEH8PMOodQGtvW89759y8NsyeG/a5Mn8vHg5CVjFSvJ0xv+UVdWVpz rV2w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=q2L2g2zl; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 136si4820998pfu.221.2019.03.11.00.24.56; Mon, 11 Mar 2019 00:25:11 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=q2L2g2zl; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726779AbfCKHYM (ORCPT + 99 others); Mon, 11 Mar 2019 03:24:12 -0400 Received: from mail-ed1-f66.google.com ([209.85.208.66]:44226 "EHLO mail-ed1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726605AbfCKHYM (ORCPT ); Mon, 11 Mar 2019 03:24:12 -0400 Received: by mail-ed1-f66.google.com with SMTP id b20so3079302edw.11 for ; Mon, 11 Mar 2019 00:24:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=aV/cUVgbGWGxibnwypCyB9ESGN4jVDwD4uDibonXMAI=; b=q2L2g2zlBuSbd2oXuIb/JUbscQp6sHjo06K/jJG/5at4RvuQaDsDpKjrcRzTnoS+mn cCBzJjZMYSSRg+yDUcih8/KfgZM99MKukhJBifi7SygXj2zKx8MjQC5ZDgZ0Xzq3J4b7 wXlp/kMzZL2UX0pcr2v/KvzFb5ESQHMvnGsU/upJqxhfzM1L2Gg008GFSaPBJmgL4Nwj dYlXK34XPwHVx0nrZ2psnvy3oyn5k3ttvQVZdnw7pELJWGiZOy/RPUTl07EY9xw4EK8l mFdo95FccMHZBVYMMh2h7GaxiR1LohRcCX1CPwzvs9t6CxdaeXQi3J6BfMwx3efznITB RpsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=aV/cUVgbGWGxibnwypCyB9ESGN4jVDwD4uDibonXMAI=; b=pU/qx8byVVQoPRbkl9yDWQbfPSJbSsYMO/D74PPHQMY6/OPnbutbqQRId2Be0Ko9Ny CQuNCvR868Yjke5VV8wrVBKDt1oDFA2NxlQufZwgEXZJj/0MPonc8YgjRobPTMf3MuWJ rF6hs/uiafJdSDHL4CyB7G7iSk2iXD4duopnIVgak4ZZe9y/M4Fs/1fL37W+qkvVN0mM egxhfnFu2tLTlhdPB/mKMPpD7Wpi+Tk39WmTgDXBOIOnGpffMHDktQwaAOyZ2+1JxE3j 96lRErelpyeZaBiEoxsSojKpk6ULAk7FRqbu19OD/6jhfZemxZpzuOHtK8b0BHPedMXx TGag== X-Gm-Message-State: APjAAAVfKxNp1nL5RgSIaC+84WsEEVycpjJn8z26d7OFAF1wto5+/PzN 2VPdakKG/arjC3zvu/fMQfDHYmkPiJoZLu4lGIY= X-Received: by 2002:a50:d8ce:: with SMTP id y14mr42860856edj.101.1552289050558; Mon, 11 Mar 2019 00:24:10 -0700 (PDT) MIME-Version: 1.0 References: <20190308173904.27298-1-daniel.baluta@nxp.com> <20190308205805.GA8912@Asurada-Nvidia.nvidia.com> In-Reply-To: <20190308205805.GA8912@Asurada-Nvidia.nvidia.com> From: Daniel Baluta Date: Mon, 11 Mar 2019 09:23:59 +0200 Message-ID: Subject: Re: [PATCH v2] ASoC: fsl: sai: Fix underrrun for playback stream start To: Nicolin Chen Cc: Daniel Baluta , "broonie@kernel.org" , "festevam@gmail.com" , "timur@kernel.org" , "tiwai@suse.com" , "alsa-devel@alsa-project.org" , "linux-kernel@vger.kernel.org" , dl-linux-imx , "S.j. Wang" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Mar 8, 2019 at 10:59 PM Nicolin Chen wrote: > > On Fri, Mar 08, 2019 at 05:39:30PM +0000, Daniel Baluta wrote: > > > @@ -542,6 +544,11 @@ static int fsl_sai_trigger(struct snd_pcm_substream *substream, int cmd, > > case SNDRV_PCM_TRIGGER_START: > > case SNDRV_PCM_TRIGGER_RESUME: > > case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: > > + for (i = 0; tx && i < channels; i++) > > + regmap_write(sai->regmap, FSL_SAI_TDR, 0x0); > > Though it could reduce underrrun for sure, I don't feel it's a > thorough fix, especially when dealing with a duplex case where > RX is the first stream while the driver enables both TE and RE > at the same time. So the transmitter might have started before > TX DMA request gets enabled. I see your point here. This is trickier than I expected. > > We actually have something similar in the ESAI driver as that > one is well documented. But SAI is apparently more tricky at > the trigger() function. And the paragraph you pasted from the > RM doesn't explicitly sound like we should do this. > > Btw, Instead of writing dummy data, have you tried polling the > WFP pointer of the TFR0 register to make sure data is copied > by the DMA? This is a good suggestion. Will give it a try. > > > + if (tx) > > + udelay(10); > > Any justification for the delay? Missing a line of comments? I > guess it's to address the 3-bit clocks timing. However, putting > it before enabling DMA request doesn't make much sense to me. Indeed. Will come back with a better patch in v3. thanks, Daniel.