From patchwork Tue Jul 19 07:43:06 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bhuvanchandra DV X-Patchwork-Id: 9237317 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 8C44860574 for ; Tue, 19 Jul 2016 13:19:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7AF8226C2F for ; Tue, 19 Jul 2016 13:19:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6B70426E64; Tue, 19 Jul 2016 13:19:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C88F026C2F for ; Tue, 19 Jul 2016 13:19:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753503AbcGSNTJ (ORCPT ); Tue, 19 Jul 2016 09:19:09 -0400 Received: from mail-ve1eur01on0132.outbound.protection.outlook.com ([104.47.1.132]:21491 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752987AbcGSNTG (ORCPT ); Tue, 19 Jul 2016 09:19:06 -0400 X-Greylist: delayed 20051 seconds by postgrey-1.27 at vger.kernel.org; Tue, 19 Jul 2016 09:19:05 EDT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toradex.onmicrosoft.com; s=selector1-toradex-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=kG11VuPUB99j+3lQTRb1aY4k8MJIPDetr3J3iQhWojY=; b=syiE5YFIlxE8GaXapEOTQv6iDS6pofg43q+FACAYtl2N3UcxNyjQjfWgbFidhZoCozzFc35Ab2MoHBwaU/QFKK+38gfP629iEKpLvbHbmtvSUxCLLshiJldxYIe9DZktLX0LHjB3YXrV3pV2BaoYVHgnolxi1VY64f6ndgF5eS0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=bhuvanchandra.dv@toradex.com; Received: from tdx-in-nb-0014.toradex.ext (115.115.243.34) by DB6PR0501MB2087.eurprd05.prod.outlook.com (10.168.9.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.544.10; Tue, 19 Jul 2016 07:44:46 +0000 From: Bhuvanchandra DV To: CC: , , , , , , , , , , "Bhuvanchandra DV" Subject: [PATCH RESEND v2 4/8] tty: serial: fsl_lpuart: Fix broken 8m/s1 support Date: Tue, 19 Jul 2016 13:13:06 +0530 Message-ID: <20160719074310.16872-5-bhuvanchandra.dv@toradex.com> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20160719074310.16872-1-bhuvanchandra.dv@toradex.com> References: <20160719074310.16872-1-bhuvanchandra.dv@toradex.com> MIME-Version: 1.0 X-Originating-IP: [115.115.243.34] X-ClientProxiedBy: MA1PR01CA0045.INDPRD01.PROD.OUTLOOK.COM (10.164.116.145) To DB6PR0501MB2087.eurprd05.prod.outlook.com (10.168.9.139) X-MS-Office365-Filtering-Correlation-Id: 219512ec-b385-4251-fd2b-08d3afa88fae X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2087; 2:DnuyDugcE3RXu5/s0xiCx0okBwWvzy7j0A4AufCUb474fvG+aayvNlu1QrpfqbMNQ/3718A2tJGrnBTLqC13P4hcqO8KbPmuXN9DaEoRBqMX+EuSzsk2Udu3VC2BPq8BfjWGL8pQB6JdphUm/wVUop1zoET2zYxgMY3/5l+vJCJKr1gPKN0rc3lRCzcIJ8dk; 3:eW+SAD5HWOTdcE0CKChet6iOcaLQ+YJqHLeLt0JLOCWEoNNjxRz//fwqOWW17unWlAqW2hfz0G2SuGVKGsphlI7c09WZIEp0Rgb3cQSKLLaa2kLon+Fhkuy0oAmap7LJ; 25:c+HM5DPmkWYfxQYrOCwcBZtQ0iMxhoCo7AkD8GUV0Ihbv5ZJj4Wa7CzgQ/OkLWqodordx8rP/0xcZJbiOrJxki4YX8hUyXn2/Qn3Fv/FohoTUsNrO+b7gECHsTtF5+fkUtbyoGma6ZMFeOGsoGX0DpL+MGY4kyaHXlvnbf/oduPaiwaHwlyUsdyiY8fqx45jN2Ac2c5T/JVOw6d9WJMcjZb6i5bup2gY+4aSEI2PDTibB0McPXni8sV2IW6zBe3Ntq9nv++ePXMQqMU0wkwxytb3PAiwBIQXDqAQ2Siyg+Z2B7EBOJHgH/XaY1VR10SeYh8ggaqAEb8w1sD9QtiIB3/e3aYO+cIUKbMHeY4iLR6iMdZ+pKg1TnqegfbOpChCKuvz1yQytePVbkzheZabZBBdrxQtzvhXrGGln4sqxsE= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0501MB2087; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2087; 31:h8zuOPoG9zu/FUlhvi7fPyS+VilTPI83nifffc/MU4d4yAYEKSpWuTHcAmm63yLU5ibBov1sVwdoWAv2yTJCSAEXrzD70FnW+aVBwIoZJkeZm3r74JHWDBhRlCEGoBCfd0j0Qb/s0F0Uy1hpqrB/4U5ofoNvxAUUWg+a53kpfQmTaBLr/weiYi1Oh5gzjBEaWDFok8O9bYcglVw2l2sQ5w==; 20:n2qWrin07Zmfk+JybAaXkqHyo8GDgONbJexwxjXnYXQonrLLgX6etCwYA6+HB3Ls29UZD4uAha7MrOaYYq7Ae5w6IQi4JDxsFxs+lN0Ke8StOatlfVy++tNj0mtyPDgVHmBrrF2wD/AioAYzHyChge/p1g0b+dgiKU2ycbY2clQb4Hyow8lRK8I0mnNkKVCtdaex6CVCfoalDXeuv9slYHhEO01FRV2CHc3G2HXGffiBB5rGax/RePI36Cp5WRtcfuJP1sIHXASPMJDp98k0Af56+bOresuWiJnPpNOluQHdPosBDfYCrTm3yCwtPif/Q88rMqzfBo2XBzy6mhKUYA==; 4:uJgKwHugLMIqNNKg/iosw7bQ7A+NnyQwqUxc/V8e8KuFLzyKAUyMB3PztGOGJrB0908hVNDK576nws6pWbSpZUTJNYBMl4XOPr+pno/XkiEcPkHbxRsomOueBDsJfuQwrxmnRKvvzoDQb5NFXc4mMx0rkbfVrgtHGW/fM8UYNeb1idq4NWtv5at4nrDHC7Ei4TaZp/JbYAOfSTBw9R0BRd4Gx3feTzU3TF3rVYzQAoh5AE3BFUDX7nvaq/MfBm+ATpMkvDyamTW4bsK0tQpcaenuMIvHrCd1rCXd1VPHKTGM3FTJzVydm5Bo04Z9izmwwiPA6sMGE92qJzUdfWXuSfV3SnHmitGiErzsiP1be8TrQAss mZj/RLOUZcL6l/CN X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046); SRVR:DB6PR0501MB2087; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0501MB2087; X-Forefront-PRVS: 000800954F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(7916002)(199003)(189002)(77096005)(36756003)(42186005)(69596002)(4001430100002)(19580395003)(86362001)(7736002)(19580405001)(47776003)(5003940100001)(2950100001)(92566002)(50466002)(66066001)(76176999)(50986999)(50226002)(4326007)(48376002)(6116002)(3846002)(1076002)(586003)(97736004)(305945005)(68736007)(189998001)(105586002)(8676002)(110136002)(107886002)(53416004)(101416001)(2906002)(2351001)(81156014)(81166006)(229853001)(106356001)(7846002)(33646002)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0501MB2087; H:tdx-in-nb-0014.toradex.ext; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: toradex.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB6PR0501MB2087; 23:lLFWpzGz8H8Z8OP2vJ5jC/3w6r8KVtqMcd8gfAK?= =?us-ascii?Q?yq8f8H+Fz7vxSxQV3xK2CQaEiq8rgSJi22VsXyySb3L/KnN8lx2kRt/WRXTx?= =?us-ascii?Q?R38pOr5DPUclbJdhT1Gc7Qwbk5pzJVCiT0lMEsQS7uuxBqtbSlEgsOygN5Kf?= =?us-ascii?Q?88q47x4wtyJJM9xMcemWoAlM7ESoEQ9pw2MxkRMDYMyIaeauc+M6nNonwf5O?= =?us-ascii?Q?xT28hmMxKB5PszUTqaEDGgGVlIfZ4mpvgAwnqTl5nrOO9Su1vuW6I5xR17K0?= =?us-ascii?Q?wwQXhevjgTk9dkG+CJgWIRuWpeE1TfRfRCoWD82sETrwGPYRUwe9L5nIX7j2?= =?us-ascii?Q?5LyoLmq+AzCs2Adt1rpRi5lVquNV1elqSlYmQkWJ2JBhURN9tQAlUTCrs4jT?= =?us-ascii?Q?sM9saPpqWUlQ0fWUZcLKqex9g8nt50TOs1qoGAv7u6BuKsHzclAvBm4z4bRE?= =?us-ascii?Q?EyJ7Idiz3WH2YaSr32D4WS0ObDHkNZY7WnxsOd/e/ffSUXykNS0t9LxVyOHU?= =?us-ascii?Q?2PEKZdu3zKacY95wMpBRm5hQ26oynRbaT1jNZZpC7jrGweKjj6oXl+y+7GLk?= =?us-ascii?Q?NlG51dFBDDe9gbvnSh8QBIrlht4E89JAas5QHukCcyEV5gQ9ufMNNaihO+ll?= =?us-ascii?Q?KhXefEIf6uoq3SmRx4gjsbSgz3iJ8HUtMTCfOI4TPKGUTpqXuIANOPK2Otb2?= =?us-ascii?Q?fOuzXUqXPDaVJ0BxuhikZapQ7WM3vqrisQRnrctFJrNbSNNIHI39GHr1MubD?= =?us-ascii?Q?XLvDGsFwwOQyhvA5JrYm1glGqsahi+i2SkdXn7TOcQSYZy0POvxBXvSby2Ig?= =?us-ascii?Q?uZpKnI8ivcm/+smqTPPkl+EZmXZDfffU04mQLPDVmT3Ix3JgqXXAjS52b2H+?= =?us-ascii?Q?KkWd8NajJNgg9qShkIY3zkO7uIYApxsqTphvHhd73T90Tip5oIOtWo3o63s6?= =?us-ascii?Q?XZTMOE7Q+g6Da3l+xJI1b46zUEvN0ggXdEYI5sUSxFQJ1NsyIeKNoVAbtPak?= =?us-ascii?Q?bFAZCmMZy0WRlG9vSYo2Rch7nBHgHZmaUVy2rSVmXY8X1xMrUoNwc59jQ5LI?= =?us-ascii?Q?fZtwY2RuDrFFj7wDKHJuOYV21WyKQMYoXFhXNBqa14VlgcKsCtq82Ir0+1i2?= =?us-ascii?Q?QsjHs1YLZvZRYx2ul89hjRdlZx4Bu4ZbZOPyTxI2qpiTaTJe4f6bD9R7UTU3?= =?us-ascii?Q?brglxWAnCMjUd+IAjhCaBV8WapFM2jG59TRv/?= X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2087; 6:bFDo+x2kuO+g0pFXf3B+QBPj5P+2D6JU6t4W6lgO7jLulL8CF2GSV3SSBp+4M3+YbcNRPxdw6OozK0Zr7yr/ipPZBhPy/oNP0FjLFpi0h3ODdBY2XSF66qwUXhUPhBQwl3RUYPFoFVGPH2tGuevdXclIc2V1/nIPFfvLlM9PCFfok89vsdVuIQw8MIoSWasIvE619S0Q+0mbanaywulLYur8wcxuH4VHYCpegBLvcwKfNxeE4j0TptAuMguEzKk+eZCmsZ4J3VeZEhtGU22A8Fida7opq2e+cDtJfH6uwNI=; 5:2VIxj7jtULUY4Rs1sBPOnw12+/053FfHEFODcBRvveMg2lWmpg0FNN+NxFSAi4dKNpIbX7SglE9zMGpnnzSnYHRozGrcB0Fg8t5DCqwHCeHc/weBv4zu2l/WshxcK/p6hvdoVPJs9bPoPcDEo8GoxA==; 24:5POYRpT9GE0zOAgvK2oBPeJKct7HcC69qWZMFjNBU36lCHDbJOTD9hQFV2578w8SpNa3c4GIGw3/xqDyow7BupYE/zyGEFlCOteGDbNrrNw=; 7:wgkIqGBxgMdHxFkFJx7/gGaxW7VO3G8cCTPJSp8onunRa2koFR++5BwgxNFdxHBuCxj/apHhWevGmOkRv777E1Sx/Xltw2696EIBG2uoZXw1sUKIn92zAMTFnM8zV8pzH2aeWjc8EdWbLL4nZOqAv9dpn92NjWd4RmpDfHct+ij8vP10jzQRojLt/6bOyDdiLdXq7wAWz1f8iibl6gn8JnlvAQCpPS6ESf8LbKVULLJulzNPc4Rdv926h6QqWmSS SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: toradex.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jul 2016 07:44:46.5718 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0501MB2087 Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP By default the driver always configure the mode as 8s1 even when 8m1 mode is selected. Fix this by adding support to control the space/mark bit. Signed-off-by: Bhuvanchandra DV --- drivers/tty/serial/fsl_lpuart.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c index 97c1fda..615f191 100644 --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c @@ -1220,13 +1220,14 @@ lpuart_set_termios(struct uart_port *port, struct ktermios *termios, { struct lpuart_port *sport = container_of(port, struct lpuart_port, port); unsigned long flags; - unsigned char cr1, old_cr1, old_cr2, cr4, bdh, modem; + unsigned char cr1, old_cr1, old_cr2, cr3, cr4, bdh, modem; unsigned int baud; unsigned int old_csize = old ? old->c_cflag & CSIZE : CS8; unsigned int sbr, brfa; cr1 = old_cr1 = readb(sport->port.membase + UARTCR1); old_cr2 = readb(sport->port.membase + UARTCR2); + cr3 = readb(sport->port.membase + UARTCR3); cr4 = readb(sport->port.membase + UARTCR4); bdh = readb(sport->port.membase + UARTBDH); modem = readb(sport->port.membase + UARTMODEM); @@ -1274,7 +1275,10 @@ lpuart_set_termios(struct uart_port *port, struct ktermios *termios, if ((termios->c_cflag & PARENB)) { if (termios->c_cflag & CMSPAR) { cr1 &= ~UARTCR1_PE; - cr1 |= UARTCR1_M; + if (termios->c_cflag & PARODD) + cr3 |= UARTCR3_T8; + else + cr3 &= ~UARTCR3_T8; } else { cr1 |= UARTCR1_PE; if ((termios->c_cflag & CSIZE) == CS8) @@ -1342,6 +1346,7 @@ lpuart_set_termios(struct uart_port *port, struct ktermios *termios, writeb(cr4 | brfa, sport->port.membase + UARTCR4); writeb(bdh, sport->port.membase + UARTBDH); writeb(sbr & 0xFF, sport->port.membase + UARTBDL); + writeb(cr3, sport->port.membase + UARTCR3); writeb(cr1, sport->port.membase + UARTCR1); writeb(modem, sport->port.membase + UARTMODEM);