Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751416AbcCYAKZ (ORCPT ); Thu, 24 Mar 2016 20:10:25 -0400 Received: from mailout2.samsung.com ([203.254.224.25]:34608 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750797AbcCYAKV (ORCPT ); Thu, 24 Mar 2016 20:10:21 -0400 MIME-version: 1.0 Content-type: text/plain; charset=UTF-8 X-AuditID: cbfee68d-f79646d000001355-83-56f481e910aa Content-transfer-encoding: 8BIT Message-id: <56F481E8.1000602@samsung.com> Date: Fri, 25 Mar 2016 09:10:16 +0900 From: Chanwoo Choi User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 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, "Robert Baldyga (SRPOL)" Subject: Re: [PATCH] serial: samsung: Reorder the sequence of clock control when call s3c24xx_serial_set_termios() References: <1457916065-27418-1-git-send-email-cw00.choi@samsung.com> In-reply-to: <1457916065-27418-1-git-send-email-cw00.choi@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrKIsWRmVeSWpSXmKPExsWyRsSkSPdl45cwg/+LeS2aF69ns5iy4QOT xesXhhb9j18zW1zeNYfNYsb5fUwWZxb3sls8OLyT3YHDY9OqTjaP/XPXsHv0bVnF6LF+y1UW j8+b5AJYo7hsUlJzMstSi/TtErgyJv3cwFqwh6ti6fJH7A2MWzm6GDk5JARMJN5eXMgIYYtJ XLi3nq2LkYtDSGAFo8S/FbdZYYoe7NvHBJFYyiix4OkkFpAEr4CgxI/J94BsDg5mAXmJI5ey QcLMAuoSk+YtYoaof8AocXbvKjaIei2Jtr/v2UHqWQRUJV4vNQEJswGF97+4wQYSFhWIkOg+ UQkSFhHQl1jXCDKdC2jkIUaJxfsfg40RFiiR+Pz/NDuILSTgKnG9oQ3M5hRwk1i65Q7YXgmB W+wSBx/9BGtgERCQ+Db5ENidEgKyEpsOMEP8JSlxcMUNlgmMYrOQfDML4ZtZSL5ZwMi8ilE0 tSC5oDgpvchQrzgxt7g0L10vOT93EyMw9k7/e9a7g/H2AetDjAIcjEo8vA7uX8KEWBPLiitz DzGaAh0xkVlKNDkfGOF5JfGGxmZGFqYmpsZG5pZmSuK8ilI/g4UE0hNLUrNTUwtSi+KLSnNS iw8xMnFwSjUwTu5IEeFYI8yom+swQ2DPyY1yZk/f3/huxDlB4MxF6Y1xOrYuDT/5imL9j+ye 4KTFfee43L0lB9JFpj+dldDSdHpC5ZzDoc6Wk6SmFpTGnOaxW/JN3/z7xKv+sixbjtVxVtzp n7lAxPDapDXu4mmbm9OXP81Ni2nR1/z31ri6P1DufFvtbK8DSizFGYmGWsxFxYkAECbezrgC AAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrEIsWRmVeSWpSXmKPExsVy+t9jAd2XjV/CDG6/ZbdoXryezWLKhg9M Fq9fGFr0P37NbHF51xw2ixnn9zFZnFncy27x4PBOdgcOj02rOtk89s9dw+7Rt2UVo8f6LVdZ PD5vkgtgjWpgtMlITUxJLVJIzUvOT8nMS7dV8g6Od443NTMw1DW0tDBXUshLzE21VXLxCdB1 y8wBukVJoSwxpxQoFJBYXKykb4dpQmiIm64FTGOErm9IEFyPkQEaSFjDmDHp5wbWgj1cFUuX P2JvYNzK0cXIySEhYCLxYN8+JghbTOLCvfVsXYxcHEICSxklFjydxAKS4BUQlPgx+R6QzcHB LCAvceRSNkiYWUBdYtK8RcwQ9Q8YJc7uXcUGUa8l0fb3PTtIPYuAqsTrpSYgYTag8P4XN9hA wqICERLdJypBwiIC+hLrGkGmcwGNPMQosXj/Y7AxwgIlEp//n2YHsYUEXCWuN7SB2ZwCbhJL t9xhnsAoMAvJdbMQrpuF5LoFjMyrGCVSC5ILipPScw3zUsv1ihNzi0vz0vWS83M3MYLj+5nU DsaDu9wPMQpwMCrx8Dq4fwkTYk0sK67MBbqHg1lJhFcrGijEm5JYWZValB9fVJqTWnyI0RTo vYnMUqLJ+cDUk1cSb2hsYmZkaWRuaGFkbK4kzvv4/7owIYH0xJLU7NTUgtQimD4mDk6pBsb9 v/9OO/dhy9R/Qf5lN75tczF94R/P67lH2Yv/+fzifdd4DbySY75/NN7On6ogrrnt8axH99Uv bPF8Z9dgnbKpxiwy17xw1TrzySzvb5onawdn+T/bv+Gl6dYfzoKPevMeak/9suq/wvXQ3i7D S9x3tl2/Mp/lgcUd7ml8hR6xazc9vZT9bBKPEktxRqKhFnNRcSIAf9RpYwUDAAA= 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: 1298 Lines: 40 Hi Robert, I send following patch to fix the broken serial log of Exynos SoC. As I knew, you also knew this issue. If possible, could you review or test this patch? Best Regards, Chanwoo Choi On 2016년 03월 14일 09:41, Chanwoo Choi wrote: > 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; > } >