From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3FF1BC4320A for ; Tue, 27 Jul 2021 13:30:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 283DB61A7F for ; Tue, 27 Jul 2021 13:30:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232178AbhG0NaG (ORCPT ); Tue, 27 Jul 2021 09:30:06 -0400 Received: from mail.kernel.org ([198.145.29.99]:57238 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236945AbhG0NU3 (ORCPT ); Tue, 27 Jul 2021 09:20:29 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 5F53F61AF0; Tue, 27 Jul 2021 13:20:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1627392005; bh=ZrM7mpef1J97AF2lCJYTrQjbSs1wkpfGPP0dtCY0iiA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C28G0BfjRuBrQLNqvShvZPl28TlgjhMaUvvimZwAUxdyEuxSAbw9izZIJC0j+WZkD fJ81EmGBKL7jmBnImf5H/+VTYH1TOyLVu+XgONinmXXoHQdXqQZBPKpHKdAr2vnKjO 1ClSWTZsmslyPWQZjA4OqgXvn3Ly7tsH0S3cuNarjoPj36P1M6+naJnG3yU51WOGhJ oz/zgee8Ryg6sH8Xiu+gigzvt7hnBsonHLetiBcYUD/GEbvMNZeefXPXLnnEzaT+iG ANeJynTnI5DZTQ2KL52YaCQOlgDLNJlMrBkVNSo/h+ONg6iSmTIOsBlIXXesOA5FgD 5WOdViSgGQKCQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Alain Volmat , Amelie Delaunay , Mark Brown , Sasha Levin , linux-spi@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org Subject: [PATCH AUTOSEL 5.4 2/9] spi: stm32h7: fix full duplex irq handler handling Date: Tue, 27 Jul 2021 09:19:54 -0400 Message-Id: <20210727132002.835130-2-sashal@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210727132002.835130-1-sashal@kernel.org> References: <20210727132002.835130-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Alain Volmat [ Upstream commit e4a5c19888a5f8a9390860ca493e643be58c8791 ] In case of Full-Duplex mode, DXP flag is set when RXP and TXP flags are set. But to avoid 2 different handlings, just add TXP and RXP flag in the mask instead of DXP, and then keep the initial handling of TXP and RXP events. Also rephrase comment about EOTIE which is one of the interrupt enable bits. It is not triggered by any event. Signed-off-by: Amelie Delaunay Signed-off-by: Alain Volmat Reviewed-by: Amelie Delaunay Link: https://lore.kernel.org/r/1625042723-661-3-git-send-email-alain.volmat@foss.st.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- drivers/spi/spi-stm32.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/spi/spi-stm32.c b/drivers/spi/spi-stm32.c index 3af6a5a3a4b2..92bf667951b0 100644 --- a/drivers/spi/spi-stm32.c +++ b/drivers/spi/spi-stm32.c @@ -913,15 +913,18 @@ static irqreturn_t stm32h7_spi_irq_thread(int irq, void *dev_id) ier = readl_relaxed(spi->base + STM32H7_SPI_IER); mask = ier; - /* EOTIE is triggered on EOT, SUSP and TXC events. */ + /* + * EOTIE enables irq from EOT, SUSP and TXC events. We need to set + * SUSP to acknowledge it later. TXC is automatically cleared + */ + mask |= STM32H7_SPI_SR_SUSP; /* - * When TXTF is set, DXPIE and TXPIE are cleared. So in case of - * Full-Duplex, need to poll RXP event to know if there are remaining - * data, before disabling SPI. + * DXPIE is set in Full-Duplex, one IT will be raised if TXP and RXP + * are set. So in case of Full-Duplex, need to poll TXP and RXP event. */ - if (spi->rx_buf && !spi->cur_usedma) - mask |= STM32H7_SPI_SR_RXP; + if ((spi->cur_comm == SPI_FULL_DUPLEX) && !spi->cur_usedma) + mask |= STM32H7_SPI_SR_TXP | STM32H7_SPI_SR_RXP; if (!(sr & mask)) { dev_warn(spi->dev, "spurious IT (sr=0x%08x, ier=0x%08x)\n", -- 2.30.2 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 62105C4338F for ; Tue, 27 Jul 2021 13:23:11 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2E44461A3A for ; Tue, 27 Jul 2021 13:23:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 2E44461A3A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=IlTJ8nqSrjRuc/aKIrQMoWAni/bTxo1J1PmOe8KIbYw=; b=SyMtnPwStkmk+4 zIeydeeP/VEfzX3KpU5fmJy3oDeqKODirw3+CVcd4ddi9u+NVqQ6n2G4mW7Z/OroNffMccdLe5WCt 0gM2Y91oicneHMq+4h8j6z4FmB0z6rkXhltcT9JQeio2B2irvV0SN7M4pZwpepbHp4OoxftCjLY9k o5OHZlqCFaLaKXaCCsjxhxxfmK+/hEYnKBcB1PqUefzGSiDn7a/CyxFLp0jExGUr6JpwOnhkGeSBg tC/HNAW3/Fi+xR80dzzDoKC00yYG3E25YhoBVDZ7kcQKUwt7td2oJIiycH8PwW4nvrMU2PreHG1Ct wFHfoLwZ6Kh6IX0H1NLw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m8N1m-00ErtQ-UK; Tue, 27 Jul 2021 13:21:47 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m8N09-00Er1q-KQ for linux-arm-kernel@lists.infradead.org; Tue, 27 Jul 2021 13:20:07 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 5F53F61AF0; Tue, 27 Jul 2021 13:20:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1627392005; bh=ZrM7mpef1J97AF2lCJYTrQjbSs1wkpfGPP0dtCY0iiA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C28G0BfjRuBrQLNqvShvZPl28TlgjhMaUvvimZwAUxdyEuxSAbw9izZIJC0j+WZkD fJ81EmGBKL7jmBnImf5H/+VTYH1TOyLVu+XgONinmXXoHQdXqQZBPKpHKdAr2vnKjO 1ClSWTZsmslyPWQZjA4OqgXvn3Ly7tsH0S3cuNarjoPj36P1M6+naJnG3yU51WOGhJ oz/zgee8Ryg6sH8Xiu+gigzvt7hnBsonHLetiBcYUD/GEbvMNZeefXPXLnnEzaT+iG ANeJynTnI5DZTQ2KL52YaCQOlgDLNJlMrBkVNSo/h+ONg6iSmTIOsBlIXXesOA5FgD 5WOdViSgGQKCQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Alain Volmat , Amelie Delaunay , Mark Brown , Sasha Levin , linux-spi@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org Subject: [PATCH AUTOSEL 5.4 2/9] spi: stm32h7: fix full duplex irq handler handling Date: Tue, 27 Jul 2021 09:19:54 -0400 Message-Id: <20210727132002.835130-2-sashal@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210727132002.835130-1-sashal@kernel.org> References: <20210727132002.835130-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210727_062005_735618_42BB7B50 X-CRM114-Status: GOOD ( 14.08 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Alain Volmat [ Upstream commit e4a5c19888a5f8a9390860ca493e643be58c8791 ] In case of Full-Duplex mode, DXP flag is set when RXP and TXP flags are set. But to avoid 2 different handlings, just add TXP and RXP flag in the mask instead of DXP, and then keep the initial handling of TXP and RXP events. Also rephrase comment about EOTIE which is one of the interrupt enable bits. It is not triggered by any event. Signed-off-by: Amelie Delaunay Signed-off-by: Alain Volmat Reviewed-by: Amelie Delaunay Link: https://lore.kernel.org/r/1625042723-661-3-git-send-email-alain.volmat@foss.st.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- drivers/spi/spi-stm32.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/spi/spi-stm32.c b/drivers/spi/spi-stm32.c index 3af6a5a3a4b2..92bf667951b0 100644 --- a/drivers/spi/spi-stm32.c +++ b/drivers/spi/spi-stm32.c @@ -913,15 +913,18 @@ static irqreturn_t stm32h7_spi_irq_thread(int irq, void *dev_id) ier = readl_relaxed(spi->base + STM32H7_SPI_IER); mask = ier; - /* EOTIE is triggered on EOT, SUSP and TXC events. */ + /* + * EOTIE enables irq from EOT, SUSP and TXC events. We need to set + * SUSP to acknowledge it later. TXC is automatically cleared + */ + mask |= STM32H7_SPI_SR_SUSP; /* - * When TXTF is set, DXPIE and TXPIE are cleared. So in case of - * Full-Duplex, need to poll RXP event to know if there are remaining - * data, before disabling SPI. + * DXPIE is set in Full-Duplex, one IT will be raised if TXP and RXP + * are set. So in case of Full-Duplex, need to poll TXP and RXP event. */ - if (spi->rx_buf && !spi->cur_usedma) - mask |= STM32H7_SPI_SR_RXP; + if ((spi->cur_comm == SPI_FULL_DUPLEX) && !spi->cur_usedma) + mask |= STM32H7_SPI_SR_TXP | STM32H7_SPI_SR_RXP; if (!(sr & mask)) { dev_warn(spi->dev, "spurious IT (sr=0x%08x, ier=0x%08x)\n", -- 2.30.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel