Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp2231911ybl; Sun, 19 Jan 2020 22:19:02 -0800 (PST) X-Google-Smtp-Source: APXvYqxlHBF2HVvsCZuHxanRLhiVWYJi88jUN56NCFhpCUp7TeFoBL+xwQEOxcKNykQu1XM+4Ohl X-Received: by 2002:a9d:624e:: with SMTP id i14mr15170708otk.371.1579501142818; Sun, 19 Jan 2020 22:19:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579501142; cv=none; d=google.com; s=arc-20160816; b=hRMRYNr8okYJnQhbMuEBUDwq45Oqi2Cw91+AmcbWNNWb6GDhnoJeR8t2dhpW6wLzSb grV2lNxYlnwwWJtTWTLwxDDBOCW8kRpXGNpb/1Ul5C6lHSjGSkYBwithw2ZJiIpDtCWT ljlDhd3djPnj6SJ8HbxwmKFz0q97US0fORKK8EYrw53NyMg2jzEcNwOalIW75oy+2Ug/ AmKRHzACTG7DQH4SqGCwH6V0u6Ep4xQpRYKGNK0TnAVDzevviModqaIDPtFd1TqCnMA4 6p0ab0M5gqf6mX4eeux7oECh5rr2Vs38CMmtsqUG0la4IgE587wtK6vOQWmDtr4QOcVj jDRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:dkim-signature:mime-version:message-id :date:subject:cc:to:from; bh=y0KuUHnikrqaYl+AkuZgAWArMBLX50J5YFwz5WfJk08=; b=khYVdS7KmKoHRx2n+i1bfiuZZb2wfmnLj/GY3tAy/gw1rXeVUk/Ji7XL+3ogFJk0Wi 9nZI7CoQyrx3L6AYqpBr8Nae34/l2AVw+8BCAJTDY9th3aHF7AMGwq+wGyMNb66M3e5u 8SDuXDqpZAIE/jrIKsSPKtKiDdeb6c6o6mfezSHove9t8Ujj5MqqWA+yVXR+zCHtzdHw Vo8na4rDSpA4En/Jp7cRZkkbAIauytfwfjZUvMDVhpzd2XpX9Avs8wgSE2Jxg65rR2+l X21kC9Gy/OzXT3myi3sfvhZLama2DG5cWtDjd5Rh9psmwCapJFVwL6zVL3buD6uuS9nd XMcw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nvidia.com header.s=n1 header.b=DPEN5idy; 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=NONE dis=NONE) header.from=nvidia.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z25si16415882oic.23.2020.01.19.22.18.50; Sun, 19 Jan 2020 22:19:02 -0800 (PST) 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=@nvidia.com header.s=n1 header.b=DPEN5idy; 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=NONE dis=NONE) header.from=nvidia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726148AbgATGRz (ORCPT + 99 others); Mon, 20 Jan 2020 01:17:55 -0500 Received: from hqnvemgate24.nvidia.com ([216.228.121.143]:14659 "EHLO hqnvemgate24.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725783AbgATGRy (ORCPT ); Mon, 20 Jan 2020 01:17:54 -0500 Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate24.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Sun, 19 Jan 2020 22:17:12 -0800 Received: from hqmail.nvidia.com ([172.20.161.6]) by hqpgpgate101.nvidia.com (PGP Universal service); Sun, 19 Jan 2020 22:17:54 -0800 X-PGP-Universal: processed; by hqpgpgate101.nvidia.com on Sun, 19 Jan 2020 22:17:54 -0800 Received: from HQMAIL107.nvidia.com (172.20.187.13) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Mon, 20 Jan 2020 06:17:53 +0000 Received: from rnnvemgw01.nvidia.com (10.128.109.123) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Mon, 20 Jan 2020 06:17:53 +0000 Received: from audio.nvidia.com (Not Verified[10.24.34.185]) by rnnvemgw01.nvidia.com with Trustwave SEG (v7,5,8,10121) id ; Sun, 19 Jan 2020 22:17:52 -0800 From: Sameer Pujar To: , , , CC: , , Sameer Pujar Subject: [PATCH] ASoC: rt5659: add S32_LE format Date: Mon, 20 Jan 2020 11:47:39 +0530 Message-ID: <1579501059-27936-1-git-send-email-spujar@nvidia.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1579501032; bh=y0KuUHnikrqaYl+AkuZgAWArMBLX50J5YFwz5WfJk08=; h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: MIME-Version:Content-Type; b=DPEN5idyJgzm2UDuPOm/OFoQREwFgQerUJtKuDcWM5En/svuJEE3lPbniYiVh6lTU zOIPi3LEjcDeT42jhY+iQ724jJX/K24V2wezlqrSlN0tknEyYvoF27jOfiEgLNsuM+ xeRQBem8lqAp+SdfJCwBRGYomAwl1M1BlQ2CB4hLgmb76UF+1kFHepZcqYESjywQhB eptOA3axpayafuiDhb+G4gORb+qWi73maMWfP93qjEc1NlARp7isRsf0RdEE6YLyw7 qbu/z8z0f0SLibcBZVFJ08KHzDaRI7derNbbVkUN7gm/QBsxxf2KlwqzoOw44r/Etd gd1d5iAnsJoog== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ALC5659 supports maximum data length of 24-bit. Currently driver supports S24_LE which is a 32-bit container with valid data in [23:0] and 0s in MSB. S24_3LE is not commonly used and is hard to find audio streams with this format. Also many SoC HW do not support S24_LE and S32_LE is used in general. The 24-bit data can be represented in S32_LE [31:8] and 0s are padded in LSB. This patch adds S32_LE to ALC5659 driver and data length for this is set to 24 as per codec's maximum data length support. This helps to play 24-bit audio, packed in S32_LE, on HW which do not support S24_LE. Signed-off-by: Sameer Pujar --- sound/soc/codecs/rt5659.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sound/soc/codecs/rt5659.c b/sound/soc/codecs/rt5659.c index fc74dd63..f910ddf 100644 --- a/sound/soc/codecs/rt5659.c +++ b/sound/soc/codecs/rt5659.c @@ -3339,6 +3339,7 @@ static int rt5659_hw_params(struct snd_pcm_substream *substream, val_len |= RT5659_I2S_DL_20; break; case 24: + case 32: val_len |= RT5659_I2S_DL_24; break; case 8: @@ -3733,7 +3734,8 @@ static int rt5659_resume(struct snd_soc_component *component) #define RT5659_STEREO_RATES SNDRV_PCM_RATE_8000_192000 #define RT5659_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE | \ - SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S8) + SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE | \ + SNDRV_PCM_FMTBIT_S8) static const struct snd_soc_dai_ops rt5659_aif_dai_ops = { .hw_params = rt5659_hw_params, -- 2.7.4