From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756477AbbCSPBO (ORCPT ); Thu, 19 Mar 2015 11:01:14 -0400 Received: from mail-qc0-f175.google.com ([209.85.216.175]:34862 "EHLO mail-qc0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755900AbbCSO6m (ORCPT ); Thu, 19 Mar 2015 10:58:42 -0400 Message-ID: <550AE41C.8070803@hurleysoftware.com> Date: Thu, 19 Mar 2015 10:58:36 -0400 From: Peter Hurley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: Maxime Coquelin , Andy Shevchenko CC: =?UTF-8?B?VXdlIEtsZWluZS1Lw7ZuaWc=?= , =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= , Geert Uytterhoeven , Rob Herring , Philipp Zabel , Linus Walleij , Arnd Bergmann , Stefan Agner , Peter Meerwald , Paul Bolle , Jonathan Corbet , Pawel Moll , Mark Rutland , Ian Campbell , Kumar Gala , Russell King , Daniel Lezcano , Thomas Gleixner , Greg Kroah-Hartman , Jiri Slaby , Andrew Morton , "David S. Miller" , Mauro Carvalho Chehab , Joe Perches , Antti Palosaari , Tejun Heo , Will Deacon , Nikolay Borisov , Rusty Russell , Kees Cook , Michal Marek , Linux Documentation List , linux-arm Mailing List , "linux-kernel@vger.kernel.org" , devicetree , "linux-gpio@vger.kernel.org" , "linux-serial@vger.kernel.org" , Linux-Arch , "linux-api@vger.kernel.org" Subject: Re: [PATCH v3 10/15] serial: stm32-usart: Add STM32 USART Driver References: <1426197361-19290-1-git-send-email-maxime.coquelin@st.com> <1426197361-19290-11-git-send-email-maxime.coquelin@st.com> In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 03/19/2015 09:55 AM, Maxime Coquelin wrote: >>>>> +static void stm32_set_termios(struct uart_port *port, struct ktermios *termios, >>>>> + struct ktermios *old) [...] >>>>> + usardiv = (port->uartclk * 25) / (baud * 4); >>>>> + mantissa = (usardiv / 100) << USART_BRR_DIV_M_SHIFT; >>>>> + fraction = DIV_ROUND_CLOSEST((usardiv % 100) * 16, 100); >>>>> + if (fraction & ~USART_BRR_DIV_F_MASK) { >>>>> + fraction = 0; >>>>> + mantissa += (1 << USART_BRR_DIV_M_SHIFT); >>>>> + } [...] > Really, I would prefer keeping this fractional divider as it is > implemented today. You have to admit that's basically an unintelligible mess; how would anyone ever be able to refactor and replace that with a common divider implementation? At the very least, please comment on the formula and format. Regards, Peter Hurley