From nobody Fri Oct 24 20:35:22 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 8810AC32770 for ; Mon, 15 Aug 2022 22:38:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351193AbiHOWhr (ORCPT ); Mon, 15 Aug 2022 18:37:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54480 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1350628AbiHOWcB (ORCPT ); Mon, 15 Aug 2022 18:32:01 -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 E74E012BFFD; Mon, 15 Aug 2022 12:48:39 -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 3B5C76123B; Mon, 15 Aug 2022 19:48:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3DA54C433C1; Mon, 15 Aug 2022 19:48:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1660592911; bh=hoC3688rHs7GdImLyycObxElTTb+PGyVRE6FR7k3NtM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vl5Eumm5nWkXt9tXHSroJceqDKE/HiZUn/piR30C8nyf622mrKqqf05horENqj0ec 4ZRPTppi2ThgZ7/EJ9W7hBNjaZ2jyFZ9SIJUIFilvrb623wJTES9PzsiiHWKhZfk+f odD9TaEb/MBeRCf+JlFzLkXH4ghq635isKbv+n6s= 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.18 0865/1095] ASoC: imx-card: Fix DSD/PDM mclk frequency Date: Mon, 15 Aug 2022 20:04:24 +0200 Message-Id: <20220815180505.150844251@linuxfoundation.org> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220815180429.240518113@linuxfoundation.org> References: <20220815180429.240518113@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