From patchwork Sat Apr 23 17:14:32 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Rowand X-Patchwork-Id: 8918501 X-Patchwork-Delegate: agross@codeaurora.org Return-Path: X-Original-To: patchwork-linux-arm-msm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 64A7A9F1C1 for ; Sat, 23 Apr 2016 17:14:39 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 8B5F8201C7 for ; Sat, 23 Apr 2016 17:14:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id AD72B200FE for ; Sat, 23 Apr 2016 17:14:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752086AbcDWROg (ORCPT ); Sat, 23 Apr 2016 13:14:36 -0400 Received: from mail-pa0-f46.google.com ([209.85.220.46]:35861 "EHLO mail-pa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751964AbcDWROe (ORCPT ); Sat, 23 Apr 2016 13:14:34 -0400 Received: by mail-pa0-f46.google.com with SMTP id er2so49233034pad.3; Sat, 23 Apr 2016 10:14:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:reply-to:user-agent:mime-version:to:subject :references:in-reply-to:content-transfer-encoding; bh=qbK5YUm8Lr2Xvb6e7OS3m7FuRrfwLBDM4QDW7jEcCts=; b=cVQXZQuXJ+Lc2Rr0Qg3nXn0o109LH4PTfqk9Sbs2jWkvhz/EYnLIPeB+PbWDX+G+UZ lJI+w/ajgqQJGYDEP8vGqCXawgbEOTefUIqd45Fg4O2ekq44BQJWkdyK94Y8smgSN4Ej iQB4l6Mx3QW8nGS6lVVVW0/KEpXNEkWd7fbnJRF9drR3m5Q+0JOegPv8w3Fezn6ddMeJ gh3WJJidrLQRc4pUjFL0yHVf9ieedgDjB48cAbOWXur33VelsVJipMW8pOa0AWhGJT/G un6TrWQWkgkoP+E11eDxyFgt0L/J9/ammvDypcjnz6OIaP46yDKt8Nox33E9Cb9pRTTV jCgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:reply-to:user-agent :mime-version:to:subject:references:in-reply-to :content-transfer-encoding; bh=qbK5YUm8Lr2Xvb6e7OS3m7FuRrfwLBDM4QDW7jEcCts=; b=L5E/I6EhiJyPQANA83fY2cQbklHK9oC7QZf2i6DQtAv1kahlZO6T4JsL4Vm+NS9GjY a7JDnBYKpZ+0Hyj7z0fMROwa+ZGDtR7LWOQM3/ZWHDha3XeAOeVeOcAGdsqOcL4kst81 +iG9SPJYEldSXQa/+94/kCJl7L4e4N8wwe6XFY5igz3XGap2PWYxWL4cZ67fuxl10znj iRV8U4u4Vm6pHPSOfWLdvdmBlyibOUJqD4j21rvzIL4Kyl/0RwEH61nk+kJ3yBwZ7Zpb cGqoYOBLCrCk4TGwlBNffLFMGT9cIZO8a6rQAKHgYutehWWIc1zUhABtWVH/gSwcLYUF pIUw== X-Gm-Message-State: AOPr4FXABxLroJw+uqFo1HHkFOsXxIa0P7GDVLxJml2q3ep3dd/yk/twNyENQV9o537qng== X-Received: by 10.66.231.73 with SMTP id te9mr37529910pac.62.1461431673557; Sat, 23 Apr 2016 10:14:33 -0700 (PDT) Received: from [192.168.1.56] (c-50-148-165-216.hsd1.ca.comcast.net. [50.148.165.216]) by smtp.googlemail.com with ESMTPSA id bk8sm17781035pac.3.2016.04.23.10.14.32 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 23 Apr 2016 10:14:33 -0700 (PDT) Message-ID: <571BAD78.4020609@gmail.com> Date: Sat, 23 Apr 2016 10:14:32 -0700 From: Frank Rowand Reply-To: frowand.list@gmail.com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130801 Thunderbird/17.0.8 MIME-Version: 1.0 To: Andy Gross , David Brown , Greg Kroah-Hartman , Jiri Slaby , "linux-arm-msm@vger.kernel.org" , linux-soc@vger.kernel.org, linux-serial@vger.kernel.org, Linux Kernel list , ivan.ivanov@linaro.org Subject: [PATCH 1/2] tty: serial: msm_serial regression fix data corruption References: <571BAC8B.80001@gmail.com> In-Reply-To: <571BAC8B.80001@gmail.com> Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Frank Rowand Commit 3a878c430fd6 ("tty: serial: msm: Add TX DMA support") regression. The calculation of tx_count was moved from the old msm_handle_tx(), now renamed msm_handle_tx_pio(), to the new msm_handle_tx(). The move left out one size test. The regression seen on the qcom-apq8074-dragonboard is dropped characters and corrupted characters (values greater than 0x7f) when DMA is not enabled. Signed-off-by: Frank Rowand Cc: stable@vger.kernel.org Reviewed-by: Stephen Boyd Tested-by: Andy Gross --- drivers/tty/serial/msm_serial.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Index: b/drivers/tty/serial/msm_serial.c =================================================================== --- a/drivers/tty/serial/msm_serial.c +++ b/drivers/tty/serial/msm_serial.c @@ -727,6 +727,8 @@ static void msm_handle_tx(struct uart_po } pio_count = CIRC_CNT(xmit->head, xmit->tail, UART_XMIT_SIZE); + pio_count = min3(pio_count, (unsigned int)UART_XMIT_SIZE - xmit->tail, + port->fifosize); dma_count = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE); dma_min = 1; /* Always DMA */ @@ -738,9 +740,6 @@ static void msm_handle_tx(struct uart_po dma_count = UARTDM_TX_MAX; } - if (pio_count > port->fifosize) - pio_count = port->fifosize; - if (!dma->chan || dma_count < dma_min) msm_handle_tx_pio(port, pio_count); else