Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp174999iob; Mon, 2 May 2022 16:18:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyiVR0S+wRCYJmhNHQiu0S2v/7q31ul+v8rVWm8yDl9c1f7J3pu73HyX3RCtKcWb5rg+AJm X-Received: by 2002:a17:903:110c:b0:153:1293:5624 with SMTP id n12-20020a170903110c00b0015312935624mr14141457plh.149.1651533504437; Mon, 02 May 2022 16:18:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651533504; cv=none; d=google.com; s=arc-20160816; b=bpXLL6XVkwJ3momm2zZexXW5PtP9GIC5ehgScu8RUjP1s7DN3KtAWl3yqspLXp9jmy gbgIaw9JGdLo9QgkmyszuVX+K6oxELo+ifj2g9x3UeK/dDIvmerrHVjIhmufLmdcE1qE sjBVejgNgKxHzUIJIXEEYaIHaKZExf2mbK9WpSxESiYD1qhNkZq76iHnU8IPKcmR9XIR 5Xmw4aamMspE/hBbSkzAjUlXqix4PQ78LZImFhmVJoKejglu6AAuyyGOZwCqWmWnTcJa NxKzBKWhHf6GflhTk8c7DU+gBblEEX75QBuDSxSxwCMW9W3GAqkrHvZ9RA0tt5fKSUca e/Mg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:user-agent:references:message-id :in-reply-to:subject:cc:to:from:date; bh=qJhG4aychFcDf+JZzBZ9KjyYqfJjhroi3TEA7JeqHS8=; b=vR4rDo3pZLhMAm8LkefOg0raziTy/46GjPiGjCuHpH4uvZu0ZL3FviNg7uvl0jfkxV qRUHl3mZdLlEffT87dFmUTrWbmk0RRzkUQ9ziTk+bhJ1o5rN6deNRSZ5eMIATxWgAjr3 eJ+q9F/DIsRx3LU9gLa197j9FjEE8cmx/tpWY4QQBWFf5pd1aPg3Vq0fksbnazAcYetm 0d+qt+niFEQEjJdM5K+eiy8TBQxqYZNTwriMohZNrTm9S5dpWPeNu18OMZ7l/bn499LC jdDsSnCMqy+MoQqBNri/GJjeQnZoky8EOVsBW71ce9gXwpo6TgR6aY5MUv/aYIDvHyDA XPBw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id n13-20020a65488d000000b003ab491307f4si15223785pgs.384.2022.05.02.16.18.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 May 2022 16:18:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id A6F1B30F6E; Mon, 2 May 2022 16:18:00 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1380961AbiD2Unu (ORCPT + 99 others); Fri, 29 Apr 2022 16:43:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34302 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1359728AbiD2Uni (ORCPT ); Fri, 29 Apr 2022 16:43:38 -0400 Received: from angie.orcam.me.uk (angie.orcam.me.uk [IPv6:2001:4190:8020::34]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 5C0B315719; Fri, 29 Apr 2022 13:40:19 -0700 (PDT) Received: by angie.orcam.me.uk (Postfix, from userid 500) id A56B192009D; Fri, 29 Apr 2022 22:40:18 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by angie.orcam.me.uk (Postfix) with ESMTP id 9F1A892009B; Fri, 29 Apr 2022 21:40:18 +0100 (BST) Date: Fri, 29 Apr 2022 21:40:18 +0100 (BST) From: "Maciej W. Rozycki" To: Greg Kroah-Hartman , Jiri Slaby , Palmer Dabbelt , Paul Walmsley cc: Damien Le Moal , linux-serial@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/2] serial: sifive: Report actual baud base rather than fixed 115200 In-Reply-To: Message-ID: References: User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The base baud value reported is supposed to be the highest baud rate that can be set for a serial port. The SiFive FU740-C000 SOC's on-chip UART supports baud rates of up to 1/16 of the input clock rate, which is the bus clock `tlclk'[1], often at 130MHz in the case of the HiFive Unmatched board. However the sifive UART driver reports a fixed value of 115200 instead: 10010000.serial: ttySIF0 at MMIO 0x10010000 (irq = 1, base_baud = 115200) is a SiFive UART v0 10011000.serial: ttySIF1 at MMIO 0x10011000 (irq = 2, base_baud = 115200) is a SiFive UART v0 even though we already support setting higher baud rates, e.g.: $ tty /dev/ttySIF1 $ stty speed 230400 The baud base value is computed by the serial core by dividing the UART clock recorded in `struct uart_port' by 16, which is also the minimum value of the clock divider supported, so correct the baud base value reported by setting the UART clock recorded to the input clock rate rather than 115200: 10010000.serial: ttySIF0 at MMIO 0x10010000 (irq = 1, base_baud = 8125000) is a SiFive UART v0 10011000.serial: ttySIF1 at MMIO 0x10011000 (irq = 2, base_baud = 8125000) is a SiFive UART v0 References: [1] "SiFive FU740-C000 Manual", v1p3, SiFive, Inc., August 13, 2021, Section 16.9 "Baud Rate Divisor Register (div)", pp.143-144 Signed-off-by: Maciej W. Rozycki Fixes: 1f1496a923b6 ("riscv: Fix sifive serial driver") --- drivers/tty/serial/sifive.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) linux-serial-sifive-base-baud.diff Index: linux-macro/drivers/tty/serial/sifive.c =================================================================== --- linux-macro.orig/drivers/tty/serial/sifive.c +++ linux-macro/drivers/tty/serial/sifive.c @@ -998,7 +998,7 @@ static int sifive_serial_probe(struct pl /* Set up clock divider */ ssp->clkin_rate = clk_get_rate(ssp->clk); ssp->baud_rate = SIFIVE_DEFAULT_BAUD_RATE; - ssp->port.uartclk = ssp->baud_rate * 16; + ssp->port.uartclk = ssp->clkin_rate; __ssp_update_div(ssp); platform_set_drvdata(pdev, ssp);