Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp741351ybl; Wed, 4 Dec 2019 10:06:24 -0800 (PST) X-Google-Smtp-Source: APXvYqwnqoqJvQ/WRfSPP7c30+CQoGEpV7MHvVSX7oEETzKEvx5VkJOcnhDlUGqT8T3GAIIzpoM2 X-Received: by 2002:aca:d4ca:: with SMTP id l193mr3737832oig.133.1575482784444; Wed, 04 Dec 2019 10:06:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1575482784; cv=none; d=google.com; s=arc-20160816; b=KOCDfN9fJ4IpPRiLMNbK/SNVO92U/rjuCqsvS1ukjJ6AAqrpUEKoppkMh+fyFMhlf3 DrLmrlVQWW8apR54t1vJPIw2xyKsRPy/Taso75M76UhrX8n7AWhVTNUttdJFiEG1r7D1 Ym9AAxNEoALvuEWnJB+07uTGS3IISGCfA2/Q7+pL3Apd10c+qH/APllZ590fmEzzjS8d TVe3p9P7mmoHCBfu2M5luAkfpHKxLNuC8tz+9jD0XaSMEAarZlnb23wTTvWSEt5kwW6f 5dk+oCh/7deFdNzK/QDPaW+8Yi6stQb2opfW1+RoK/vsggW5qfDmXncMCxoA4qkEldjZ EWWg== 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=FDStySRlTrXBz8EDrZOoPg+Gxa1FMAF/LOmHaW8E3Zc=; b=CTNjEq+01UhlW/g8Zq6HqIaBvDNvUifBrBouAzCL7i4vofnDhcRyZCgv3VV1mAn6bw jf7cX7vM7GL867AD3L6ys1zWRDJ63cqQvVC0Njp0WmMhA/bLQ3YHFX8GyIpMft7tzW4j GIfgSw9QeWFJ89VG3+JYlSKEl8yXJ6KprAo3PGmHQVM1zFtaCGqlZ2R9ssB1LI20VFB1 Q/9sNcOqssMzQbssW9pUUFL8bG3uJgZlqlcTvb+TgWRGbe2DFhCS3hBleeLjWeJHnCmf RR2VrKUCpNKe6BiusOjYdnqiwd0rUyDyLy6Tun/dycllUxdhiza33Y5zeSHXXESzxPbi 9J+Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=MG92232Z; 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 v8si3700978otk.227.2019.12.04.10.06.11; Wed, 04 Dec 2019 10:06:24 -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=MG92232Z; 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 S1730235AbfLDSEf (ORCPT + 99 others); Wed, 4 Dec 2019 13:04:35 -0500 Received: from mail.kernel.org ([198.145.29.99]:49836 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729827AbfLDSE2 (ORCPT ); Wed, 4 Dec 2019 13:04:28 -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 C4F912073B; Wed, 4 Dec 2019 18:04:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575482668; bh=1kQsmX0swMTAzM23lP+WYgI3kFE27ittERjogfKgQlA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MG92232ZihhwNT9iToEg+7OFIIgDlwx0eP4/zs7dxcJLKOlBv6XEvjcj0zje11FJr A4YCdeqVNo6aA9MGt0LC9gGTjvUMnrb2QwEYYUUDHWCgGo3W1m42m0Slo8GjaUV7jU i7oRwewZhz/YCo1aXmohDkF565cNLRep14uWzItw= 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.14 086/209] serial: max310x: Fix tx_empty() callback Date: Wed, 4 Dec 2019 18:54:58 +0100 Message-Id: <20191204175327.562751834@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: 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 0969a0d97b2be..cec995ec11eab 100644 --- a/drivers/tty/serial/max310x.c +++ b/drivers/tty/serial/max310x.c @@ -769,12 +769,9 @@ static void max310x_start_tx(struct uart_port *port) 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