Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp6223247iob; Tue, 10 May 2022 13:14:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzjSNqjnhdZX/uSl59OMtKpKAVHi5USzFV3SXT4uFNshN+ODsOV/6mQRZW5Fza9MqxYxRzB X-Received: by 2002:a05:6a00:1707:b0:50e:23d:834f with SMTP id h7-20020a056a00170700b0050e023d834fmr22056387pfc.82.1652213676572; Tue, 10 May 2022 13:14:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652213676; cv=none; d=google.com; s=arc-20160816; b=wUioCjGzdiF5iiAeso76pptQHDngfMZfh05Zss29lq9oDE4jibaRG1aSLdXBzmf2NE fXwvxS/ccNEu16wJrOa7lT6zqyXEgkpwgpqrwG6pn16YzwI6941L80HiHZemJr0/Raeq +myPvnKlEg/Ie4nTgtuh3/h+4iYTn1amrD1PuDxSKBTkLp1REonh7PWyq2NVYLMsS7Ps hYKz+u6/NLTqHREwQSmS91FgVG3m+aEPKQJ19oo82mXlsZLC27j0LAPrwWACEE6pJOmv eSLKeGl93tDnMOcPNY4gquydvRyadT787leP52nkfbFl7SFfm62zZLcZTM8nzalFPcGx ALkw== 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=kSfjFv9niqrbFgKkzPlwX3nfkfaCQb2jyhOx7Yzc6X8=; b=etD7YktXEsRxP+B5wGPPDGXw6U/P2Sbw105YOv9Pbs99JrQc1/5t/qo8RSHG6zBBeT tQNyfPKPwnJcibT++QarH2MhFo/X7Yvdt6VRFXl+0N52EWCZDjFpEc9oPwiXUqbJ6re8 O/Z+5sVGDp/DdxWpPU5PxZ+T49VHbTIWawa4RZkyySonZ9zU0wDXVzti6R4iXLExYZnc 4iFXJx1OpPLJSVGcX7f/lGWJJM5oQ9Gme1TUcbm1CgAwGb10C7pG4pnUWaRt7H04vaZh DK0j3PE1zrWaEUiS8UeK3wAV631d71tX7fdxmZHY4DEOA9HTZU+LM63rfbHR00ZXuSQV QXnw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="1/d+WXD5"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z10-20020a6552ca000000b003c66102b79esi158119pgp.853.2022.05.10.13.14.20; Tue, 10 May 2022 13:14:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="1/d+WXD5"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S245271AbiEJOBj (ORCPT + 99 others); Tue, 10 May 2022 10:01:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55166 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245400AbiEJNiy (ORCPT ); Tue, 10 May 2022 09:38:54 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6E95D2370D9; Tue, 10 May 2022 06:29:15 -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 ams.source.kernel.org (Postfix) with ESMTPS id 749BEB81D24; Tue, 10 May 2022 13:29:14 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C2C4DC385A6; Tue, 10 May 2022 13:29:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1652189353; bh=2HnKUKKeygCNULEDLTGebDWd/Upf5P086EXE4P6TmGo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=1/d+WXD5ALDuQQU6jkj3nGYcgQJpthKxof8zksSeU2S+vr6MxVwklzyyGqDK0L9u1 guexn+g86CorGeohL9GbA3PI7bmnoKuLKZRTxwBQghjrCjCN6xhzuRXigGa1U3Y7F+ 8mwV/zk8L2MtRfFhaGB4nJjh4gl6jYlM8pVC0eps= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Mark Brown , Adam Thomson Subject: [PATCH 5.15 023/135] ASoC: da7219: Fix change notifications for tone generator frequency Date: Tue, 10 May 2022 15:06:45 +0200 Message-Id: <20220510130741.066622053@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220510130740.392653815@linuxfoundation.org> References: <20220510130740.392653815@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mark Brown commit 08ef48404965cfef99343d6bbbcf75b88c74aa0e upstream. The tone generator frequency control just returns 0 on successful write, not a boolean value indicating if there was a change or not. Compare what was written with the value that was there previously so that notifications are generated appropriately when the value changes. Signed-off-by: Mark Brown Reviewed-by: Adam Thomson Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20220420133437.569229-1-broonie@kernel.org Signed-off-by: Mark Brown Signed-off-by: Greg Kroah-Hartman --- sound/soc/codecs/da7219.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) --- a/sound/soc/codecs/da7219.c +++ b/sound/soc/codecs/da7219.c @@ -446,7 +446,7 @@ static int da7219_tonegen_freq_put(struc struct soc_mixer_control *mixer_ctrl = (struct soc_mixer_control *) kcontrol->private_value; unsigned int reg = mixer_ctrl->reg; - __le16 val; + __le16 val_new, val_old; int ret; /* @@ -454,13 +454,19 @@ static int da7219_tonegen_freq_put(struc * Therefore we need to convert to little endian here to align with * HW registers. */ - val = cpu_to_le16(ucontrol->value.integer.value[0]); + val_new = cpu_to_le16(ucontrol->value.integer.value[0]); mutex_lock(&da7219->ctrl_lock); - ret = regmap_raw_write(da7219->regmap, reg, &val, sizeof(val)); + ret = regmap_raw_read(da7219->regmap, reg, &val_old, sizeof(val_old)); + if (ret == 0 && (val_old != val_new)) + ret = regmap_raw_write(da7219->regmap, reg, + &val_new, sizeof(val_new)); mutex_unlock(&da7219->ctrl_lock); - return ret; + if (ret < 0) + return ret; + + return val_old != val_new; }