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=-12.5 required=3.0 tests=BAYES_00, 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 C61DBC43463 for ; Mon, 21 Sep 2020 10:30:58 +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 0E25720684 for ; Mon, 21 Sep 2020 10:30:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="M/BfOmG+"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZbuYowe/" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0E25720684 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 4D5DC1704; Mon, 21 Sep 2020 12:30:06 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 4D5DC1704 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1600684256; bh=uqik9H8HsDWD5ZubXjn4BfWN3Etgvf034SG+MLEtjxo=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=M/BfOmG+4pjwVT+GKrrWOzNsFrbSbnVvoE4wFJTRX1WTZBgYkPWtE8QlFDzi7MYd2 iapzlqri3zjuO33y5eRKJYfuVNfeU3OyZ/ZkPMPeNiR/iNT2v4+wZBFoZ0xl9gIRUG JpISJtE1WFJ0AKyWgqR16rU1hF5r4tQ7TUaVPN0g= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 776E4F802FB; Mon, 21 Sep 2020 12:28:11 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id A8D27F802E2; Mon, 21 Sep 2020 12:27:56 +0200 (CEST) Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) (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 3CE61F8021C for ; Mon, 21 Sep 2020 12:27:45 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 3CE61F8021C Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZbuYowe/" Received: by mail-wm1-x344.google.com with SMTP id w2so11584750wmi.1 for ; Mon, 21 Sep 2020 03:27:45 -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=U836kMnIm9OVtnsGLVK3iz9PKF3eFCFtxxEFlUe/IkU=; b=ZbuYowe/exjNSbzyxWOsn0UkKuQtse3CnJeL9q8ycWEJieTy1i2UN3YU9zsuUdOay6 7nENve0r6Uegf7qeymFnFzLLXkkEwU86uVPdvxV8t1ReqijDJK1cI0WNPMPASQtAXZGq ii+Rv1shuaiirWfJdVC4xDZbT9FMYlJ4OWwBLKFfY5hGramdfm7Sl5mWs5weEgS6lO8x Ex2576w4v5VrB5epna9j9fgIZpX+vUeC8AG8TdgqDvaybZwKfib+2x9d87LVxlGCFn9U 2e4pZIifUVW4RjNZeCpf702urA0M30GYCpVei+Ud7fRj7CXbNAu9ZEZfMTJz9ZR7hag9 Vi2A== 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=U836kMnIm9OVtnsGLVK3iz9PKF3eFCFtxxEFlUe/IkU=; b=qpC0VdnKpZpE6OvM1fNEEi60vQtbrCexpEgdvOzOj+haaVLCtPpErA3ezCzUR526wK nkjodZN3MxNJ43ESpVPVkAaBZ1awXVtr9Mi8d04JHgLyJlVxw2zdTN4tEw9raeEXPgK3 qIsR+gU8IA5mvq0ffMxRlxK9RT79AMJWDmfUlQJqfoluu4RQEYXgS7POY+iDckm8wx8R GSQomWnu7F2rp00V3b9vCuz6jmq+/2KsxvVGzZF4tOaYHuz+lS5yJmlq5O5m7/oDxMhG rIIbP84Q8HqRacwbigoHRWzp6B5vaZuoIefB/htOgiZ9cJsYS8itl/9LxJ5AEHnlg3D1 Fobw== X-Gm-Message-State: AOAM531PYodeErtYd01/DtmESBYLKDnEsyz2TsuKOdrcgXml2bwNph0B XX/RJQnb+2ErxKWtZykAp3Y= X-Google-Smtp-Source: ABdhPJx/JCXkAsyJn8R++VEiZyHBg4ONga+dVVbhmNLMXGj1NTdCtbBEHiGhSX5adMKp4LZosvZ/Ig== X-Received: by 2002:a7b:c0ca:: with SMTP id s10mr29366622wmh.103.1600684061978; Mon, 21 Sep 2020 03:27:41 -0700 (PDT) Received: from localhost.localdomain (lputeaux-656-1-11-33.w82-127.abo.wanadoo.fr. [82.127.142.33]) by smtp.gmail.com with ESMTPSA id h2sm20713774wrp.69.2020.09.21.03.27.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2020 03:27:41 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= To: Maxime Ripard , Chen-Yu Tsai , Rob Herring , Mark Brown , Liam Girdwood Subject: [PATCH v4 05/22] ASoC: sun4i-i2s: Set sign extend sample Date: Mon, 21 Sep 2020 12:27:14 +0200 Message-Id: <20200921102731.747736-6-peron.clem@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200921102731.747736-1-peron.clem@gmail.com> References: <20200921102731.747736-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, Jernej Skrabec , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Takashi Iwai , Marcus Cooper , linux-sunxi@googlegroups.com, =?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 while 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. Set sign extend sample for all the sunxi generations even if they are not affected. This will keep consistency and avoid relying on default. Signed-off-by: Marcus Cooper Signed-off-by: Clément Péron --- sound/soc/sunxi/sun4i-i2s.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c index 11bbcbe24d6b..b31454eee43c 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 @@ -676,6 +682,7 @@ 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); + return 0; } @@ -778,6 +785,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; } @@ -880,6 +892,11 @@ static int sun50i_h6_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.25.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=-12.5 required=3.0 tests=BAYES_00, 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 D2BC3C43463 for ; Mon, 21 Sep 2020 10:30:10 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 7EA7820EDD for ; Mon, 21 Sep 2020 10:30:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="kWWjsNsg"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZbuYowe/" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7EA7820EDD 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+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=merlin.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=HHW/jwcwgvOyazc/rbDPO7rVjz7Grk2Mj+YHnZ/Co1E=; b=kWWjsNsgcMbJ5zypLGvPPtqPt 36LtyGoP3d5nankM248m7s1bRHSkr8QTMQDnB/OCgSKBbch12Zsjzbj5rPisnbhUmmD+AISg7bQe2 Xd+5U3Ugp2HidAoidREmIT+M9SN0IKrPIV2DdXsY2HPnyFNEvZz7pmBHaBFBkk5KR9p9in59/u8aT p+LxDa2iXEmIDD2KKEHDD5HM3q8LxsgfAFCYSTn63bWZAYHhaDTrnXmH23d2Rr5lnauMl6eiMlNq3 53wMru0f3AiwfA1TFzcPwAFP2bwLfwS4la95S4CqUx979vCVtbCF9++qzrPZLtnxSm4bguw5gXhWL dmbPb5uDg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kKJ3U-0007ue-JR; Mon, 21 Sep 2020 10:28:20 +0000 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kKJ2t-0007fm-6G for linux-arm-kernel@lists.infradead.org; Mon, 21 Sep 2020 10:27:44 +0000 Received: by mail-wm1-x344.google.com with SMTP id s13so11571733wmh.4 for ; Mon, 21 Sep 2020 03:27:42 -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=U836kMnIm9OVtnsGLVK3iz9PKF3eFCFtxxEFlUe/IkU=; b=ZbuYowe/exjNSbzyxWOsn0UkKuQtse3CnJeL9q8ycWEJieTy1i2UN3YU9zsuUdOay6 7nENve0r6Uegf7qeymFnFzLLXkkEwU86uVPdvxV8t1ReqijDJK1cI0WNPMPASQtAXZGq ii+Rv1shuaiirWfJdVC4xDZbT9FMYlJ4OWwBLKFfY5hGramdfm7Sl5mWs5weEgS6lO8x Ex2576w4v5VrB5epna9j9fgIZpX+vUeC8AG8TdgqDvaybZwKfib+2x9d87LVxlGCFn9U 2e4pZIifUVW4RjNZeCpf702urA0M30GYCpVei+Ud7fRj7CXbNAu9ZEZfMTJz9ZR7hag9 Vi2A== 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=U836kMnIm9OVtnsGLVK3iz9PKF3eFCFtxxEFlUe/IkU=; b=AJl02ffxADw/YH2AD9YWtq/NGyU6KZdAukQGst5ijEau5yQ11qSBTuGLYRek+iiL/u iACESy0TT07+sjCSlzIyz2RpKi3/bU5V8Av9oP+AmSN5JOmJFI2uaT897xJdYyy3dg76 KNi7ZceamhwHC54nllilnPJHZHE7fwGK5hEDjL0gvgsZr4Fs37Czr91Fe8PkNVni8tjU vfPnLKOfwOd0ehEB3QuNjTSbdrB9A5aL9r+iBZyISGbZoAdIyQhuK1YFbR1+7eYX7xpr GVvfUAAwlD31NLlbqsLEsowXUMCC4ZAd9e3m5xcJ35xfebLYO6rLLu3v/pg8n0wrN2Jy G6SQ== X-Gm-Message-State: AOAM5317JEDRi/iLglbI18kMkyg0oWVVtmVMuJygj9Ay7lVXY53s5kDV avp56sXG2NxBgEVkGMgFT08= X-Google-Smtp-Source: ABdhPJx/JCXkAsyJn8R++VEiZyHBg4ONga+dVVbhmNLMXGj1NTdCtbBEHiGhSX5adMKp4LZosvZ/Ig== X-Received: by 2002:a7b:c0ca:: with SMTP id s10mr29366622wmh.103.1600684061978; Mon, 21 Sep 2020 03:27:41 -0700 (PDT) Received: from localhost.localdomain (lputeaux-656-1-11-33.w82-127.abo.wanadoo.fr. [82.127.142.33]) by smtp.gmail.com with ESMTPSA id h2sm20713774wrp.69.2020.09.21.03.27.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2020 03:27:41 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= To: Maxime Ripard , Chen-Yu Tsai , Rob Herring , Mark Brown , Liam Girdwood Subject: [PATCH v4 05/22] ASoC: sun4i-i2s: Set sign extend sample Date: Mon, 21 Sep 2020 12:27:14 +0200 Message-Id: <20200921102731.747736-6-peron.clem@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200921102731.747736-1-peron.clem@gmail.com> References: <20200921102731.747736-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-20200921_062743_286939_8D82F6B3 X-CRM114-Status: GOOD ( 15.11 ) 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, Jernej Skrabec , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Takashi Iwai , Jaroslav Kysela , Marcus Cooper , linux-sunxi@googlegroups.com, =?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+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RnJvbTogTWFyY3VzIENvb3BlciA8Y29kZWtpcHBlckBnbWFpbC5jb20+CgpPbiB0aGUgbmV3ZXIg U29DcyBzdWNoIGFzIHRoZSBIMyBhbmQgQTY0IHRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQKdG8gdHJh bnNmZXIgYSAwIGFmdGVyIGVhY2ggc2FtcGxlIGluIGVhY2ggc2xvdC4gSG93ZXZlciB0aGUgQTEw CmFuZCBBMjAgU29DcyB0aGF0IHRoaXMgZHJpdmVyIHdhcyBkZXZlbG9wZWQgb24gaGFkIGEgZGVm YXVsdApzZXR0aW5nIHdoZXJlIGl0IHBhZGRlZCB0aGUgYXVkaW8gZ2FpbiB3aXRoIHplcm9zLgoK VGhpcyBpc24ndCBhIHByb2JsZW0gd2hpbGUgd2UgaGF2ZSBvbmx5IHN1cHBvcnQgZm9yIDE2Yml0 IGF1ZGlvCmJ1dCB3aXRoIGxhcmdlciBzYW1wbGUgcmVzb2x1dGlvbiByYXRlcyBpbiB0aGUgcGlw ZWxpbmUgdGhlbiBTRVhUCmJpdHMgc2hvdWxkIGJlIGNsZWFyZWQgc28gdGhhdCB0aGV5IGFsc28g cGFkIGF0IHRoZSBMU0IuIFdpdGhvdXQKdGhpcyB0aGUgYXVkaW8gZ2V0cyBkaXN0b3J0ZWQuCgpT ZXQgc2lnbiBleHRlbmQgc2FtcGxlIGZvciBhbGwgdGhlIHN1bnhpIGdlbmVyYXRpb25zIGV2ZW4g aWYgdGhleQphcmUgbm90IGFmZmVjdGVkLiBUaGlzIHdpbGwga2VlcCBjb25zaXN0ZW5jeSBhbmQg YXZvaWQgcmVseWluZyBvbgpkZWZhdWx0LgoKU2lnbmVkLW9mZi1ieTogTWFyY3VzIENvb3BlciA8 Y29kZWtpcHBlckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IENsw6ltZW50IFDDqXJvbiA8cGVy b24uY2xlbUBnbWFpbC5jb20+Ci0tLQogc291bmQvc29jL3N1bnhpL3N1bjRpLWkycy5jIHwgMTcg KysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvc291bmQvc29jL3N1bnhpL3N1bjRpLWkycy5jIGIvc291bmQvc29jL3N1bnhpL3N1 bjRpLWkycy5jCmluZGV4IDExYmJjYmUyNGQ2Yi4uYjMxNDU0ZWVlNDNjIDEwMDY0NAotLS0gYS9z b3VuZC9zb2Mvc3VueGkvc3VuNGktaTJzLmMKKysrIGIvc291bmQvc29jL3N1bnhpL3N1bjRpLWky cy5jCkBAIC00OCw2ICs0OCw5IEBACiAjZGVmaW5lIFNVTjRJX0kyU19GTVQwX0ZNVF9JMlMJCQkJ KDAgPDwgMCkKIAogI2RlZmluZSBTVU40SV9JMlNfRk1UMV9SRUcJCTB4MDgKKyNkZWZpbmUgU1VO NElfSTJTX0ZNVDFfUkVHX1NFWFRfTUFTSwkJQklUKDgpCisjZGVmaW5lIFNVTjRJX0kyU19GTVQx X1JFR19TRVhUKHNleHQpCQkJKChzZXh0KSA8PCA4KQorCiAjZGVmaW5lIFNVTjRJX0kyU19GSUZP X1RYX1JFRwkJMHgwYwogI2RlZmluZSBTVU40SV9JMlNfRklGT19SWF9SRUcJCTB4MTAKIApAQCAt MTA1LDYgKzEwOCw5IEBACiAjZGVmaW5lIFNVTjhJX0kyU19GTVQwX0JDTEtfUE9MQVJJVFlfSU5W RVJURUQJCSgxIDw8IDcpCiAjZGVmaW5lIFNVTjhJX0kyU19GTVQwX0JDTEtfUE9MQVJJVFlfTk9S TUFMCQkoMCA8PCA3KQogCisjZGVmaW5lIFNVTjhJX0kyU19GTVQxX1JFR19TRVhUX01BU0sJCUdF Tk1BU0soNSwgNCkKKyNkZWZpbmUgU1VOOElfSTJTX0ZNVDFfUkVHX1NFWFQoc2V4dCkJCQkoKHNl eHQpIDw8IDQpCisKICNkZWZpbmUgU1VOOElfSTJTX0lOVF9TVEFfUkVHCQkweDBjCiAjZGVmaW5l IFNVTjhJX0kyU19GSUZPX1RYX1JFRwkJMHgyMAogCkBAIC02NzYsNiArNjgyLDcgQEAgc3RhdGlj IGludCBzdW40aV9pMnNfc2V0X3NvY19mbXQoY29uc3Qgc3RydWN0IHN1bjRpX2kycyAqaTJzLAog CX0KIAlyZWdtYXBfdXBkYXRlX2JpdHMoaTJzLT5yZWdtYXAsIFNVTjRJX0kyU19DVFJMX1JFRywK IAkJCSAgIFNVTjRJX0kyU19DVFJMX01PREVfTUFTSywgdmFsKTsKKwogCXJldHVybiAwOwogfQog CkBAIC03NzgsNiArNzg1LDExIEBAIHN0YXRpYyBpbnQgc3VuOGlfaTJzX3NldF9zb2NfZm10KGNv bnN0IHN0cnVjdCBzdW40aV9pMnMgKmkycywKIAkJCSAgIFNVTjhJX0kyU19DVFJMX0JDTEtfT1VU IHwgU1VOOElfSTJTX0NUUkxfTFJDS19PVVQsCiAJCQkgICB2YWwpOwogCisJLyogU2V0IHNpZ24g ZXh0ZW5zaW9uIHRvIHBhZCBvdXQgTFNCIHdpdGggMCAqLworCXJlZ21hcF91cGRhdGVfYml0cyhp MnMtPnJlZ21hcCwgU1VONElfSTJTX0ZNVDFfUkVHLAorCQkJICAgU1VOOElfSTJTX0ZNVDFfUkVH X1NFWFRfTUFTSywKKwkJCSAgIFNVTjhJX0kyU19GTVQxX1JFR19TRVhUKDApKTsKKwogCXJldHVy biAwOwogfQogCkBAIC04ODAsNiArODkyLDExIEBAIHN0YXRpYyBpbnQgc3VuNTBpX2g2X2kyc19z ZXRfc29jX2ZtdChjb25zdCBzdHJ1Y3Qgc3VuNGlfaTJzICppMnMsCiAJCQkgICBTVU44SV9JMlNf Q1RSTF9CQ0xLX09VVCB8IFNVTjhJX0kyU19DVFJMX0xSQ0tfT1VULAogCQkJICAgdmFsKTsKIAor CS8qIFNldCBzaWduIGV4dGVuc2lvbiB0byBwYWQgb3V0IExTQiB3aXRoIDAgKi8KKwlyZWdtYXBf dXBkYXRlX2JpdHMoaTJzLT5yZWdtYXAsIFNVTjRJX0kyU19GTVQxX1JFRywKKwkJCSAgIFNVTjhJ X0kyU19GTVQxX1JFR19TRVhUX01BU0ssCisJCQkgICBTVU44SV9JMlNfRk1UMV9SRUdfU0VYVCgw KSk7CisKIAlyZXR1cm4gMDsKIH0KIAotLSAKMi4yNS4xCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QK bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRl YWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= 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=-12.6 required=3.0 tests=BAYES_00,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=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 29005C43463 for ; Mon, 21 Sep 2020 10:29:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E0AA620EDD for ; Mon, 21 Sep 2020 10:29:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZbuYowe/" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726948AbgIUK3A (ORCPT ); Mon, 21 Sep 2020 06:29:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60246 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726669AbgIUK1n (ORCPT ); Mon, 21 Sep 2020 06:27:43 -0400 Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com [IPv6:2a00:1450:4864:20::342]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 698D9C061755; Mon, 21 Sep 2020 03:27:43 -0700 (PDT) Received: by mail-wm1-x342.google.com with SMTP id e17so11583526wme.0; Mon, 21 Sep 2020 03:27:43 -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=U836kMnIm9OVtnsGLVK3iz9PKF3eFCFtxxEFlUe/IkU=; b=ZbuYowe/exjNSbzyxWOsn0UkKuQtse3CnJeL9q8ycWEJieTy1i2UN3YU9zsuUdOay6 7nENve0r6Uegf7qeymFnFzLLXkkEwU86uVPdvxV8t1ReqijDJK1cI0WNPMPASQtAXZGq ii+Rv1shuaiirWfJdVC4xDZbT9FMYlJ4OWwBLKFfY5hGramdfm7Sl5mWs5weEgS6lO8x Ex2576w4v5VrB5epna9j9fgIZpX+vUeC8AG8TdgqDvaybZwKfib+2x9d87LVxlGCFn9U 2e4pZIifUVW4RjNZeCpf702urA0M30GYCpVei+Ud7fRj7CXbNAu9ZEZfMTJz9ZR7hag9 Vi2A== 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=U836kMnIm9OVtnsGLVK3iz9PKF3eFCFtxxEFlUe/IkU=; b=lGBy7U4Ev4txIwGySgD9F2Vmxd2p6GUz4hEh/5jANed558vfAAXm4e5BuLGJFM9v8d iE7TVZP+CZ30rj5N7WZdS9MFm53BrCVe67Gi1RRSU0B80pFbODZwHy32wWMz+E6pjRtQ 4X9ASWi3Ve/2nfPVndpY7wLTf5Mu1gKUAP5DGXPxpRCckDrr7MDJjVLFHCbONFgxAvct legs9/SDrVI5YR0Q5RbI0pEGaN7uVWB3+eitY+YEw/mM+j4FnphOigj0T2HZym3yJNKN XMxyXkOhOzlc/aSzPd04V81YvxfQFAWQ9RuoAzc0s5SVCLTt561Rs/xIVczSjmLfM12W 014Q== X-Gm-Message-State: AOAM532mRu3t7A7Qo44QnhyM3kcuHwALu0zvnKwpLJPdcTl4MHh9NRHr dd6klwAGyLn+I0HQi01FYOw= X-Google-Smtp-Source: ABdhPJx/JCXkAsyJn8R++VEiZyHBg4ONga+dVVbhmNLMXGj1NTdCtbBEHiGhSX5adMKp4LZosvZ/Ig== X-Received: by 2002:a7b:c0ca:: with SMTP id s10mr29366622wmh.103.1600684061978; Mon, 21 Sep 2020 03:27:41 -0700 (PDT) Received: from localhost.localdomain (lputeaux-656-1-11-33.w82-127.abo.wanadoo.fr. [82.127.142.33]) by smtp.gmail.com with ESMTPSA id h2sm20713774wrp.69.2020.09.21.03.27.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2020 03:27:41 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= To: Maxime Ripard , Chen-Yu Tsai , Rob Herring , Mark Brown , Liam Girdwood Cc: Jaroslav Kysela , Takashi Iwai , Marcus Cooper , Jernej Skrabec , alsa-devel@alsa-project.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com, =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= Subject: [PATCH v4 05/22] ASoC: sun4i-i2s: Set sign extend sample Date: Mon, 21 Sep 2020 12:27:14 +0200 Message-Id: <20200921102731.747736-6-peron.clem@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200921102731.747736-1-peron.clem@gmail.com> References: <20200921102731.747736-1-peron.clem@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 while 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. Set sign extend sample for all the sunxi generations even if they are not affected. This will keep consistency and avoid relying on default. Signed-off-by: Marcus Cooper Signed-off-by: Clément Péron --- sound/soc/sunxi/sun4i-i2s.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c index 11bbcbe24d6b..b31454eee43c 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 @@ -676,6 +682,7 @@ 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); + return 0; } @@ -778,6 +785,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; } @@ -880,6 +892,11 @@ static int sun50i_h6_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.25.1