Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp1581073ybe; Tue, 3 Sep 2019 00:04:29 -0700 (PDT) X-Google-Smtp-Source: APXvYqyA6CYAIda/5QCGRbSUtgdkOv8oo5NAw2LBmZ5u3aZlbXmqrC2LE+kAXjFiFJIZ5D6TxcbU X-Received: by 2002:a63:1f03:: with SMTP id f3mr28401823pgf.249.1567494268909; Tue, 03 Sep 2019 00:04:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567494268; cv=none; d=google.com; s=arc-20160816; b=ew1cCWPxmasQ2vhzn2+ns1iQX0oFLcd9QK7IKGnoOcEag5dI+G0hM2FdBojSq6j/ae JfgHv1dYvcuECMv8A9vcv7Wm9s7dAM4Hhf3aEPs8ao0e0CFL0RJRlZTTE10y5lrx3Mk8 is3tudIYqOnVu9+k3EI0h6P4K3fv0+8TSPjYjc+xFSvG1o8eKPKUXz5Wc3beDtqI4wmO 1OqvzxRF4QJAfjPED7sK+473baSiDfwO8k3FR3M3zgZIMH8JgCgNwaUGA08J42xTRqzi el863ItjYB1G9KP/4OqgG7Q1541V/WphR0RGrVE2EgV0szEMzjpD+DXM6PX7JXy2nKGn bonw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=ATcsitRpTyb5wI6PMkB6H6IJliZcFvf7R0g9NfFMg9A=; b=JiXpxKmH2m93VjQ1aCpYI9ATzYJ6Gaw6KO24/5IXI2/GwsgKaDJLCfyueW2Gjenmz5 YQT9URCIKj46UvQdbRhARi4N6YPc8h2xsb4rbD8+GCaVp55FLGcP5ecnduz27/G0Z3G6 F0Iy4EhroH+txUSb0RgcOaAW8bhkB4iuz2gF9WiDlurwDtyFj/bYSJ1F3R5TmRbDEQJf jRVppX/B3fdRoJ+ggWZNzWvvpePCPPJKHIiPdR2jMWx60UpunFGQwCoM9ExoZY0eXS71 OMBWo/hxq9fzUXwxbQMuW1RzQo7EeZfrk0Dhv8bi8KL4CSaKFig3LPnQUbsVumDQT7bN mKJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=EHgBr9Kf; 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=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l186si13542114pge.215.2019.09.03.00.04.11; Tue, 03 Sep 2019 00:04:28 -0700 (PDT) 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=@linaro.org header.s=google header.b=EHgBr9Kf; 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=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727497AbfICHBz (ORCPT + 99 others); Tue, 3 Sep 2019 03:01:55 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:41108 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726980AbfICHBz (ORCPT ); Tue, 3 Sep 2019 03:01:55 -0400 Received: by mail-pg1-f195.google.com with SMTP id x15so8587944pgg.8 for ; Tue, 03 Sep 2019 00:01:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ATcsitRpTyb5wI6PMkB6H6IJliZcFvf7R0g9NfFMg9A=; b=EHgBr9KfYik5R6FusPDhu53l+J3bX9l8zy+rd7KHjP5eJpWMJBDrvwknS9Pt9RsCsr 1AhNQzcmCHH9hqmZxFEi9bKhZfz9UiEgVdHOCOBb26fxtUWMRm90Wpehtn/bqoHFE7bB goOWVwvsODaia2BAUb32k0QYR4cWSFXHHeaHp4RuK6nDFMiUZQTYFCPSUBW3MDWQApv+ Y9SP5AXKkI1/kJsVfCFyEsbDGeymtrlHCMxAg8nB/8sVoLY/KFIw1Gm2GH7Q42O2mWqv I0cFnHbxAmjHo51uvaqpSr6CFedJhzS1ZJp8PYutClpWHQYPWbz8ASS6WgRUtQJyZchn SUEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ATcsitRpTyb5wI6PMkB6H6IJliZcFvf7R0g9NfFMg9A=; b=H1eR4k3RuOD6+njHnSx7/tZTdiEmPyAyVRKMXcp6kBAShPSR39YTBA+T3ct12cG94c KbmP5l9bEY6R+O0CH4xTtg0A2TJNVf6NNDHFbYej3NdR52HNwga/Pt3g0auMSNL7bsck G+jiWSdsgiCZlnte2ldM5kPMbAruFRoAn40hSoR/5gyufBBVExIr7QEGqcYKAVDDDC5N EftT6bGnHALieC4ZOPnsFArk2Nmijnp3mk+pfKgbGDzeqhuMTZ4F+sKssr2kLkZ25PkY pvb7LAh5BrKaXRwBVcXdfFezXLjtXSQr4VjEKlg0RXn/MToLbF81df5OsYjOfeCZkz1x p7eg== X-Gm-Message-State: APjAAAWyJFVdBW2w4pu7tK+qN0+2aDBJiRg+YXJ0PJvd7PeJQlSgYwWW yzkaBCHwfoIlXV8KnYNZaoCqFg== X-Received: by 2002:a65:690f:: with SMTP id s15mr27939370pgq.432.1567494114841; Tue, 03 Sep 2019 00:01:54 -0700 (PDT) Received: from baolinwangubtpc.spreadtrum.com ([117.18.48.82]) by smtp.gmail.com with ESMTPSA id 19sm16471892pjc.25.2019.09.03.00.01.50 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 03 Sep 2019 00:01:54 -0700 (PDT) From: Baolin Wang To: stable@vger.kernel.org, gregkh@linuxfoundation.org Cc: lanqing.liu@unisoc.com, linux-serial@vger.kernel.org, arnd@arndb.de, baolin.wang@linaro.org, orsonzhai@gmail.com, vincent.guittot@linaro.org, linux-kernel@vger.kernel.org Subject: [BACKPORT 4.14.y 8/8] serial: sprd: Modify the baud rate calculation formula Date: Tue, 3 Sep 2019 15:01:25 +0800 Message-Id: X-Mailer: git-send-email 1.7.9.5 In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Lanqing Liu When the source clock is not divisible by the expected baud rate and the remainder is not less than half of the expected baud rate, the old formular will round up the frequency division coefficient. This will make the actual baud rate less than the expected value and can not meet the external transmission requirements. Thus this patch modifies the baud rate calculation formula to support the serial controller output the maximum baud rate. Signed-off-by: Lanqing Liu Signed-off-by: Baolin Wang Signed-off-by: Greg Kroah-Hartman Signed-off-by: Baolin Wang --- drivers/tty/serial/sprd_serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/tty/serial/sprd_serial.c b/drivers/tty/serial/sprd_serial.c index e902494..72e96ab8 100644 --- a/drivers/tty/serial/sprd_serial.c +++ b/drivers/tty/serial/sprd_serial.c @@ -380,7 +380,7 @@ static void sprd_set_termios(struct uart_port *port, /* ask the core to calculate the divisor for us */ baud = uart_get_baud_rate(port, termios, old, 0, SPRD_BAUD_IO_LIMIT); - quot = (unsigned int)((port->uartclk + baud / 2) / baud); + quot = port->uartclk / baud; /* set data length */ switch (termios->c_cflag & CSIZE) { -- 1.7.9.5