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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AA54BC433FE for ; Thu, 10 Feb 2022 07:50:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236615AbiBJHt7 (ORCPT ); Thu, 10 Feb 2022 02:49:59 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:38556 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236596AbiBJHt4 (ORCPT ); Thu, 10 Feb 2022 02:49:56 -0500 X-Greylist: delayed 39988 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Wed, 09 Feb 2022 23:49:58 PST Received: from thorn.bewilderbeest.net (thorn.bewilderbeest.net [71.19.156.171]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 27921103F; Wed, 9 Feb 2022 23:49:58 -0800 (PST) Received: from hatter.bewilderbeest.net (174-21-187-98.tukw.qwest.net [174.21.187.98]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: zev) by thorn.bewilderbeest.net (Postfix) with ESMTPSA id 933CBD7; Wed, 9 Feb 2022 23:49:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bewilderbeest.net; s=thorn; t=1644479397; bh=WDZKBxFLFY5R2xvQgKTR8shZQ5vRP9WinLJPjTOcMu8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=MXaZ9DfhNmPah+A2PCKy7N4cdGmqbX+ggNr4LG7BNA+M65b1Pc4UwdvrEsQnnObs6 HgL/sLbPOLmGM6Nw5GlqPyuY4RSOpcCQv3d6gq+MRSaLLlwlgH8cFvd4TZivY4qUCU cTswE3pW9lWkLMsAkIhxqYcvYjl/KVYGyU97O5Oo= Date: Wed, 9 Feb 2022 23:49:47 -0800 From: Zev Weiss To: Greg Kroah-Hartman Cc: Joel Stanley , Andrew Jeffery , Jiri Slaby , Andy Shevchenko , Konstantin Aladyshev , Oskar Senft , openbmc@lists.ozlabs.org, linux-serial@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] serial: 8250_aspeed_vuart: add PORT_ASPEED_VUART port type Message-ID: References: <20220209203414.23491-1-zev@bewilderbeest.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Feb 09, 2022 at 11:40:42PM PST, Greg Kroah-Hartman wrote: >On Wed, Feb 09, 2022 at 12:34:14PM -0800, Zev Weiss wrote: >> Commit 54da3e381c2b ("serial: 8250_aspeed_vuart: use UPF_IOREMAP to >> set up register mapping") fixed a bug that had, as a side-effect, >> prevented the 8250_aspeed_vuart driver from enabling the VUART's >> FIFOs. However, fixing that (and hence enabling the FIFOs) has in >> turn revealed what appears to be a hardware bug in the ASPEED VUART in >> which the host-side THRE bit doesn't get if the BMC-side receive FIFO >> trigger level is set to anything but one byte. This causes problems >> for polled-mode writes from the host -- for example, Linux kernel >> console writes proceed at a glacial pace (less than 100 bytes per >> second) because the write path waits for a 10ms timeout to expire >> after every character instead of being able to continue on to the next >> character upon seeing THRE asserted. (GRUB behaves similarly.) >> >> As a workaround, introduce a new port type for the ASPEED VUART that's >> identical to PORT_16550A as it had previously been using, but with >> UART_FCR_R_TRIG_00 instead to set the receive FIFO trigger level to >> one byte, which (experimentally) seems to avoid the problematic THRE >> behavior. >> >> Signed-off-by: Zev Weiss >> Tested-by: Konstantin Aladyshev > >Do we need a "Fixes:" tag here as well? I was wondering the same -- I left it out because it didn't seem like it was strictly a bug in the earlier commit that's really being fixed per se, but perhaps that's an overly pedantic distinction. I can certainly add it if you'd prefer. > >> --- >> drivers/tty/serial/8250/8250_aspeed_vuart.c | 2 +- >> drivers/tty/serial/8250/8250_port.c | 8 ++++++++ >> include/uapi/linux/serial_core.h | 3 +++ >> 3 files changed, 12 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/tty/serial/8250/8250_aspeed_vuart.c b/drivers/tty/serial/8250/8250_aspeed_vuart.c >> index 2350fb3bb5e4..c2cecc6f47db 100644 >> --- a/drivers/tty/serial/8250/8250_aspeed_vuart.c >> +++ b/drivers/tty/serial/8250/8250_aspeed_vuart.c >> @@ -487,7 +487,7 @@ static int aspeed_vuart_probe(struct platform_device *pdev) >> port.port.irq = irq_of_parse_and_map(np, 0); >> port.port.handle_irq = aspeed_vuart_handle_irq; >> port.port.iotype = UPIO_MEM; >> - port.port.type = PORT_16550A; >> + port.port.type = PORT_ASPEED_VUART; >> port.port.uartclk = clk; >> port.port.flags = UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF | UPF_IOREMAP >> | UPF_FIXED_PORT | UPF_FIXED_TYPE | UPF_NO_THRE_TEST; >> diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c >> index 3b12bfc1ed67..973870ebff69 100644 >> --- a/drivers/tty/serial/8250/8250_port.c >> +++ b/drivers/tty/serial/8250/8250_port.c >> @@ -307,6 +307,14 @@ static const struct serial8250_config uart_config[] = { >> .rxtrig_bytes = {1, 32, 64, 112}, >> .flags = UART_CAP_FIFO | UART_CAP_SLEEP, >> }, >> + [PORT_ASPEED_VUART] = { >> + .name = "ASPEED VUART", >> + .fifo_size = 16, >> + .tx_loadsz = 16, >> + .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_00, >> + .rxtrig_bytes = {1, 4, 8, 14}, >> + .flags = UART_CAP_FIFO, >> + }, >> }; >> >> /* Uart divisor latch read */ >> diff --git a/include/uapi/linux/serial_core.h b/include/uapi/linux/serial_core.h >> index c4042dcfdc0c..cd11748833e6 100644 >> --- a/include/uapi/linux/serial_core.h >> +++ b/include/uapi/linux/serial_core.h >> @@ -274,4 +274,7 @@ >> /* Freescale LINFlexD UART */ >> #define PORT_LINFLEXUART 122 >> >> +/* ASPEED AST2x00 virtual UART */ >> +#define PORT_ASPEED_VUART 123 > >Why does this value have to be in a uapi header file? What userspace >tool is going to need this? > I only put it there because that was where all the other port type constants were defined, and wondered the same thing about the lot of them. Is there a userspace tool that makes use of any of these? Zev 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 Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 45B4CC433EF for ; Thu, 10 Feb 2022 07:50:42 +0000 (UTC) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4JvTSc34qKz3bcS for ; Thu, 10 Feb 2022 18:50:40 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=bewilderbeest.net header.i=@bewilderbeest.net header.a=rsa-sha256 header.s=thorn header.b=MXaZ9Dfh; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=bewilderbeest.net (client-ip=2605:2700:0:5::4713:9cab; helo=thorn.bewilderbeest.net; envelope-from=zev@bewilderbeest.net; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=bewilderbeest.net header.i=@bewilderbeest.net header.a=rsa-sha256 header.s=thorn header.b=MXaZ9Dfh; dkim-atps=neutral Received: from thorn.bewilderbeest.net (thorn.bewilderbeest.net [IPv6:2605:2700:0:5::4713:9cab]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4JvTRr3Nqjz301M; Thu, 10 Feb 2022 18:50:00 +1100 (AEDT) Received: from hatter.bewilderbeest.net (174-21-187-98.tukw.qwest.net [174.21.187.98]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: zev) by thorn.bewilderbeest.net (Postfix) with ESMTPSA id 933CBD7; Wed, 9 Feb 2022 23:49:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bewilderbeest.net; s=thorn; t=1644479397; bh=WDZKBxFLFY5R2xvQgKTR8shZQ5vRP9WinLJPjTOcMu8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=MXaZ9DfhNmPah+A2PCKy7N4cdGmqbX+ggNr4LG7BNA+M65b1Pc4UwdvrEsQnnObs6 HgL/sLbPOLmGM6Nw5GlqPyuY4RSOpcCQv3d6gq+MRSaLLlwlgH8cFvd4TZivY4qUCU cTswE3pW9lWkLMsAkIhxqYcvYjl/KVYGyU97O5Oo= Date: Wed, 9 Feb 2022 23:49:47 -0800 From: Zev Weiss To: Greg Kroah-Hartman Subject: Re: [PATCH] serial: 8250_aspeed_vuart: add PORT_ASPEED_VUART port type Message-ID: References: <20220209203414.23491-1-zev@bewilderbeest.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: X-BeenThere: openbmc@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development list for OpenBMC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aspeed@lists.ozlabs.org, Konstantin Aladyshev , Andrew Jeffery , openbmc@lists.ozlabs.org, linux-kernel@vger.kernel.org, Oskar Senft , linux-serial@vger.kernel.org, Andy Shevchenko , Jiri Slaby , linux-arm-kernel@lists.infradead.org Errors-To: openbmc-bounces+openbmc=archiver.kernel.org@lists.ozlabs.org Sender: "openbmc" On Wed, Feb 09, 2022 at 11:40:42PM PST, Greg Kroah-Hartman wrote: >On Wed, Feb 09, 2022 at 12:34:14PM -0800, Zev Weiss wrote: >> Commit 54da3e381c2b ("serial: 8250_aspeed_vuart: use UPF_IOREMAP to >> set up register mapping") fixed a bug that had, as a side-effect, >> prevented the 8250_aspeed_vuart driver from enabling the VUART's >> FIFOs. However, fixing that (and hence enabling the FIFOs) has in >> turn revealed what appears to be a hardware bug in the ASPEED VUART in >> which the host-side THRE bit doesn't get if the BMC-side receive FIFO >> trigger level is set to anything but one byte. This causes problems >> for polled-mode writes from the host -- for example, Linux kernel >> console writes proceed at a glacial pace (less than 100 bytes per >> second) because the write path waits for a 10ms timeout to expire >> after every character instead of being able to continue on to the next >> character upon seeing THRE asserted. (GRUB behaves similarly.) >> >> As a workaround, introduce a new port type for the ASPEED VUART that's >> identical to PORT_16550A as it had previously been using, but with >> UART_FCR_R_TRIG_00 instead to set the receive FIFO trigger level to >> one byte, which (experimentally) seems to avoid the problematic THRE >> behavior. >> >> Signed-off-by: Zev Weiss >> Tested-by: Konstantin Aladyshev > >Do we need a "Fixes:" tag here as well? I was wondering the same -- I left it out because it didn't seem like it was strictly a bug in the earlier commit that's really being fixed per se, but perhaps that's an overly pedantic distinction. I can certainly add it if you'd prefer. > >> --- >> drivers/tty/serial/8250/8250_aspeed_vuart.c | 2 +- >> drivers/tty/serial/8250/8250_port.c | 8 ++++++++ >> include/uapi/linux/serial_core.h | 3 +++ >> 3 files changed, 12 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/tty/serial/8250/8250_aspeed_vuart.c b/drivers/tty/serial/8250/8250_aspeed_vuart.c >> index 2350fb3bb5e4..c2cecc6f47db 100644 >> --- a/drivers/tty/serial/8250/8250_aspeed_vuart.c >> +++ b/drivers/tty/serial/8250/8250_aspeed_vuart.c >> @@ -487,7 +487,7 @@ static int aspeed_vuart_probe(struct platform_device *pdev) >> port.port.irq = irq_of_parse_and_map(np, 0); >> port.port.handle_irq = aspeed_vuart_handle_irq; >> port.port.iotype = UPIO_MEM; >> - port.port.type = PORT_16550A; >> + port.port.type = PORT_ASPEED_VUART; >> port.port.uartclk = clk; >> port.port.flags = UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF | UPF_IOREMAP >> | UPF_FIXED_PORT | UPF_FIXED_TYPE | UPF_NO_THRE_TEST; >> diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c >> index 3b12bfc1ed67..973870ebff69 100644 >> --- a/drivers/tty/serial/8250/8250_port.c >> +++ b/drivers/tty/serial/8250/8250_port.c >> @@ -307,6 +307,14 @@ static const struct serial8250_config uart_config[] = { >> .rxtrig_bytes = {1, 32, 64, 112}, >> .flags = UART_CAP_FIFO | UART_CAP_SLEEP, >> }, >> + [PORT_ASPEED_VUART] = { >> + .name = "ASPEED VUART", >> + .fifo_size = 16, >> + .tx_loadsz = 16, >> + .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_00, >> + .rxtrig_bytes = {1, 4, 8, 14}, >> + .flags = UART_CAP_FIFO, >> + }, >> }; >> >> /* Uart divisor latch read */ >> diff --git a/include/uapi/linux/serial_core.h b/include/uapi/linux/serial_core.h >> index c4042dcfdc0c..cd11748833e6 100644 >> --- a/include/uapi/linux/serial_core.h >> +++ b/include/uapi/linux/serial_core.h >> @@ -274,4 +274,7 @@ >> /* Freescale LINFlexD UART */ >> #define PORT_LINFLEXUART 122 >> >> +/* ASPEED AST2x00 virtual UART */ >> +#define PORT_ASPEED_VUART 123 > >Why does this value have to be in a uapi header file? What userspace >tool is going to need this? > I only put it there because that was where all the other port type constants were defined, and wondered the same thing about the lot of them. Is there a userspace tool that makes use of any of these? Zev 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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 56214C433F5 for ; Thu, 10 Feb 2022 07:51:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=e78pXBdU6aneWmG88NzW34HN629MQdDMaza5z/ilHHA=; b=HDICqElnD5e/bSMmTBex3F12oN ifxe7sFdPf+zYD+1cuDQe3pf8YMXXzObYxZKGUIm/hxJYYclOUZ3LIxe4IWfkNHSwaKB6FtOxdm3D Mt1et3JcluoWumnVfjapQ+NEs7RY460lcrLbZ0v3K+mEBse71Mfsq9Hsb/yfsSzigoE9Sk5/o0XmS XomnikrQlUjjPDwu4rgg7SiAwoAsip7YH/JU8OntrVgCfra2HnzZLStqx5Z7hSYbtssqnF8ekXRkQ rq0uvj+H3fxS5V0wMO/LacTIuU4b0nz0seVb3Q17tiNyxxJZc7ozZMO2vw7Qaeneou9HXsna1Pewp fQi9Ay7g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nI4DL-002vjk-52; Thu, 10 Feb 2022 07:50:03 +0000 Received: from thorn.bewilderbeest.net ([2605:2700:0:5::4713:9cab]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nI4DH-002vip-G6 for linux-arm-kernel@lists.infradead.org; Thu, 10 Feb 2022 07:50:01 +0000 Received: from hatter.bewilderbeest.net (174-21-187-98.tukw.qwest.net [174.21.187.98]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: zev) by thorn.bewilderbeest.net (Postfix) with ESMTPSA id 933CBD7; Wed, 9 Feb 2022 23:49:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bewilderbeest.net; s=thorn; t=1644479397; bh=WDZKBxFLFY5R2xvQgKTR8shZQ5vRP9WinLJPjTOcMu8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=MXaZ9DfhNmPah+A2PCKy7N4cdGmqbX+ggNr4LG7BNA+M65b1Pc4UwdvrEsQnnObs6 HgL/sLbPOLmGM6Nw5GlqPyuY4RSOpcCQv3d6gq+MRSaLLlwlgH8cFvd4TZivY4qUCU cTswE3pW9lWkLMsAkIhxqYcvYjl/KVYGyU97O5Oo= Date: Wed, 9 Feb 2022 23:49:47 -0800 From: Zev Weiss To: Greg Kroah-Hartman Cc: Joel Stanley , Andrew Jeffery , Jiri Slaby , Andy Shevchenko , Konstantin Aladyshev , Oskar Senft , openbmc@lists.ozlabs.org, linux-serial@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] serial: 8250_aspeed_vuart: add PORT_ASPEED_VUART port type Message-ID: References: <20220209203414.23491-1-zev@bewilderbeest.net> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220209_234959_612300_E1B0BAF3 X-CRM114-Status: GOOD ( 26.71 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Wed, Feb 09, 2022 at 11:40:42PM PST, Greg Kroah-Hartman wrote: >On Wed, Feb 09, 2022 at 12:34:14PM -0800, Zev Weiss wrote: >> Commit 54da3e381c2b ("serial: 8250_aspeed_vuart: use UPF_IOREMAP to >> set up register mapping") fixed a bug that had, as a side-effect, >> prevented the 8250_aspeed_vuart driver from enabling the VUART's >> FIFOs. However, fixing that (and hence enabling the FIFOs) has in >> turn revealed what appears to be a hardware bug in the ASPEED VUART in >> which the host-side THRE bit doesn't get if the BMC-side receive FIFO >> trigger level is set to anything but one byte. This causes problems >> for polled-mode writes from the host -- for example, Linux kernel >> console writes proceed at a glacial pace (less than 100 bytes per >> second) because the write path waits for a 10ms timeout to expire >> after every character instead of being able to continue on to the next >> character upon seeing THRE asserted. (GRUB behaves similarly.) >> >> As a workaround, introduce a new port type for the ASPEED VUART that's >> identical to PORT_16550A as it had previously been using, but with >> UART_FCR_R_TRIG_00 instead to set the receive FIFO trigger level to >> one byte, which (experimentally) seems to avoid the problematic THRE >> behavior. >> >> Signed-off-by: Zev Weiss >> Tested-by: Konstantin Aladyshev > >Do we need a "Fixes:" tag here as well? I was wondering the same -- I left it out because it didn't seem like it was strictly a bug in the earlier commit that's really being fixed per se, but perhaps that's an overly pedantic distinction. I can certainly add it if you'd prefer. > >> --- >> drivers/tty/serial/8250/8250_aspeed_vuart.c | 2 +- >> drivers/tty/serial/8250/8250_port.c | 8 ++++++++ >> include/uapi/linux/serial_core.h | 3 +++ >> 3 files changed, 12 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/tty/serial/8250/8250_aspeed_vuart.c b/drivers/tty/serial/8250/8250_aspeed_vuart.c >> index 2350fb3bb5e4..c2cecc6f47db 100644 >> --- a/drivers/tty/serial/8250/8250_aspeed_vuart.c >> +++ b/drivers/tty/serial/8250/8250_aspeed_vuart.c >> @@ -487,7 +487,7 @@ static int aspeed_vuart_probe(struct platform_device *pdev) >> port.port.irq = irq_of_parse_and_map(np, 0); >> port.port.handle_irq = aspeed_vuart_handle_irq; >> port.port.iotype = UPIO_MEM; >> - port.port.type = PORT_16550A; >> + port.port.type = PORT_ASPEED_VUART; >> port.port.uartclk = clk; >> port.port.flags = UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF | UPF_IOREMAP >> | UPF_FIXED_PORT | UPF_FIXED_TYPE | UPF_NO_THRE_TEST; >> diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c >> index 3b12bfc1ed67..973870ebff69 100644 >> --- a/drivers/tty/serial/8250/8250_port.c >> +++ b/drivers/tty/serial/8250/8250_port.c >> @@ -307,6 +307,14 @@ static const struct serial8250_config uart_config[] = { >> .rxtrig_bytes = {1, 32, 64, 112}, >> .flags = UART_CAP_FIFO | UART_CAP_SLEEP, >> }, >> + [PORT_ASPEED_VUART] = { >> + .name = "ASPEED VUART", >> + .fifo_size = 16, >> + .tx_loadsz = 16, >> + .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_00, >> + .rxtrig_bytes = {1, 4, 8, 14}, >> + .flags = UART_CAP_FIFO, >> + }, >> }; >> >> /* Uart divisor latch read */ >> diff --git a/include/uapi/linux/serial_core.h b/include/uapi/linux/serial_core.h >> index c4042dcfdc0c..cd11748833e6 100644 >> --- a/include/uapi/linux/serial_core.h >> +++ b/include/uapi/linux/serial_core.h >> @@ -274,4 +274,7 @@ >> /* Freescale LINFlexD UART */ >> #define PORT_LINFLEXUART 122 >> >> +/* ASPEED AST2x00 virtual UART */ >> +#define PORT_ASPEED_VUART 123 > >Why does this value have to be in a uapi header file? What userspace >tool is going to need this? > I only put it there because that was where all the other port type constants were defined, and wondered the same thing about the lot of them. Is there a userspace tool that makes use of any of these? Zev _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel