Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3064155pxf; Mon, 5 Apr 2021 02:07:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxGM7ONA/lUd6nIir44F7wsCUCOw0rvLfUv8iComvKn+CfitIInH0NVI6Cy83t9BioLkjAD X-Received: by 2002:a05:6e02:6cf:: with SMTP id p15mr4487375ils.237.1617613679697; Mon, 05 Apr 2021 02:07:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617613679; cv=none; d=google.com; s=arc-20160816; b=J4InDh+QE77hEtHrMijtXkC/HrdqYF8m9KGQcCv+quccHuPY950Nv4x5wZzRBqJoMT 7EsmeSVcNZGvOHWVHoXsA5kELsg8oKYkXpUWNo3n21R1kPS9LXW2bfaj9clvtQC2ju3k Y5I4+YwqeX6hBhEMkROXuILmvesV6t/slggCGrE2gjL4oLvqP8yBRUdX+uIn/nCxZAPg 4MnIl1vfr+9Xuuu2FFp8F/EYyWNIG+GXS2wr2kRBMs1Hnrdt7zgNQ5Q7hotqQGgqBnAF cVuVkmOVkD9jKTcTXZAN/E/pfxhF7A+7aUjBUZFuCZrK0O9n5TAaoZPIfh+O80BecU5t 5YBg== 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=xVLdZgow+Zfr0+BIBzK3PVq+7J1uT4Mj3ACTefBeHQ8=; b=YMhTOpPhjU60ZZf3uhCl/QqcTRgkYjaZOeEl4XaiI8XdEPonyy0TAkFvmj6FtEz+CL WdwWnvZB3XIXrm/Yij4L9HRMq9U/0GE59C+WnBsm7DjDp+jeEF/izedjSH08EIBUIDMR NtNoTJ0e4wd1EwySV97EVqvSbL7PqPcnStCQrl/mtkpNbHGz7Yoe9U3hrQXlHzRyAlNc dAJ+mdrT1Lp+9MJJXvLYtrjCvS6Zb5Pti8RhCaVkzP+uqRSbbd2Y2+kE0Vd+m3pKgnAe S2LXp+EeIvcei7Dao/MA2GsXes4J/rQnsx+XzzTL8kGiKLGDFwAx898LsGwdaa8zxEGy oIZg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=tMe5RNOM; 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 r6si14832842jak.28.2021.04.05.02.07.47; Mon, 05 Apr 2021 02:07:59 -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=tMe5RNOM; 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 S238766AbhDEJGS (ORCPT + 99 others); Mon, 5 Apr 2021 05:06:18 -0400 Received: from mail.kernel.org ([198.145.29.99]:48068 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238238AbhDEJEj (ORCPT ); Mon, 5 Apr 2021 05:04:39 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 4603961393; Mon, 5 Apr 2021 09:04:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1617613473; bh=FPny33WIGWI8z6j+NK32dEtcK5m27U7Cvixh9HXLB70=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tMe5RNOMaeRrKifz0xCjgKrpzInY2xFT6eakp91yVdFkhCoOndN2ZskCN2DJGlR3e da8uIdtdZQJvB8F7VW/vySQurSUJis7fFzb6SgBh8bsl6iGih5uxNRtwp1qkAyavm+ SmQt1kan0U3h3SMnB9VQ8JwQx6k7vhMitV3kmp6w= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Lucas Tanure , Mark Brown , Sasha Levin Subject: [PATCH 5.4 15/74] ASoC: cs42l42: Fix Bitclock polarity inversion Date: Mon, 5 Apr 2021 10:53:39 +0200 Message-Id: <20210405085025.220519953@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210405085024.703004126@linuxfoundation.org> References: <20210405085024.703004126@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: Lucas Tanure [ Upstream commit e793c965519b8b7f2fea51a48398405e2a501729 ] The driver was setting bit clock polarity opposite to intended polarity. Also simplify the code by grouping ADC and DAC clock configurations into a single field. Signed-off-by: Lucas Tanure Link: https://lore.kernel.org/r/20210305173442.195740-2-tanureal@opensource.cirrus.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- sound/soc/codecs/cs42l42.c | 20 ++++++++------------ sound/soc/codecs/cs42l42.h | 11 ++++++----- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/sound/soc/codecs/cs42l42.c b/sound/soc/codecs/cs42l42.c index 5125bb9b37b5..c78e2ce37930 100644 --- a/sound/soc/codecs/cs42l42.c +++ b/sound/soc/codecs/cs42l42.c @@ -797,27 +797,23 @@ static int cs42l42_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt) /* Bitclock/frame inversion */ switch (fmt & SND_SOC_DAIFMT_INV_MASK) { case SND_SOC_DAIFMT_NB_NF: + asp_cfg_val |= CS42L42_ASP_SCPOL_NOR << CS42L42_ASP_SCPOL_SHIFT; break; case SND_SOC_DAIFMT_NB_IF: - asp_cfg_val |= CS42L42_ASP_POL_INV << - CS42L42_ASP_LCPOL_IN_SHIFT; + asp_cfg_val |= CS42L42_ASP_SCPOL_NOR << CS42L42_ASP_SCPOL_SHIFT; + asp_cfg_val |= CS42L42_ASP_LCPOL_INV << CS42L42_ASP_LCPOL_SHIFT; break; case SND_SOC_DAIFMT_IB_NF: - asp_cfg_val |= CS42L42_ASP_POL_INV << - CS42L42_ASP_SCPOL_IN_DAC_SHIFT; break; case SND_SOC_DAIFMT_IB_IF: - asp_cfg_val |= CS42L42_ASP_POL_INV << - CS42L42_ASP_LCPOL_IN_SHIFT; - asp_cfg_val |= CS42L42_ASP_POL_INV << - CS42L42_ASP_SCPOL_IN_DAC_SHIFT; + asp_cfg_val |= CS42L42_ASP_LCPOL_INV << CS42L42_ASP_LCPOL_SHIFT; break; } - snd_soc_component_update_bits(component, CS42L42_ASP_CLK_CFG, - CS42L42_ASP_MODE_MASK | - CS42L42_ASP_SCPOL_IN_DAC_MASK | - CS42L42_ASP_LCPOL_IN_MASK, asp_cfg_val); + snd_soc_component_update_bits(component, CS42L42_ASP_CLK_CFG, CS42L42_ASP_MODE_MASK | + CS42L42_ASP_SCPOL_MASK | + CS42L42_ASP_LCPOL_MASK, + asp_cfg_val); return 0; } diff --git a/sound/soc/codecs/cs42l42.h b/sound/soc/codecs/cs42l42.h index 9e3cc528dcff..1f0d67c95a9a 100644 --- a/sound/soc/codecs/cs42l42.h +++ b/sound/soc/codecs/cs42l42.h @@ -258,11 +258,12 @@ #define CS42L42_ASP_SLAVE_MODE 0x00 #define CS42L42_ASP_MODE_SHIFT 4 #define CS42L42_ASP_MODE_MASK (1 << CS42L42_ASP_MODE_SHIFT) -#define CS42L42_ASP_SCPOL_IN_DAC_SHIFT 2 -#define CS42L42_ASP_SCPOL_IN_DAC_MASK (1 << CS42L42_ASP_SCPOL_IN_DAC_SHIFT) -#define CS42L42_ASP_LCPOL_IN_SHIFT 0 -#define CS42L42_ASP_LCPOL_IN_MASK (1 << CS42L42_ASP_LCPOL_IN_SHIFT) -#define CS42L42_ASP_POL_INV 1 +#define CS42L42_ASP_SCPOL_SHIFT 2 +#define CS42L42_ASP_SCPOL_MASK (3 << CS42L42_ASP_SCPOL_SHIFT) +#define CS42L42_ASP_SCPOL_NOR 3 +#define CS42L42_ASP_LCPOL_SHIFT 0 +#define CS42L42_ASP_LCPOL_MASK (3 << CS42L42_ASP_LCPOL_SHIFT) +#define CS42L42_ASP_LCPOL_INV 3 #define CS42L42_ASP_FRM_CFG (CS42L42_PAGE_12 + 0x08) #define CS42L42_ASP_STP_SHIFT 4 -- 2.30.1