Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753140AbcC0Xsb (ORCPT ); Sun, 27 Mar 2016 19:48:31 -0400 Received: from mailout4.samsung.com ([203.254.224.34]:40985 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752245AbcC0Xs2 (ORCPT ); Sun, 27 Mar 2016 19:48:28 -0400 X-AuditID: cbfee68f-f79c86d0000012ad-63-56f8714914f5 From: Chanwoo Choi To: gregkh@linuxfoundation.org, jslaby@suse.com Cc: k.kozlowski@samsung.com, kgene@kernel.org, m.szyprowski@samsung.com, cw00.choi@samsung.com, linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org Subject: [PATCH v2] serial: samsung: Reorder the sequence of clock control when call s3c24xx_serial_set_termios() Date: Mon, 28 Mar 2016 08:48:23 +0900 Message-id: <1459122503-5202-1-git-send-email-cw00.choi@samsung.com> X-Mailer: git-send-email 1.8.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrHLMWRmVeSWpSXmKPExsWyRsSkRNer8EeYwYdWRovrX56zWjQvXs9m MWXDByaL1y8MLfofv2a2uLxrDpvFjPP7mCzOLO5lt1h75C67A6fHplWdbB77565h9+jbsorR Y/2WqywenzfJBbBGcdmkpOZklqUW6dslcGW8uLCWpWAKV8XUeRMZGxg3cHQxcnJICJhIzLm8 hgnCFpO4cG89WxcjF4eQwApGiQcdR5hhirp/tTNBJJYySmxb9RGq6gujxJOJZ1hAqtgEtCT2 v7jBBmKLCOhLrGu8xwJSxCxwkFHi87FDYEXCAsUS6+6vYAWxWQRUJfqePgKzeQVcJBYd/MsI sU5O4sOeR+wgzRIC/ewSR19sZ4NoEJD4NhlkEAdQQlZi0wGo8yQlDq64wTKBUXABI8MqRtHU guSC4qT0ImO94sTc4tK8dL3k/NxNjMBgPv3vWf8OxrsHrA8xCnAwKvHwZlj+CBNiTSwrrsw9 xGgKtGEis5Rocj4wZvJK4g2NzYwsTE1MjY3MLc2UxHkXSv0MFhJITyxJzU5NLUgtii8qzUkt PsTIxMEp1cCorvGOm6+mRMXqsom55KXHM1xO1fL/Zt9+qnBC4ddbyg2a+9aEMptWHbyiUTbl rXjyZONbUdldcTtiYnVEXxSdFlX//zmm6hrzL57gO5yblKxrGYP3L89uXyXzPlhkkfgCS5f7 C5eKnv0/rSafccUF/RX63wOUj9edXyjE6dBXmpOsVxIr+FCJpTgj0VCLuag4EQAv4NCfYQIA AA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprNIsWRmVeSWpSXmKPExsVy+t9jAV3Pwh9hBk3zLSyuf3nOatG8eD2b xZQNH5gsXr8wtOh//JrZ4vKuOWwWM87vY7I4s7iX3WLtkbvsDpwem1Z1snnsn7uG3aNvyypG j/VbrrJ4fN4kF8Aa1cBok5GamJJapJCal5yfkpmXbqvkHRzvHG9qZmCoa2hpYa6kkJeYm2qr 5OIToOuWmQN0kJJCWWJOKVAoILG4WEnfDtOE0BA3XQuYxghd35AguB4jAzSQsIYx48WFtSwF U7gqps6byNjAuIGji5GTQ0LARKL7VzsThC0mceHeerYuRi4OIYGljBLbVn2Ecr4wSjyZeIYF pIpNQEti/4sbbCC2iIC+xLrGeywgRcwCBxklPh87BFYkLFAsse7+ClYQm0VAVaLv6SMwm1fA RWLRwb+MEOvkJD7secQ+gZF7ASPDKkaJ1ILkguKk9FzDvNRyveLE3OLSvHS95PzcTYzgiHkm tYPx4C73Q4wCHIxKPLwZlj/ChFgTy4orcw8xSnAwK4nwVqUBhXhTEiurUovy44tKc1KLDzGa Ah0wkVlKNDkfGM15JfGGxiZmRpZG5oYWRsbmSuK8j/+vCxMSSE8sSc1OTS1ILYLpY+LglGpg tDR1lvC4Em1tYPZ3J4vzL40b3ArSx565fLn17etd+UtOyREW67/FHee5cObx0mXGU6yZ+b/O UzyWX7n7ft/9UzWpTm3Nh3gYl+rN13r7w3Pz8YttwRGzf/IySmxQ+ZAdPkt059u5/M/N+fT3 Rgd7L83sP7I9ROSrT5uxS73Peh6u9WHLfTK0lViKMxINtZiLihMB8xqxya4CAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1260 Lines: 38 This patch fixes the broken serial log when changing the clock source of uart device. Before disabling the original clock source, this patch enables the new clock source to protect the clock off state for a split second. Signed-off-by: Chanwoo Choi --- Changes from v1: (https://lkml.org/lkml/2016/3/13/183) - Enable the clock before changing the source by s3c24xx_serial_setsource() - Rebase it on Linux v4.6-rc1 drivers/tty/serial/samsung.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c index ac7f8df54406..99bb23161dd6 100644 --- a/drivers/tty/serial/samsung.c +++ b/drivers/tty/serial/samsung.c @@ -1271,6 +1271,8 @@ static void s3c24xx_serial_set_termios(struct uart_port *port, /* check to see if we need to change clock source */ if (ourport->baudclk != clk) { + clk_prepare_enable(clk); + s3c24xx_serial_setsource(port, clk_sel); if (!IS_ERR(ourport->baudclk)) { @@ -1278,8 +1280,6 @@ static void s3c24xx_serial_set_termios(struct uart_port *port, ourport->baudclk = ERR_PTR(-EINVAL); } - clk_prepare_enable(clk); - ourport->baudclk = clk; ourport->baudclk_rate = clk ? clk_get_rate(clk) : 0; } -- 1.9.1