Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp328024pxb; Mon, 16 Aug 2021 06:25:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyrS3wKpf8PoQHfZhIdOwACTx/jISIKO4ZInxyGQRQ4mYrOZSh4Uc5HebK4CGAjulmqWzuO X-Received: by 2002:a05:6402:34ce:: with SMTP id w14mr20909154edc.299.1629120342842; Mon, 16 Aug 2021 06:25:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629120342; cv=none; d=google.com; s=arc-20160816; b=sJH+YvqhhQXoTOQevzyozQhDmjZwV8v+5y/DNNRjQlJYepF1twwLviYof6FQ2p0t9V dfH8fMtFZrm4gJON17yHSDrepLD1Md7teYo0lkhNY5fhd0j8Wxjjiki3Wr6/k13Ihd52 Lmmzm7pQbOQmxH1kPaUpWHogBAi8ID+w0YmX/ZMHcCU9fsfV4lxdf/jkpLc5XrRDDuJR EXADSke0e7cygQ5hbY4DVbE7E71p7jlFKvwVl/vsI5lIe8Bj2XuoT+khAW8kQoiy0Sap aX3IqbfcYkP5O/36qfno9gvnw3ja6J5xJCq3XkL/58rRmV+cfdBF2fxoh0zQ+6SSc1WJ uLdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=dI2nrjk0+dKZ4Pu/nRwOahRLCrRxd2p2oBbLRiF6HPE=; b=tl/dncuwdOCbmIXyReKak8AgSD6jnVlL4j8+vukJSIehlEtfSNc+0KPsGuN5s1j85J PLoQcYrV5zo9uX4sPDFeAdVyxVe95nCXrB/dCXb2oPt+E5SbJAX5i4RC2ZBBpzgwLLz2 0tEuYjaKyvqFP5/7EA3FlEK2WoXWf9qKjhTjHpzS9isPyta+XE8+hureTBsM+RAYnCX5 05ZmC1XRA1q/BPd9fsF7kaOaJHz7ZfIY3PS04EoqI4kQ+K7toFIZQRFPIvVeBkHpWf6W zBo0XGewH3E5AOOlUd6X+u9cPuRtqbeyTJRHAyYE3xE6GFuR/moW5TFuoEXAgZE4oJpm 5L5w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=j2zbSaBt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z19si10678898ejc.248.2021.08.16.06.25.19; Mon, 16 Aug 2021 06:25:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=j2zbSaBt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237710AbhHPNXs (ORCPT + 99 others); Mon, 16 Aug 2021 09:23:48 -0400 Received: from mail.kernel.org ([198.145.29.99]:37452 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239968AbhHPNOp (ORCPT ); Mon, 16 Aug 2021 09:14:45 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1444E632AB; Mon, 16 Aug 2021 13:11:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1629119516; bh=CdN5vWIf/57OW2mquHSpvYXwm3lumVMSuVZymXbkSTs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j2zbSaBtotGQV+fid72aYZxfqm9ANE1E8Tq0KjkeMTnkYcg4/LC1D3NF6QHf+Nuxy sEZ5qNEpK01xXUOrioKZTFhJR7ORZww31ZvGclWyuAZYvsJcaZq2adm4KOaSt+Q2lG nt/l9qQ/2sKNoxNQzFRACHrCFyQVWneabqf5IKVY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Richard Fitzgerald , Mark Brown , Sasha Levin Subject: [PATCH 5.13 055/151] ASoC: cs42l42: Fix LRCLK frame start edge Date: Mon, 16 Aug 2021 15:01:25 +0200 Message-Id: <20210816125445.880305161@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210816125444.082226187@linuxfoundation.org> References: <20210816125444.082226187@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Richard Fitzgerald [ Upstream commit 0c2f2ad4f16a58879463d0979a54293f8f296d6f ] An I2S frame starts on the falling edge of LRCLK so ASP_STP must be 0. At the same time, move other format settings in the same register from cs42l42_pll_config() to cs42l42_set_dai_fmt() where you'd expect to find them, and merge into a single write. Signed-off-by: Richard Fitzgerald Fixes: 2c394ca79604 ("ASoC: Add support for CS42L42 codec") Link: https://lore.kernel.org/r/20210805161111.10410-2-rf@opensource.cirrus.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- sound/soc/codecs/cs42l42.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/sound/soc/codecs/cs42l42.c b/sound/soc/codecs/cs42l42.c index 7b102a05a1b6..0c8cdfe78d96 100644 --- a/sound/soc/codecs/cs42l42.c +++ b/sound/soc/codecs/cs42l42.c @@ -657,15 +657,6 @@ static int cs42l42_pll_config(struct snd_soc_component *component) CS42L42_FSYNC_PULSE_WIDTH_MASK, CS42L42_FRAC1_VAL(fsync - 1) << CS42L42_FSYNC_PULSE_WIDTH_SHIFT); - snd_soc_component_update_bits(component, - CS42L42_ASP_FRM_CFG, - CS42L42_ASP_5050_MASK, - CS42L42_ASP_5050_MASK); - /* Set the frame delay to 1.0 SCLK clocks */ - snd_soc_component_update_bits(component, CS42L42_ASP_FRM_CFG, - CS42L42_ASP_FSD_MASK, - CS42L42_ASP_FSD_1_0 << - CS42L42_ASP_FSD_SHIFT); /* Set the sample rates (96k or lower) */ snd_soc_component_update_bits(component, CS42L42_FS_RATE_EN, CS42L42_FS_EN_MASK, @@ -765,6 +756,18 @@ static int cs42l42_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt) /* interface format */ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) { case SND_SOC_DAIFMT_I2S: + /* + * 5050 mode, frame starts on falling edge of LRCLK, + * frame delayed by 1.0 SCLKs + */ + snd_soc_component_update_bits(component, + CS42L42_ASP_FRM_CFG, + CS42L42_ASP_STP_MASK | + CS42L42_ASP_5050_MASK | + CS42L42_ASP_FSD_MASK, + CS42L42_ASP_5050_MASK | + (CS42L42_ASP_FSD_1_0 << + CS42L42_ASP_FSD_SHIFT)); break; default: return -EINVAL; -- 2.30.2