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=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,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 37B72C432C3 for ; Tue, 3 Dec 2019 22:52:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 06FB12084B for ; Tue, 3 Dec 2019 22:52:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575413521; bh=El87W87gUKdjkEIOxGKkTeim2N3L71k5D8CTxcsCHFc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=wl59L8PW967GLQDUq3yEi9x8NLwu6f4EmbhWmUdO3J1KnuK2GNgcYaowFLXJ9KlY8 JoUynSdODV08u+WC9oZ9FmSMqqL0TfEozc6bKfaFoWactX/3Zde1y7Zb1yuYqAZ4KY ncEcCQY8vk+KwDGMebmAC0Y6KnI9177lsoG7/pek= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729963AbfLCWv7 (ORCPT ); Tue, 3 Dec 2019 17:51:59 -0500 Received: from mail.kernel.org ([198.145.29.99]:44442 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729659AbfLCWvz (ORCPT ); Tue, 3 Dec 2019 17:51:55 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (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 A623820862; Tue, 3 Dec 2019 22:51:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575413515; bh=El87W87gUKdjkEIOxGKkTeim2N3L71k5D8CTxcsCHFc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=0auZauZc34xdPUFmojM8iTQc9v8cBoUqGPTjalAD9CNRZx+Nh1K4S1AfJKcP1m4Ki XcUcKzcFSfk3gXQi7+UE8Q9WYPIBwZthCMRe46lkFn9/wrrWqyRGcKJHKd23FODvgi 6p5qYx0VWQgk1baThxw8INjLDmxjUOQr1pf//uL8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Alexander Shiyan , Sasha Levin Subject: [PATCH 4.19 156/321] serial: max310x: Fix tx_empty() callback Date: Tue, 3 Dec 2019 23:33:42 +0100 Message-Id: <20191203223435.260836210@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191203223427.103571230@linuxfoundation.org> References: <20191203223427.103571230@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Alexander Shiyan [ Upstream commit a8da3c7873ea57acb8f9cea58c0af477522965aa ] Function max310x_tx_empty() accesses the IRQSTS register, which is cleared by IC when reading, so if there is an interrupt status, we will lose it. This patch implement the transmitter check only by the current FIFO level. Signed-off-by: Alexander Shiyan Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin --- drivers/tty/serial/max310x.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c index bd3e6cf81af5c..0c35c3c5e3734 100644 --- a/drivers/tty/serial/max310x.c +++ b/drivers/tty/serial/max310x.c @@ -844,12 +844,9 @@ static void max310x_wq_proc(struct work_struct *ws) static unsigned int max310x_tx_empty(struct uart_port *port) { - unsigned int lvl, sts; + u8 lvl = max310x_port_read(port, MAX310X_TXFIFOLVL_REG); - lvl = max310x_port_read(port, MAX310X_TXFIFOLVL_REG); - sts = max310x_port_read(port, MAX310X_IRQSTS_REG); - - return ((sts & MAX310X_IRQ_TXEMPTY_BIT) && !lvl) ? TIOCSER_TEMT : 0; + return lvl ? 0 : TIOCSER_TEMT; } static unsigned int max310x_get_mctrl(struct uart_port *port) -- 2.20.1