Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp530334ybv; Wed, 19 Feb 2020 04:26:12 -0800 (PST) X-Google-Smtp-Source: APXvYqxvL6m0SpA6sU0+i1wbQASXkXYridSDvC28IsjLiKsY8YFDDf/rwNnQi+rngfFXpRejm6/M X-Received: by 2002:a05:6830:1498:: with SMTP id s24mr20743842otq.79.1582115172545; Wed, 19 Feb 2020 04:26:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582115172; cv=none; d=google.com; s=arc-20160816; b=lBkr6FO63Hqz2fmkSY31cSnNtkVaV0pFMabslie6BpN42PczcGlZGXe5KotZT/bqqp tOqVS0M3TvUIdwy/KWQLNOljVZP9jmQ1su7vTED4xt2fdMHkLOCymaWh1SUeXJuazEaY c6n0B08ArADRXqOHjh91qc5YgQ+PdbV9ae7d+hzx+wbj0XIOCZ7a3LB6SJQYO2HRMHqE ZMfE1hjleRVIXZShTOMcOI3ULGUVMIMwdIpy4U+d4BZ38EZ3MxWfDpPTho25XQM10A0c C5Nq2j5q3coZWMITz6GXINBl+Oldy9f4AQrXZumZTL5MxydlHpMA6M8C6JOLCNSiq0Zl ipuw== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=vym7cnw2UswPy4mXXSErcySNdTESMC8KufR8ycUGU5w=; b=SXRn/PZ00m2FrRzmD8KEBm4Uo6tbW7jDxWaK9AxJL+AH1gDlHIEtF8DUA9uBDjrI+d 1gGysSDRSUFQzqJ7CwUjgVVndiH9cknIESWDgvlMOE9knhpkTbNfb3btxb34c4UaravB I0/EUaloV3DgRjrlYKundW3FELO2AA0mWdg8P3AAYEDvzSm3sXVHq735M3veeqHUk6k/ e6e8t3ti+ZqVdnmDf8QorQdFccPTw5lrKks+GfaVId7cArPCaIWgZS836Pcq+803hcnb a/1iMrsJH1vBiJjEjv5Dyt7htQGIwHLSMdlVHuDgDG0I4tQo5I4ea9CSShGppuGn7vGo 6KMA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=oez3uqjO; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o16si1040731otp.289.2020.02.19.04.25.59; Wed, 19 Feb 2020 04:26:12 -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=@gmail.com header.s=20161025 header.b=oez3uqjO; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726977AbgBSMZx (ORCPT + 99 others); Wed, 19 Feb 2020 07:25:53 -0500 Received: from mail-lf1-f66.google.com ([209.85.167.66]:40994 "EHLO mail-lf1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726530AbgBSMZx (ORCPT ); Wed, 19 Feb 2020 07:25:53 -0500 Received: by mail-lf1-f66.google.com with SMTP id m30so17269291lfp.8; Wed, 19 Feb 2020 04:25:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=vym7cnw2UswPy4mXXSErcySNdTESMC8KufR8ycUGU5w=; b=oez3uqjO4V62x8YIYF5vSrd4T0ApecZAop66yE0oWlbRoOBzXF14svDpFD/Ng2lwwh MCkn1LskfRITwXoyRp0xOmwHk67ybaAX4EciOuyLfZGtHWFWI9bjcJmRUxZRCeNltUtI 5002JRuke/Egc6Lp8iyOvY9JiSvbiuEdHqpyVfEF/WsPcfn4ClYnIZtUpyRO35QkyiGu f7xtL1pRRS+lqqShdssORi9j3o3WiJExuAoe5pWnl++josbuHO3HzwcpIP1NDkV6aaxH 2+mbI6l985QaghxEZZgLMN5bsB/fAuh8pRSj4ATC6llE7H4pbDDy4QaVswKus/ta6d4A vE1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=vym7cnw2UswPy4mXXSErcySNdTESMC8KufR8ycUGU5w=; b=hr3VgRbzK5OdJ87WDDe8ilLlbq2LUEPDkllwrR5X5OYIjsYYQq+Xh7cheKDGiN3NBr lIrZ2TnUVnIfQ0MCmlbA/pdeHgBEo+9iRGwKlDGMdjW1aDNs0QS0w2Uyjz2DFSunEcHG sHXtZoGARCkk+vChtAbusGxsF3dCW0laCijH6W5R93MaR1F91Xn6XDTDyurtTZi7vv+D TtJHYVDfYCnj6+zJuv8A2A0D5hqfGihKsTWJJo+xJcQYLN7BYKiRGEGC4tSnjaO0aM8z Dt9LW1K3ekTOD3fFsvphiChBL57KfZnyTAvHn4KoXquYut2VswUPjsTvtoP03YtKyT22 oCgQ== X-Gm-Message-State: APjAAAU5dW+/iEjvfJMO2n0oc7yhHOMqmL3JcGCUJ25umX07ycURO0tM /UJSxQySyzo1ICN0if/A+/CIfmWZ X-Received: by 2002:a05:6512:407:: with SMTP id u7mr12956722lfk.146.1582115150261; Wed, 19 Feb 2020 04:25:50 -0800 (PST) Received: from [192.168.2.145] (79-139-233-37.dynamic.spd-mgts.ru. [79.139.233.37]) by smtp.googlemail.com with ESMTPSA id a9sm1236930lfk.23.2020.02.19.04.25.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 19 Feb 2020 04:25:49 -0800 (PST) Subject: Re: [PATCH for 5.6 v2] tty: serial: tegra: Handle RX transfer in PIO mode if DMA wasn't started To: Jiri Slaby , Laxman Dewangan , Greg Kroah-Hartman , Thierry Reding , Jonathan Hunter Cc: linux-serial@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org References: <20200209164415.9632-1-digetx@gmail.com> <15b01f79-007d-09bb-03be-050c009ceff6@suse.cz> From: Dmitry Osipenko Message-ID: <4d9a2352-6daa-4dcc-376b-175b1398ff6a@gmail.com> Date: Wed, 19 Feb 2020 15:25:47 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.3.0 MIME-Version: 1.0 In-Reply-To: <15b01f79-007d-09bb-03be-050c009ceff6@suse.cz> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 17.02.2020 10:37, Jiri Slaby пишет: > On 09. 02. 20, 17:44, Dmitry Osipenko wrote: >> It is possible to get an instant RX timeout or end-of-transfer interrupt >> before RX DMA was started, if transaction is less than 16 bytes. Transfer >> should be handled in PIO mode in this case because DMA can't handle it. >> This patch brings back the original behaviour of the driver that was >> changed by accident by a previous commit, it fixes occasional Bluetooth HW >> initialization failures which I started to notice recently. >> >> Fixes: d5e3fadb7012 ("tty: serial: tegra: Activate RX DMA transfer by request") >> Signed-off-by: Dmitry Osipenko >> --- >> >> Changelog: >> >> v2: - Corrected commit's title by adding the accidentally missed "tegra: " >> to the prefix. >> >> drivers/tty/serial/serial-tegra.c | 35 ++++++++++++++----------------- >> 1 file changed, 16 insertions(+), 19 deletions(-) >> >> diff --git a/drivers/tty/serial/serial-tegra.c b/drivers/tty/serial/serial-tegra.c >> index 33034b852a51..8de8bac9c6c7 100644 >> --- a/drivers/tty/serial/serial-tegra.c >> +++ b/drivers/tty/serial/serial-tegra.c >> @@ -692,11 +692,22 @@ static void tegra_uart_copy_rx_to_tty(struct tegra_uart_port *tup, >> count, DMA_TO_DEVICE); >> } >> >> +static void do_handle_rx_pio(struct tegra_uart_port *tup) >> +{ >> + struct tty_struct *tty = tty_port_tty_get(&tup->uport.state->port); >> + struct tty_port *port = &tup->uport.state->port; >> + >> + tegra_uart_handle_rx_pio(tup, port); >> + if (tty) { > > What's the tty good for here, actually? > >> + tty_flip_buffer_push(port); >> + tty_kref_put(tty); >> + } >> +} I'm not really a TTY expert.. Jon, maybe you have any clue whether TTY could disappear while port is opened?