Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933155AbcCNAlU (ORCPT ); Sun, 13 Mar 2016 20:41:20 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:57791 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933071AbcCNAlK (ORCPT ); Sun, 13 Mar 2016 20:41:10 -0400 X-AuditID: cbfee68e-f793c6d00000136c-39-56e608a3da57 From: Chanwoo Choi To: gregkh@linuxfoundation.org, jslaby@suse.com Cc: k.kozlowski@samsung.com, kgene@kernel.org, linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Chanwoo Choi Subject: [PATCH] serial: samsung: Reorder the sequence of clock control when call s3c24xx_serial_set_termios() Date: Mon, 14 Mar 2016 09:41:05 +0900 Message-id: <1457916065-27418-1-git-send-email-cw00.choi@samsung.com> X-Mailer: git-send-email 1.8.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrGLMWRmVeSWpSXmKPExsWyRsSkQHcxx7Mwg9eLRS2uf3nOatG8eD2b xZQNH5gsXr8wtOh//JrZ4vKuOWwWM87vY7I4s7iX3YHDY9OqTjaP/XPXsHv0bVnF6LF+y1UW j8+b5AJYo7hsUlJzMstSi/TtErgyNr+pKujmqPi9fi1LA+MNti5GTg4JAROJIx82QtliEhfu rQeyuTiEBFYwSixvWsgIU/TyzX9WiMQsRokVRzqZIZwvjBJ7919mBqliE9CS2P8CYqyIgL7E usZ7LCBFzALbGCU+rd8ElODgEBYokLizvQikhkVAVWLt9PvsIGFeAVeJG4eFIZbJSXzY84gd pFVCoJ1d4uHMZWwQ9QIS3yYfYgGplxCQldh0gBmiXlLi4IobLBMYBRcwMqxiFE0tSC4oTkov MtIrTswtLs1L10vOz93ECAze0/+e9e1gvHnA+hCjAAejEg/vjzVPw4RYE8uKK3MPMZoCbZjI LCWanA+MkbySeENjMyMLUxNTYyNzSzMlcd4EqZ/BQgLpiSWp2ampBalF8UWlOanFhxiZODil Ghi7mdO/XtLTbfr+IPHojZ9vdl3TnfDky95wL7U/S9fVLrXS4fnzdm4ur+gOVt71mm4HPFqn PpWYcLlDpT7mC/P1H7bzRIULTM7UyT7etS7Q89qTJJH7f/P53v64+Go9b8GjWyFRr2c0upTU z35v6BVqabf+5X7jfe8sb69mn1a39EySSD47a0ytEktxRqKhFnNRcSIAVTeFw1kCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprMIsWRmVeSWpSXmKPExsVy+t9jQd3FHM/CDE7u5re4/uU5q0Xz4vVs FlM2fGCyeP3C0KL/8Wtmi8u75rBZzDi/j8nizOJedgcOj02rOtk89s9dw+7Rt2UVo8f6LVdZ PD5vkgtgjWpgtMlITUxJLVJIzUvOT8nMS7dV8g6Od443NTMw1DW0tDBXUshLzE21VXLxCdB1 y8wBukVJoSwxpxQoFJBYXKykb4dpQmiIm64FTGOErm9IEFyPkQEaSFjDmLH5TVVBN0fF7/Vr WRoYb7B1MXJySAiYSLx8858VwhaTuHBvPVCci0NIYBajxIojncwQzhdGib37LzODVLEJaEns fwHRLSKgL7Gu8R4LSBGzwDZGiU/rNwElODiEBQok7mwvAqlhEVCVWDv9PjtImFfAVeLGYWGI ZXISH/Y8Yp/AyL2AkWEVo0RqQXJBcVJ6rlFearlecWJucWleul5yfu4mRnCEPJPewXh4l/sh RgEORiUe3h9rnoYJsSaWFVfmHmKU4GBWEuHdw/osTIg3JbGyKrUoP76oNCe1+BCjKdD+icxS osn5wOjNK4k3NDYxM7I0Mje0MDI2VxLnffx/XZiQQHpiSWp2ampBahFMHxMHp1QD4/7W0AZV 7oyIozFVKr5Cu9z3b5x32LQ58Xz1pa1BFjf26PaEWqj8rjgnnrFzW9HNec9vn7N6Kji9d/5v tkIGr8kZNz9xurw9liz7XPjshK57R1+XM4hW2mnwyT3o5hTImM6WOJ2j4XRl34uFRRy23pMS rmp94f8499RDlcKE8A3H0s43/rUXUmIpzkg01GIuKk4EAFqoD2mmAgAA 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: 1002 Lines: 31 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 --- 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 d72cd736bdc6..80d59dbfebba 100644 --- a/drivers/tty/serial/samsung.c +++ b/drivers/tty/serial/samsung.c @@ -1265,13 +1265,13 @@ static void s3c24xx_serial_set_termios(struct uart_port *port, if (ourport->baudclk != clk) { s3c24xx_serial_setsource(port, clk_sel); + clk_prepare_enable(clk); + if (!IS_ERR(ourport->baudclk)) { clk_disable_unprepare(ourport->baudclk); ourport->baudclk = ERR_PTR(-EINVAL); } - clk_prepare_enable(clk); - ourport->baudclk = clk; ourport->baudclk_rate = clk ? clk_get_rate(clk) : 0; } -- 1.9.1