From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4452BC2BA19 for ; Sat, 18 Apr 2020 22:49:06 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C366C21974 for ; Sat, 18 Apr 2020 22:49:05 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="o8njFjrJ"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IReWMoPu" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C366C21974 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 33883167D; Sun, 19 Apr 2020 00:48:14 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 33883167D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1587250144; bh=VKdB2ZsVJ+RWOY7D1f9nz7JLaOssusL77UtrQGSFHTg=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=o8njFjrJu67TgaLAJutUUN5h3g1XBtrncdc7e40Qpg5N97uChw3hbon77rD+YG3Jb vrhY37goPS5LhZa24PzqBIjcdocEN/1SvK1/75NfTDiNLHRoqPYNBDBskjClaThxXN 5hkSWheHQFFaKAhE7wbcfah/rXwsBtVzBvkPiWcc= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 3D0C5F802DB; Sun, 19 Apr 2020 00:44:59 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 3C547F80299; Sun, 19 Apr 2020 00:44:53 +0200 (CEST) Received: from mail-wm1-x343.google.com (mail-wm1-x343.google.com [IPv6:2a00:1450:4864:20::343]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 6C06CF8021E for ; Sun, 19 Apr 2020 00:44:46 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 6C06CF8021E Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IReWMoPu" Received: by mail-wm1-x343.google.com with SMTP id x4so6730195wmj.1 for ; Sat, 18 Apr 2020 15:44:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=E49tLMvjC4hfPuv9NFlCZ/+rq6Cm4CSw7X/tRqeB8o0=; b=IReWMoPusWuexzfjrpNEwWTFg6+w2y224JkFF+2O8z1JlAk5QUv8leY9i1AAFjm6Z5 3FBZ8cGuuTv519DK4o/m6UtfHr1wpoJO9jrziCQvNZDnNII9q7amYSgNkO7iRWdZDtzB Y54JtUfRSlMxZBmiUBA2OCA73S+pbT5olXMZ2fb+iOauB/Nvpa03Cv/gFLK8sF3naV8Q CYwOASv8I8cxAfFDvr8KSppbg1bwj7ftyN4k5/Js8Z0EhOSgKK3n4BjBimiRrZC9SST4 oOfBaKOr2CY2R0HP5jP0LYF+H8tQkkCb/McDRr81HEsGPIpqWTtzZmkhahegEsmkM0jr dzzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=E49tLMvjC4hfPuv9NFlCZ/+rq6Cm4CSw7X/tRqeB8o0=; b=EyfcuIvlmCbd/1BfyX38o5DLow6fRdsvZwFlSIHv3cvpeY+ye0K26mEd1JEzDDraMH CyUzuDTlDsVCFxU1BspZnKehQ8k8flg1CVViItyw0mCtzmlH2LRouWJTLL2TJ/6UocXD wAhLv2RrzzSWO0h/tUujszsP1PAPz9RiRiXDXeqhC98ZoCZH3qR/y0J2bSlAOALr5xcl SyNCfehnGMUikemJrCG5xYOrcXPW/Mpxr+AafISEIFitAsZ6S84NkjLeZnVPDVON2J+0 l0B8V2VLgrE+LQe1x0MvJ4XLRWQaPaTH6t4egsjeaAzJZ4qMrE0VDrKnii5VeydQ5OvR ruKw== X-Gm-Message-State: AGi0PuZfhzFPgvMBoG1Wxw3Q6GGZJFjJq3akWqhiV1SiIzdLHnqMW8y4 OOvbzlUOSPwmdNs1on90KBA= X-Google-Smtp-Source: APiQypJG8Mc9QRjH+NZdU2TQqusmS2sOKKTvEVPNxgvjA/eV9aVrZnPQM2X4vTJTR3RLiw5MmxkBjQ== X-Received: by 2002:a7b:c858:: with SMTP id c24mr217755wml.51.1587249884868; Sat, 18 Apr 2020 15:44:44 -0700 (PDT) Received: from localhost.localdomain (91-167-199-67.subs.proxad.net. [91.167.199.67]) by smtp.gmail.com with ESMTPSA id t16sm13371559wmi.27.2020.04.18.15.44.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Apr 2020 15:44:44 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= To: Liam Girdwood , Mark Brown , Rob Herring , Maxime Ripard , Chen-Yu Tsai , Jaroslav Kysela , Takashi Iwai Subject: [PATCH v2 4/7] ASoC: sun4i-i2s: Set sign extend sample Date: Sun, 19 Apr 2020 00:44:32 +0200 Message-Id: <20200418224435.23672-5-peron.clem@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200418224435.23672-1-peron.clem@gmail.com> References: <20200418224435.23672-1-peron.clem@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: devicetree@vger.kernel.org, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Marcus Cooper , =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= , linux-arm-kernel@lists.infradead.org X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 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" From: Marcus Cooper On the newer SoCs such as the H3 and A64 this is set by default to transfer a 0 after each sample in each slot. However the A10 and A20 SoCs that this driver was developed on had a default setting where it padded the audio gain with zeros. This isn't a problem whilst we have only support for 16bit audio but with larger sample resolution rates in the pipeline then SEXT bits should be cleared so that they also pad at the LSB. Without this the audio gets distorted. Signed-off-by: Marcus Cooper Signed-off-by: Clément Péron --- sound/soc/sunxi/sun4i-i2s.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c index a23c9f2a3f8c..618bbc5156f1 100644 --- a/sound/soc/sunxi/sun4i-i2s.c +++ b/sound/soc/sunxi/sun4i-i2s.c @@ -48,6 +48,9 @@ #define SUN4I_I2S_FMT0_FMT_I2S (0 << 0) #define SUN4I_I2S_FMT1_REG 0x08 +#define SUN4I_I2S_FMT1_REG_SEXT_MASK BIT(8) +#define SUN4I_I2S_FMT1_REG_SEXT(sext) ((sext) << 8) + #define SUN4I_I2S_FIFO_TX_REG 0x0c #define SUN4I_I2S_FIFO_RX_REG 0x10 @@ -105,6 +108,9 @@ #define SUN8I_I2S_FMT0_BCLK_POLARITY_INVERTED (1 << 7) #define SUN8I_I2S_FMT0_BCLK_POLARITY_NORMAL (0 << 7) +#define SUN8I_I2S_FMT1_REG_SEXT_MASK GENMASK(5,4) +#define SUN8I_I2S_FMT1_REG_SEXT(sext) ((sext) << 4) + #define SUN8I_I2S_INT_STA_REG 0x0c #define SUN8I_I2S_FIFO_TX_REG 0x20 @@ -663,6 +669,12 @@ static int sun4i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s, } regmap_update_bits(i2s->regmap, SUN4I_I2S_CTRL_REG, SUN4I_I2S_CTRL_MODE_MASK, val); + + /* Set sign extension to pad out LSB with 0 */ + regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT1_REG, + SUN4I_I2S_FMT1_REG_SEXT_MASK, + SUN4I_I2S_FMT1_REG_SEXT(0)); + return 0; } @@ -765,6 +777,11 @@ static int sun8i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s, SUN8I_I2S_CTRL_BCLK_OUT | SUN8I_I2S_CTRL_LRCK_OUT, val); + /* Set sign extension to pad out LSB with 0 */ + regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT1_REG, + SUN8I_I2S_FMT1_REG_SEXT_MASK, + SUN8I_I2S_FMT1_REG_SEXT(0)); + return 0; } @@ -867,6 +884,11 @@ static int sun50i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s, SUN8I_I2S_CTRL_BCLK_OUT | SUN8I_I2S_CTRL_LRCK_OUT, val); + /* Set sign extension to pad out LSB with 0 */ + regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT1_REG, + SUN8I_I2S_FMT1_REG_SEXT_MASK, + SUN8I_I2S_FMT1_REG_SEXT(0)); + return 0; } -- 2.20.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 52207C2BA19 for ; Sat, 18 Apr 2020 22:45:59 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D318E21974 for ; Sat, 18 Apr 2020 22:45:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="EuhQfub5"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IReWMoPu" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D318E21974 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=E6Qy5Ar+E1tP01P/cdZrGnc27MBfx5P/+tfQgGYWjn4=; b=EuhQfub5esK2i1 mcljPh9D1z94GRK7Cj9aMyQFTBB92gVqApT+oHUdUCuJWCKxIv8B8i/Qg5DKq2qqTBKYsaMG3HtQu LElWDU0mihvzX15YTzgr2k8+vypMujBUFzXW5Ps/F5kRMf78GIy4OkGR22wR5G/BphU/xJEkDo5ue Et8dDBzIjUKa1YoPfgMWIk8MMQofwqoq72ozc8Jg4mipeinha4Wj2ca8rQbI52a4YjmASUz/MZr8W lFOUSNZ0/NIcRIgOzJs166s7GaJ9XSYS4EMFHLdoLOd5OpXhqXGJeabsb2D7O+cpYUk5e4dFU7zEj vL0EhNnrwrf5JPY+BTEA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jPwDl-0002S8-47; Sat, 18 Apr 2020 22:45:57 +0000 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jPwCc-0007Tv-Jc for linux-arm-kernel@lists.infradead.org; Sat, 18 Apr 2020 22:44:48 +0000 Received: by mail-wm1-x344.google.com with SMTP id 188so579775wmc.2 for ; Sat, 18 Apr 2020 15:44:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=E49tLMvjC4hfPuv9NFlCZ/+rq6Cm4CSw7X/tRqeB8o0=; b=IReWMoPusWuexzfjrpNEwWTFg6+w2y224JkFF+2O8z1JlAk5QUv8leY9i1AAFjm6Z5 3FBZ8cGuuTv519DK4o/m6UtfHr1wpoJO9jrziCQvNZDnNII9q7amYSgNkO7iRWdZDtzB Y54JtUfRSlMxZBmiUBA2OCA73S+pbT5olXMZ2fb+iOauB/Nvpa03Cv/gFLK8sF3naV8Q CYwOASv8I8cxAfFDvr8KSppbg1bwj7ftyN4k5/Js8Z0EhOSgKK3n4BjBimiRrZC9SST4 oOfBaKOr2CY2R0HP5jP0LYF+H8tQkkCb/McDRr81HEsGPIpqWTtzZmkhahegEsmkM0jr dzzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=E49tLMvjC4hfPuv9NFlCZ/+rq6Cm4CSw7X/tRqeB8o0=; b=OyZlTYhqJI5ictKNnZgYBI7IMh1SSdv232GPiKY3e4NnhXPlegP2xrhKOF3v+FtTUV yMdvJ/cyE/+UbsITi1FzxJv9pzHBNYauR8uUTpPKGedy4wLEtvyAblH0o11bEK/LTtK0 tMNK2C1quUudfvOxIVv8SE0/P7dbCvvAug3FTGEtbx5hax7LlOlgqvJ8vSpTYd3I9N4u POd21dqlzcU1luyTCKr2biDi8OtH1lOxa/CFjmj/B4huqswH/Xft24EMqSGFSr6NyOVT kRL2OhCsDyEb8Ek54ET/X+8keTFjfA8S5T9MSHIrpOmoDT1kJAjLuq609xBZk+1uySYa 4zFA== X-Gm-Message-State: AGi0Pub8gZY8xTODWoIxEtRbPEc+T3k0m96lkk6hbDG75spr75ldWBEo w++DMePp8v2ko1VFalP4364= X-Google-Smtp-Source: APiQypJG8Mc9QRjH+NZdU2TQqusmS2sOKKTvEVPNxgvjA/eV9aVrZnPQM2X4vTJTR3RLiw5MmxkBjQ== X-Received: by 2002:a7b:c858:: with SMTP id c24mr217755wml.51.1587249884868; Sat, 18 Apr 2020 15:44:44 -0700 (PDT) Received: from localhost.localdomain (91-167-199-67.subs.proxad.net. [91.167.199.67]) by smtp.gmail.com with ESMTPSA id t16sm13371559wmi.27.2020.04.18.15.44.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Apr 2020 15:44:44 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= To: Liam Girdwood , Mark Brown , Rob Herring , Maxime Ripard , Chen-Yu Tsai , Jaroslav Kysela , Takashi Iwai Subject: [PATCH v2 4/7] ASoC: sun4i-i2s: Set sign extend sample Date: Sun, 19 Apr 2020 00:44:32 +0200 Message-Id: <20200418224435.23672-5-peron.clem@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200418224435.23672-1-peron.clem@gmail.com> References: <20200418224435.23672-1-peron.clem@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200418_154446_662346_8054DC33 X-CRM114-Status: GOOD ( 12.97 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Marcus Cooper , =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org RnJvbTogTWFyY3VzIENvb3BlciA8Y29kZWtpcHBlckBnbWFpbC5jb20+CgpPbiB0aGUgbmV3ZXIg U29DcyBzdWNoIGFzIHRoZSBIMyBhbmQgQTY0IHRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQKdG8gdHJh bnNmZXIgYSAwIGFmdGVyIGVhY2ggc2FtcGxlIGluIGVhY2ggc2xvdC4gSG93ZXZlciB0aGUgQTEw CmFuZCBBMjAgU29DcyB0aGF0IHRoaXMgZHJpdmVyIHdhcyBkZXZlbG9wZWQgb24gaGFkIGEgZGVm YXVsdApzZXR0aW5nIHdoZXJlIGl0IHBhZGRlZCB0aGUgYXVkaW8gZ2FpbiB3aXRoIHplcm9zLgoK VGhpcyBpc24ndCBhIHByb2JsZW0gd2hpbHN0IHdlIGhhdmUgb25seSBzdXBwb3J0IGZvciAxNmJp dCBhdWRpbwpidXQgd2l0aCBsYXJnZXIgc2FtcGxlIHJlc29sdXRpb24gcmF0ZXMgaW4gdGhlIHBp cGVsaW5lIHRoZW4gU0VYVApiaXRzIHNob3VsZCBiZSBjbGVhcmVkIHNvIHRoYXQgdGhleSBhbHNv IHBhZCBhdCB0aGUgTFNCLiBXaXRob3V0CnRoaXMgdGhlIGF1ZGlvIGdldHMgZGlzdG9ydGVkLgoK U2lnbmVkLW9mZi1ieTogTWFyY3VzIENvb3BlciA8Y29kZWtpcHBlckBnbWFpbC5jb20+ClNpZ25l ZC1vZmYtYnk6IENsw6ltZW50IFDDqXJvbiA8cGVyb24uY2xlbUBnbWFpbC5jb20+Ci0tLQogc291 bmQvc29jL3N1bnhpL3N1bjRpLWkycy5jIHwgMjIgKysrKysrKysrKysrKysrKysrKysrKwogMSBm aWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mvc3Vu eGkvc3VuNGktaTJzLmMgYi9zb3VuZC9zb2Mvc3VueGkvc3VuNGktaTJzLmMKaW5kZXggYTIzYzlm MmEzZjhjLi42MThiYmM1MTU2ZjEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zdW54aS9zdW40aS1p MnMuYworKysgYi9zb3VuZC9zb2Mvc3VueGkvc3VuNGktaTJzLmMKQEAgLTQ4LDYgKzQ4LDkgQEAK ICNkZWZpbmUgU1VONElfSTJTX0ZNVDBfRk1UX0kyUwkJCQkoMCA8PCAwKQogCiAjZGVmaW5lIFNV TjRJX0kyU19GTVQxX1JFRwkJMHgwOAorI2RlZmluZSBTVU40SV9JMlNfRk1UMV9SRUdfU0VYVF9N QVNLCQlCSVQoOCkKKyNkZWZpbmUgU1VONElfSTJTX0ZNVDFfUkVHX1NFWFQoc2V4dCkJCQkoKHNl eHQpIDw8IDgpCisKICNkZWZpbmUgU1VONElfSTJTX0ZJRk9fVFhfUkVHCQkweDBjCiAjZGVmaW5l IFNVTjRJX0kyU19GSUZPX1JYX1JFRwkJMHgxMAogCkBAIC0xMDUsNiArMTA4LDkgQEAKICNkZWZp bmUgU1VOOElfSTJTX0ZNVDBfQkNMS19QT0xBUklUWV9JTlZFUlRFRAkJKDEgPDwgNykKICNkZWZp bmUgU1VOOElfSTJTX0ZNVDBfQkNMS19QT0xBUklUWV9OT1JNQUwJCSgwIDw8IDcpCiAKKyNkZWZp bmUgU1VOOElfSTJTX0ZNVDFfUkVHX1NFWFRfTUFTSwkJR0VOTUFTSyg1LDQpCisjZGVmaW5lIFNV TjhJX0kyU19GTVQxX1JFR19TRVhUKHNleHQpCQkJKChzZXh0KSA8PCA0KQorCiAjZGVmaW5lIFNV TjhJX0kyU19JTlRfU1RBX1JFRwkJMHgwYwogI2RlZmluZSBTVU44SV9JMlNfRklGT19UWF9SRUcJ CTB4MjAKIApAQCAtNjYzLDYgKzY2OSwxMiBAQCBzdGF0aWMgaW50IHN1bjRpX2kyc19zZXRfc29j X2ZtdChjb25zdCBzdHJ1Y3Qgc3VuNGlfaTJzICppMnMsCiAJfQogCXJlZ21hcF91cGRhdGVfYml0 cyhpMnMtPnJlZ21hcCwgU1VONElfSTJTX0NUUkxfUkVHLAogCQkJICAgU1VONElfSTJTX0NUUkxf TU9ERV9NQVNLLCB2YWwpOworCisJLyogU2V0IHNpZ24gZXh0ZW5zaW9uIHRvIHBhZCBvdXQgTFNC IHdpdGggMCAqLworCXJlZ21hcF91cGRhdGVfYml0cyhpMnMtPnJlZ21hcCwgU1VONElfSTJTX0ZN VDFfUkVHLAorCQkJICAgU1VONElfSTJTX0ZNVDFfUkVHX1NFWFRfTUFTSywKKwkJCSAgIFNVTjRJ X0kyU19GTVQxX1JFR19TRVhUKDApKTsKKwogCXJldHVybiAwOwogfQogCkBAIC03NjUsNiArNzc3 LDExIEBAIHN0YXRpYyBpbnQgc3VuOGlfaTJzX3NldF9zb2NfZm10KGNvbnN0IHN0cnVjdCBzdW40 aV9pMnMgKmkycywKIAkJCSAgIFNVTjhJX0kyU19DVFJMX0JDTEtfT1VUIHwgU1VOOElfSTJTX0NU UkxfTFJDS19PVVQsCiAJCQkgICB2YWwpOwogCisJLyogU2V0IHNpZ24gZXh0ZW5zaW9uIHRvIHBh ZCBvdXQgTFNCIHdpdGggMCAqLworCXJlZ21hcF91cGRhdGVfYml0cyhpMnMtPnJlZ21hcCwgU1VO NElfSTJTX0ZNVDFfUkVHLAorCQkJICAgU1VOOElfSTJTX0ZNVDFfUkVHX1NFWFRfTUFTSywKKwkJ CSAgIFNVTjhJX0kyU19GTVQxX1JFR19TRVhUKDApKTsKKwogCXJldHVybiAwOwogfQogCkBAIC04 NjcsNiArODg0LDExIEBAIHN0YXRpYyBpbnQgc3VuNTBpX2kyc19zZXRfc29jX2ZtdChjb25zdCBz dHJ1Y3Qgc3VuNGlfaTJzICppMnMsCiAJCQkgICBTVU44SV9JMlNfQ1RSTF9CQ0xLX09VVCB8IFNV TjhJX0kyU19DVFJMX0xSQ0tfT1VULAogCQkJICAgdmFsKTsKIAorCS8qIFNldCBzaWduIGV4dGVu c2lvbiB0byBwYWQgb3V0IExTQiB3aXRoIDAgKi8KKwlyZWdtYXBfdXBkYXRlX2JpdHMoaTJzLT5y ZWdtYXAsIFNVTjRJX0kyU19GTVQxX1JFRywKKwkJCSAgIFNVTjhJX0kyU19GTVQxX1JFR19TRVhU X01BU0ssCisJCQkgICBTVU44SV9JMlNfRk1UMV9SRUdfU0VYVCgwKSk7CisKIAlyZXR1cm4gMDsK IH0KIAotLSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6CE26C38A30 for ; Sat, 18 Apr 2020 22:44:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4705121D7E for ; Sat, 18 Apr 2020 22:44:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IReWMoPu" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728334AbgDRWor (ORCPT ); Sat, 18 Apr 2020 18:44:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50372 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728331AbgDRWoq (ORCPT ); Sat, 18 Apr 2020 18:44:46 -0400 Received: from mail-wm1-x343.google.com (mail-wm1-x343.google.com [IPv6:2a00:1450:4864:20::343]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3BFC5C061A0C; Sat, 18 Apr 2020 15:44:46 -0700 (PDT) Received: by mail-wm1-x343.google.com with SMTP id e26so6718131wmk.5; Sat, 18 Apr 2020 15:44:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=E49tLMvjC4hfPuv9NFlCZ/+rq6Cm4CSw7X/tRqeB8o0=; b=IReWMoPusWuexzfjrpNEwWTFg6+w2y224JkFF+2O8z1JlAk5QUv8leY9i1AAFjm6Z5 3FBZ8cGuuTv519DK4o/m6UtfHr1wpoJO9jrziCQvNZDnNII9q7amYSgNkO7iRWdZDtzB Y54JtUfRSlMxZBmiUBA2OCA73S+pbT5olXMZ2fb+iOauB/Nvpa03Cv/gFLK8sF3naV8Q CYwOASv8I8cxAfFDvr8KSppbg1bwj7ftyN4k5/Js8Z0EhOSgKK3n4BjBimiRrZC9SST4 oOfBaKOr2CY2R0HP5jP0LYF+H8tQkkCb/McDRr81HEsGPIpqWTtzZmkhahegEsmkM0jr dzzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=E49tLMvjC4hfPuv9NFlCZ/+rq6Cm4CSw7X/tRqeB8o0=; b=NjjevAJmb3Ct+LXh3lqMWG6oP1Fy9vsfo2iIzuUvYmsiBeuDYavzLcNGjCeqaCnAwH 0dyO0ei5gA6EaTiMu2wucAb5QCORlHbsaYShf24XEPDoWmQjJ0CH6VD9k1bdQRXmFcl4 4wnFcJE343Yofu3A6ZF6uas4AjfzPOzZYoYAdECFtQ6ghi+snJDTGyJFYKFB9WbnYdWA YIo4foEf7Ige32d7bCbqW1qjrVFc8vMEAnMaUKq6SfyGUijSso3cCY3e4l/n6gy0pz2L mJahm628qJJguHKwYpevU2y/hjxV4FBJ1YzAHPGC4YdEVlFGQJuBpCpfX4Lmv6XfJxeI P2Mw== X-Gm-Message-State: AGi0PuZDq7ZrsettY+3PQAK+Lu0a/0zFb/a85VYx8KBXDmIhOY3GHUoW bwuITyC6a85Eq4Yfx5WLv3w= X-Google-Smtp-Source: APiQypJG8Mc9QRjH+NZdU2TQqusmS2sOKKTvEVPNxgvjA/eV9aVrZnPQM2X4vTJTR3RLiw5MmxkBjQ== X-Received: by 2002:a7b:c858:: with SMTP id c24mr217755wml.51.1587249884868; Sat, 18 Apr 2020 15:44:44 -0700 (PDT) Received: from localhost.localdomain (91-167-199-67.subs.proxad.net. [91.167.199.67]) by smtp.gmail.com with ESMTPSA id t16sm13371559wmi.27.2020.04.18.15.44.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Apr 2020 15:44:44 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= To: Liam Girdwood , Mark Brown , Rob Herring , Maxime Ripard , Chen-Yu Tsai , Jaroslav Kysela , Takashi Iwai Cc: alsa-devel@alsa-project.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Marcus Cooper , =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= Subject: [PATCH v2 4/7] ASoC: sun4i-i2s: Set sign extend sample Date: Sun, 19 Apr 2020 00:44:32 +0200 Message-Id: <20200418224435.23672-5-peron.clem@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200418224435.23672-1-peron.clem@gmail.com> References: <20200418224435.23672-1-peron.clem@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Marcus Cooper On the newer SoCs such as the H3 and A64 this is set by default to transfer a 0 after each sample in each slot. However the A10 and A20 SoCs that this driver was developed on had a default setting where it padded the audio gain with zeros. This isn't a problem whilst we have only support for 16bit audio but with larger sample resolution rates in the pipeline then SEXT bits should be cleared so that they also pad at the LSB. Without this the audio gets distorted. Signed-off-by: Marcus Cooper Signed-off-by: Clément Péron --- sound/soc/sunxi/sun4i-i2s.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c index a23c9f2a3f8c..618bbc5156f1 100644 --- a/sound/soc/sunxi/sun4i-i2s.c +++ b/sound/soc/sunxi/sun4i-i2s.c @@ -48,6 +48,9 @@ #define SUN4I_I2S_FMT0_FMT_I2S (0 << 0) #define SUN4I_I2S_FMT1_REG 0x08 +#define SUN4I_I2S_FMT1_REG_SEXT_MASK BIT(8) +#define SUN4I_I2S_FMT1_REG_SEXT(sext) ((sext) << 8) + #define SUN4I_I2S_FIFO_TX_REG 0x0c #define SUN4I_I2S_FIFO_RX_REG 0x10 @@ -105,6 +108,9 @@ #define SUN8I_I2S_FMT0_BCLK_POLARITY_INVERTED (1 << 7) #define SUN8I_I2S_FMT0_BCLK_POLARITY_NORMAL (0 << 7) +#define SUN8I_I2S_FMT1_REG_SEXT_MASK GENMASK(5,4) +#define SUN8I_I2S_FMT1_REG_SEXT(sext) ((sext) << 4) + #define SUN8I_I2S_INT_STA_REG 0x0c #define SUN8I_I2S_FIFO_TX_REG 0x20 @@ -663,6 +669,12 @@ static int sun4i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s, } regmap_update_bits(i2s->regmap, SUN4I_I2S_CTRL_REG, SUN4I_I2S_CTRL_MODE_MASK, val); + + /* Set sign extension to pad out LSB with 0 */ + regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT1_REG, + SUN4I_I2S_FMT1_REG_SEXT_MASK, + SUN4I_I2S_FMT1_REG_SEXT(0)); + return 0; } @@ -765,6 +777,11 @@ static int sun8i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s, SUN8I_I2S_CTRL_BCLK_OUT | SUN8I_I2S_CTRL_LRCK_OUT, val); + /* Set sign extension to pad out LSB with 0 */ + regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT1_REG, + SUN8I_I2S_FMT1_REG_SEXT_MASK, + SUN8I_I2S_FMT1_REG_SEXT(0)); + return 0; } @@ -867,6 +884,11 @@ static int sun50i_i2s_set_soc_fmt(const struct sun4i_i2s *i2s, SUN8I_I2S_CTRL_BCLK_OUT | SUN8I_I2S_CTRL_LRCK_OUT, val); + /* Set sign extension to pad out LSB with 0 */ + regmap_update_bits(i2s->regmap, SUN4I_I2S_FMT1_REG, + SUN8I_I2S_FMT1_REG_SEXT_MASK, + SUN8I_I2S_FMT1_REG_SEXT(0)); + return 0; } -- 2.20.1