Received: by 2002:ac0:8845:0:0:0:0:0 with SMTP id g63csp776575img; Tue, 26 Feb 2019 08:25:04 -0800 (PST) X-Google-Smtp-Source: AHgI3IZ/tI2DBpUfPU45X8HbKz0HU73eo7NskQba4fBH4wzvvF2pHGHHkAkJ2bocjOkRfyBrZxez X-Received: by 2002:a63:83:: with SMTP id 125mr25348482pga.403.1551198304826; Tue, 26 Feb 2019 08:25:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551198304; cv=none; d=google.com; s=arc-20160816; b=ZbPLR2FpYUyk2pBL+MVCkZOfyERgvqas3o8fk+6AAUB2tXFHLjcAM4GnpLXDxDnoLl X6ejBlCuoFCQSP/JgznplYKI+JL3kHBZ2MJA09MSSWhj6lYSWx2laCSigmXlH6WOrh+R YRPu4CAZ3U1RuFvwK6xWRq8gTRoz4M2vR3zB25aQsxC+VSf9aMxFdTQel0rWtymNdYqH XNV7tKiNoe2QRMsIv3eVEaB7BweNK+sCyYxvM83DmF5+A1ULHW6OrJYlwa3pEBzEarIB /eUckGf6xvq88YyRiWkUSkiYYU78GE+dKv4rIIFhN+buOv4X83RoEvT4Brz+TqOofYJ1 iJlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:date:message-id:in-reply-to:subject:cc:to :from:dkim-signature; bh=4Nc9a0wJGEbR1iazYPACCFVA5P0adEytR2EU2ufxVok=; b=ZhLMxKThIJbbjyzw/RMemR8mhJnkNdRz0hEyMItSpNFNOsXVvtsHKuD2uMogfWiRT+ u3LU2GaELyl9XVXTH8tI53Zy76nPT67nn7mLhj1niwRNYBt1JQyus9AWyjKzSaK0Kkb/ F33s/qEGjtUEVuy+28cCKP3dIbopbnEaqQy9PejSzco99lLya611NVzZCRvQ2qAnN6YL 10i03KxXhcR/FaKwfIr7gelTnwdHHgRBIcURnz2xf59zo+oi3Zgwax5q2T+jhJ+a2e0D 3H6lty9Fggr3FHlxyBOIkm16i9MfT+l1/OdSEaih2brAMm+5E5Wb7Xpi8s/VfmIo3gxt 1muw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@sirena.org.uk header.s=20170815-heliosphere header.b=qQunmxXt; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p36si9495091pgl.145.2019.02.26.08.24.49; Tue, 26 Feb 2019 08:25:04 -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=fail header.i=@sirena.org.uk header.s=20170815-heliosphere header.b=qQunmxXt; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729063AbfBZQWv (ORCPT + 99 others); Tue, 26 Feb 2019 11:22:51 -0500 Received: from heliosphere.sirena.org.uk ([172.104.155.198]:36352 "EHLO heliosphere.sirena.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728719AbfBZQWu (ORCPT ); Tue, 26 Feb 2019 11:22:50 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sirena.org.uk; s=20170815-heliosphere; h=Date:Message-Id:In-Reply-To: Subject:Cc:To:From:Sender:Reply-To:MIME-Version:Content-Type: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:References: List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner: List-Archive; bh=4Nc9a0wJGEbR1iazYPACCFVA5P0adEytR2EU2ufxVok=; b=qQunmxXtET52 XYcY2FJPyUhX+SIouM4HFaYwZTTc4V+gqxini3pT8k0HYEzrs+jUp2/2WgUtHdW7hc5HvTiI9fNpO QH1+IxJK/AtjXz0s/ZW/mh+UG1SD7xo2QJKBkrp5U/mFDRJrsJLQTaLemG1cK1iojieYKTWcKVgPj teO+Q=; Received: from cpc102320-sgyl38-2-0-cust46.18-2.cable.virginm.net ([82.37.168.47] helo=debutante.sirena.org.uk) by heliosphere.sirena.org.uk with esmtpa (Exim 4.89) (envelope-from ) id 1gyfV6-00009l-NO; Tue, 26 Feb 2019 16:22:36 +0000 Received: by debutante.sirena.org.uk (Postfix, from userid 1000) id 3FB7D1121A0A; Tue, 26 Feb 2019 16:22:36 +0000 (GMT) From: Mark Brown To: Olivier Moysan Cc: Mark Brown , lgirdwood@gmail.com, broonie@kernel.org, perex@perex.cz, tiwai@suse.com, mcoquelin.stm32@gmail.com, alexandre.torgue@st.com, alsa-devel@alsa-project.org, linux-arm-kernel@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com, linux-kernel@vger.kernel.org, olivier.moysan@st.com, arnaud.pouliquen@st.com, benjamin.gaignard@st.com, alsa-devel@alsa-project.org Subject: Applied "ASoC: stm32: i2s: fix IRQ clearing" to the asoc tree In-Reply-To: <1551189070-15469-2-git-send-email-olivier.moysan@st.com> X-Patchwork-Hint: ignore Message-Id: <20190226162236.3FB7D1121A0A@debutante.sirena.org.uk> Date: Tue, 26 Feb 2019 16:22:36 +0000 (GMT) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The patch ASoC: stm32: i2s: fix IRQ clearing has been applied to the asoc tree at https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark From 8ba3c5215d69c09f5c39783ff3b78347769822ad Mon Sep 17 00:00:00 2001 From: Olivier Moysan Date: Tue, 26 Feb 2019 14:51:04 +0100 Subject: [PATCH] ASoC: stm32: i2s: fix IRQ clearing 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 --- sound/soc/stm/stm32_i2s.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/sound/soc/stm/stm32_i2s.c b/sound/soc/stm/stm32_i2s.c index a25919d32187..339cd4715b2e 100644 --- a/sound/soc/stm/stm32_i2s.c +++ b/sound/soc/stm/stm32_i2s.c @@ -247,8 +247,8 @@ static irqreturn_t stm32_i2s_isr(int irq, void *devid) 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"); @@ -277,7 +277,6 @@ static bool stm32_i2s_readable_reg(struct device *dev, unsigned int reg) 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: @@ -559,8 +558,8 @@ static int stm32_i2s_startup(struct snd_pcm_substream *substream, 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, @@ -611,8 +610,8 @@ static int stm32_i2s_trigger(struct snd_pcm_substream *substream, int cmd, 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; -- 2.20.1