From nobody Mon Sep 29 21:17:52 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9A7B2C00140 for ; Tue, 16 Aug 2022 00:50:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233461AbiHPAuX (ORCPT ); Mon, 15 Aug 2022 20:50:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60462 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347445AbiHPAp4 (ORCPT ); Mon, 15 Aug 2022 20:45:56 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 02A7F193549; Mon, 15 Aug 2022 13:41:10 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 8B8C361233; Mon, 15 Aug 2022 20:41:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 79282C433C1; Mon, 15 Aug 2022 20:41:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1660596069; bh=hoC3688rHs7GdImLyycObxElTTb+PGyVRE6FR7k3NtM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=G73DuTdL4r1IJMaQdbN2vq1IsgnLIIKri42BT+VYG5/FbY84QBDXnClw5JgHFfqLu +/sW3Y3dV6yT1CjL9+nh4c7xO37IGWHEcklvnuYt9fGgda702S35TXKpxx3K10QTiM ynmuzL6VJXTsYcP/suO+IgqCgIz4xZagDYWaYn54= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Shengjiu Wang , Mark Brown , Sasha Levin Subject: [PATCH 5.19 0936/1157] ASoC: imx-card: Fix DSD/PDM mclk frequency Date: Mon, 15 Aug 2022 20:04:52 +0200 Message-Id: <20220815180516.950369785@linuxfoundation.org> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220815180439.416659447@linuxfoundation.org> References: <20220815180439.416659447@linuxfoundation.org> User-Agent: quilt/0.67 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Shengjiu Wang [ Upstream commit c0fabd12a8570cb932f13d9388f3d887ad44369b ] The DSD/PDM rate not only DSD64/128/256/512, which are the multiple rate of 44.1kHz, but also support the multiple rate of 8kHz, so can't force all mclk frequency to be 22579200Hz, need to assign the frequency according to rate. Fixes: aa736700f42f ("ASoC: imx-card: Add imx-card machine driver") Signed-off-by: Shengjiu Wang Link: https://lore.kernel.org/r/1657100575-8261-1-git-send-email-shengjiu.w= ang@nxp.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- sound/soc/fsl/imx-card.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/sound/soc/fsl/imx-card.c b/sound/soc/fsl/imx-card.c index 6f8efd838fcc..c0eb218a254b 100644 --- a/sound/soc/fsl/imx-card.c +++ b/sound/soc/fsl/imx-card.c @@ -17,6 +17,9 @@ =20 #include "fsl_sai.h" =20 +#define IMX_CARD_MCLK_22P5792MHZ 22579200 +#define IMX_CARD_MCLK_24P576MHZ 24576000 + enum codec_type { CODEC_DUMMY =3D 0, CODEC_AK5558 =3D 1, @@ -353,9 +356,14 @@ static int imx_aif_hw_params(struct snd_pcm_substream = *substream, mclk_freq =3D akcodec_get_mclk_rate(substream, params, slots, slot_width= ); else mclk_freq =3D params_rate(params) * slots * slot_width; - /* Use the maximum freq from DSD512 (512*44100 =3D 22579200) */ - if (format_is_dsd(params)) - mclk_freq =3D 22579200; + + if (format_is_dsd(params)) { + /* Use the maximum freq from DSD512 (512*44100 =3D 22579200) */ + if (!(params_rate(params) % 11025)) + mclk_freq =3D IMX_CARD_MCLK_22P5792MHZ; + else + mclk_freq =3D IMX_CARD_MCLK_24P576MHZ; + } =20 ret =3D snd_soc_dai_set_sysclk(cpu_dai, link_data->cpu_sysclk_id, mclk_fr= eq, SND_SOC_CLOCK_OUT); --=20 2.35.1