Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp747929ybl; Wed, 4 Dec 2019 10:11:55 -0800 (PST) X-Google-Smtp-Source: APXvYqybQze6U7UuGwDTXxZ2m75Fun0Wu77cQOzuzaZYR7HaJWsNKT4Pc6v8oBKDhAbdELQEK34O X-Received: by 2002:aca:f495:: with SMTP id s143mr3637800oih.118.1575483115098; Wed, 04 Dec 2019 10:11:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1575483115; cv=none; d=google.com; s=arc-20160816; b=fVVzNPFL0xYC2sw03hxA9bXFYk0AwT7NG1S4K+mbqxa6SxNP10SoZyLQIBToFSHB8B DfYT3/JQvjUDppa59C/FWC9OQTJFWl66kNoOuhjlMa3NO8Vus8xo8lDGC0Ah7RnXxNz+ nBYyODqSiDka0S9cYs+uTCQkQv3kyNr7g91eMAoXLBLO14ZBkqM1qggmANezW+tthVFX SkKNJUhNO1VtuL4KUJ0yGQtJIyDJtjRAi1G1D4Kon0hRfHD8xXg8cte1aUDtw436ntnR 1Klo2fRO5OnplqIRRlgQrRO5FlFB47WgpgY5YxZ6y4Ay7/8X7/Uv90y1NI/ERgbsh1SI GnAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=WiViMV3JqlIPakgBPyLCT1mJrql05p/PViu0XuFcSJs=; b=zVv0mGWPdjr1EQbSkNweLLohHdVX/Agn9kET8L0bHOL3UZB+urlnwaYqeVPhV9eqO6 dBDYwvO370IFqbCSXpgVTIr1stkqD7jMxsZVHvyX3N1aSzez1lERoeqk/AN+n+ESou7x EgASTLIkEvXje8wIRX5WKSP3NligSOo1v4Wzyo5jTpA9OHSQyrkzi5wvX0u2Ncb7gJ3m BTy+989TVeSLYH/WC065dBVyXqXiyLRF/J5k+u48ND0TQAJvHJyyqA6GJNvr3VzkvwJn paFssCJwfpKhviRxbBj1joOnhjViuSDvzBXf0pulCVCh1TtRndy6uKf+v+37pm5zqPo+ gAxQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=JZQls3f2; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n129si2439351oih.193.2019.12.04.10.11.42; Wed, 04 Dec 2019 10:11:55 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=JZQls3f2; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731075AbfLDSJd (ORCPT + 99 others); Wed, 4 Dec 2019 13:09:33 -0500 Received: from mail.kernel.org ([198.145.29.99]:35080 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730544AbfLDSJ0 (ORCPT ); Wed, 4 Dec 2019 13:09:26 -0500 Received: from localhost (unknown [217.68.49.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 054CD20833; Wed, 4 Dec 2019 18:09:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575482965; bh=45pYFyKcVPl9aq3G/+/M2pqNf9Ix+NuT7eye5i+f9yo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JZQls3f2KRrwg5xirkBQe4+g00YgmSfmoovTGmQLwQjDeSaoIKZF1S9eKePm3KrFY 98Vj0MRdZHKqOVRwIhHKL/3MG9z8mVtqh72t/ER4XxRxGvMNSYw26IKLcWmVM/kX+2 hsECOcyAaJm70dRtFcRwuThpjPhlPI7hDiIZ0mJo= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Olivier Moysan , Mark Brown , Mathieu Poirier Subject: [PATCH 4.14 206/209] ASoC: stm32: i2s: fix IRQ clearing Date: Wed, 4 Dec 2019 18:56:58 +0100 Message-Id: <20191204175337.669141996@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191204175321.609072813@linuxfoundation.org> References: <20191204175321.609072813@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Olivier Moysan commit 8ba3c5215d69c09f5c39783ff3b78347769822ad upstream. Because of regmap cache, interrupts may not be cleared as expected. Declare IFCR register as write only and make writings to IFCR register unconditional. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman --- sound/soc/stm/stm32_i2s.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) --- a/sound/soc/stm/stm32_i2s.c +++ b/sound/soc/stm/stm32_i2s.c @@ -246,8 +246,8 @@ static irqreturn_t stm32_i2s_isr(int irq return IRQ_NONE; } - regmap_update_bits(i2s->regmap, STM32_I2S_IFCR_REG, - I2S_IFCR_MASK, flags); + regmap_write_bits(i2s->regmap, STM32_I2S_IFCR_REG, + I2S_IFCR_MASK, flags); if (flags & I2S_SR_OVR) { dev_dbg(&pdev->dev, "Overrun\n"); @@ -276,7 +276,6 @@ static bool stm32_i2s_readable_reg(struc case STM32_I2S_CFG2_REG: case STM32_I2S_IER_REG: case STM32_I2S_SR_REG: - case STM32_I2S_IFCR_REG: case STM32_I2S_TXDR_REG: case STM32_I2S_RXDR_REG: case STM32_I2S_CGFR_REG: @@ -547,8 +546,8 @@ static int stm32_i2s_startup(struct snd_ i2s->refcount++; spin_unlock(&i2s->lock_fd); - return regmap_update_bits(i2s->regmap, STM32_I2S_IFCR_REG, - I2S_IFCR_MASK, I2S_IFCR_MASK); + return regmap_write_bits(i2s->regmap, STM32_I2S_IFCR_REG, + I2S_IFCR_MASK, I2S_IFCR_MASK); } static int stm32_i2s_hw_params(struct snd_pcm_substream *substream, @@ -603,8 +602,8 @@ static int stm32_i2s_trigger(struct snd_ return ret; } - regmap_update_bits(i2s->regmap, STM32_I2S_IFCR_REG, - I2S_IFCR_MASK, I2S_IFCR_MASK); + regmap_write_bits(i2s->regmap, STM32_I2S_IFCR_REG, + I2S_IFCR_MASK, I2S_IFCR_MASK); if (playback_flg) { ier = I2S_IER_UDRIE;