Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp1996pxk; Wed, 2 Sep 2020 12:40:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxC3vMt+idJ555vn0MB5V7C0EgqOatLpZvdww0RypzbYMkVAx8mTTH912XhadkVwo7HzMQ3 X-Received: by 2002:a17:906:2acf:: with SMTP id m15mr1650764eje.257.1599075608614; Wed, 02 Sep 2020 12:40:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1599075608; cv=none; d=google.com; s=arc-20160816; b=kwftJfbTfte6s0w6MEf3U8sebYZax+6IY6Y8xa9t+qST6fg8g/+m5VCKDrUkwohtp4 8YqsWBJHTMjKR/usuoKige6+wL2kfWpcH5taYgy7+JqwXbdThWCXXAREvTi8dRHLYCvB ISwt1f76gsCPVubVlGhzhscLcvBduAXUIFxwtT8U6f2s474PR2YwlinB8Ayb8WGqJx5M luC2nscq7TtKzZ+mP2Yrs/KBHs8lfLYvnN4xFgQVjnHI8GEpLzLzAkkI9HrpEN1q89oy i5uGfyfczq5CaWB9YP8dLdyW30Scf+D7/Hllkw6/71w4w2s+GKokXL1YiNXviqeO0Z55 z2lA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=/Oq3N7LxRduf63mRDnP6DmKpizOQ1KNV+7BS8xu74oU=; b=OstCZWr+4XbM438NtSFuPmxLv981CEE7AGPlHea0hLBUfZUVaN+auzfMmK2R/hxisA 2zJI3fph7YXAddzyLQV6Nu+2y5sGa3Zu0aiNN2UVjazT8+zoQBj9BTX0J7Qi4OJAjGnN +wf5GKiIset76zOiuvRIxYygXnl3H7UEFQ9DXHGkCzHaPEpyF+d+my8wJBC05tgucY6Z n6CB7+QVHQFqOteHSqUAE+OTLuuGnji63AkfCsVf+YvTwv0IShePjEziF6nDYnkuJxJE sb4YYhphYKIqBKYewF5h8bsRruoNb6wY39XQ2KawLGSUp5u77XHG5UvUrRC5e8x69LmH QUhA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=siol.net Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f14si336943ejq.98.2020.09.02.12.39.43; Wed, 02 Sep 2020 12:40:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=siol.net Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727901AbgIBSGV convert rfc822-to-8bit (ORCPT + 99 others); Wed, 2 Sep 2020 14:06:21 -0400 Received: from mailoutvs22.siol.net ([185.57.226.213]:34409 "EHLO mail.siol.net" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726567AbgIBSGR (ORCPT ); Wed, 2 Sep 2020 14:06:17 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.siol.net (Postfix) with ESMTP id DC7AB526A96; Wed, 2 Sep 2020 20:06:13 +0200 (CEST) X-Virus-Scanned: amavisd-new at psrvmta09.zcs-production.pri Received: from mail.siol.net ([127.0.0.1]) by localhost (psrvmta09.zcs-production.pri [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id JLXQv0_kZthx; Wed, 2 Sep 2020 20:06:13 +0200 (CEST) Received: from mail.siol.net (localhost [127.0.0.1]) by mail.siol.net (Postfix) with ESMTPS id 5A4CB526A97; Wed, 2 Sep 2020 20:06:13 +0200 (CEST) Received: from kista.localnet (cpe1-5-97.cable.triera.net [213.161.5.97]) (Authenticated sender: jernej.skrabec@siol.net) by mail.siol.net (Postfix) with ESMTPA id 8177A526A92; Wed, 2 Sep 2020 20:06:12 +0200 (CEST) From: Jernej =?utf-8?B?xaBrcmFiZWM=?= To: peron.clem@gmail.com, Maxime Ripard , Chen-Yu Tsai , Rob Herring , Mark Brown , Liam Girdwood , Samuel Holland Cc: Jaroslav Kysela , Takashi Iwai , Marcus Cooper , alsa-devel@alsa-project.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com Subject: Re: [linux-sunxi] [PATCH 05/16] ASoc: sun4i-i2s: Add 20 and 24 bit support Date: Wed, 02 Sep 2020 20:10:47 +0200 Message-ID: <9148679.oVN3Z7rve9@kista> In-Reply-To: <1e320dfd-9388-54b2-dba9-7def0bf4bbad@sholland.org> References: <20200704113902.336911-1-peron.clem@gmail.com> <20200704113902.336911-6-peron.clem@gmail.com> <1e320dfd-9388-54b2-dba9-7def0bf4bbad@sholland.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8BIT Content-Type: text/plain; charset="iso-8859-1" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Samuel! Dne petek, 10. julij 2020 ob 07:44:51 CEST je Samuel Holland napisal(a): > On 7/4/20 6:38 AM, Cl?ment P?ron wrote: > > From: Marcus Cooper > > > > Extend the functionality of the driver to include support of 20 and > > 24 bits per sample. > > > > Signed-off-by: Marcus Cooper > > Signed-off-by: Cl?ment P?ron > > --- > > > > sound/soc/sunxi/sun4i-i2s.c | 11 +++++++++-- > > 1 file changed, 9 insertions(+), 2 deletions(-) > > > > diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c > > index f78167e152ce..bc7f9343bc7a 100644 > > --- a/sound/soc/sunxi/sun4i-i2s.c > > +++ b/sound/soc/sunxi/sun4i-i2s.c > > @@ -577,6 +577,9 @@ static int sun4i_i2s_hw_params(struct > > snd_pcm_substream *substream,> > > case 16: > > width = DMA_SLAVE_BUSWIDTH_2_BYTES; > > break; > > > > + case 32: > > + width = DMA_SLAVE_BUSWIDTH_4_BYTES; > > + break; > > This breaks the sun4i variants, because sun4i_i2s_get_wss returns 4 for a 32 > bit width, but it needs to return 3. I'm not sure what has WSS with physical width and DMA? > > As a side note, I wonder why we use the physical width (the spacing between > samples in RAM) to drive the slot width. S24_LE takes up 4 bytes per sample > in RAM, which we need for DMA. But I don't see why we would want to > transmit the padding over the wire. I would expect it to be transmitted the > same as S24_3LE (which has no padding). It did not matter before, because > the only supported format had no padding. Allwinner DMA engines support only 1, 2, 4 and sometimes 8 bytes for bus width, so if sample is 24 bits in size, we have no other way but to transmit padding too. Best regards, Jernej > > Regards, > Samuel > > > default: > > dev_err(dai->dev, "Unsupported physical sample width: %d\n", > > > > params_physical_width(params)); > > > > @@ -1063,6 +1066,10 @@ static int sun4i_i2s_dai_probe(struct snd_soc_dai > > *dai)> > > return 0; > > > > } > > > > +#define SUN4I_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | \ > > + SNDRV_PCM_FMTBIT_S20_LE | \ > > + SNDRV_PCM_FMTBIT_S24_LE) > > + > > > > static struct snd_soc_dai_driver sun4i_i2s_dai = { > > > > .probe = sun4i_i2s_dai_probe, > > .capture = { > > > > @@ -1070,14 +1077,14 @@ static struct snd_soc_dai_driver sun4i_i2s_dai = { > > > > .channels_min = 1, > > .channels_max = 8, > > .rates = SNDRV_PCM_RATE_8000_192000, > > > > - .formats = SNDRV_PCM_FMTBIT_S16_LE, > > + .formats = SUN4I_FORMATS, > > > > }, > > .playback = { > > > > .stream_name = "Playback", > > .channels_min = 1, > > .channels_max = 8, > > .rates = SNDRV_PCM_RATE_8000_192000, > > > > - .formats = SNDRV_PCM_FMTBIT_S16_LE, > > + .formats = SUN4I_FORMATS, > > > > }, > > .ops = &sun4i_i2s_dai_ops, > > .symmetric_rates = 1,