Received: by 2002:a25:5b86:0:0:0:0:0 with SMTP id p128csp1598058ybb; Fri, 29 Mar 2019 07:37:40 -0700 (PDT) X-Google-Smtp-Source: APXvYqzo2q7biFsV3o6qo2CfHGOgxO9dCI4UHzWaGOlNfweNmkp4HHP3THlB9iiQMCemrPIzWlf0 X-Received: by 2002:aa7:9211:: with SMTP id 17mr47229655pfo.220.1553870260839; Fri, 29 Mar 2019 07:37:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553870260; cv=none; d=google.com; s=arc-20160816; b=nJVjj0ZFkVSkUrIiyEVki9+4R+WpqpxAcXYLwvroxGCe/TlMcq5QxTUwvoqwpWFM68 21wXi3i4agWzOEP69j4OkJNiYZjL6qgJhsLXzQQQemHP02udtYxlUDFWOvWw30Ng4oys qXV7wra3D5HKBDGK7yUzd59n/Rgh2fyVuLwtofPhXCCswEBxrtPc+GauRJNgfi3PyE8+ n1cfu1QMDrbbyPHp5XxeMJ3ycZz73HHJbbJPkAbATp9BJybonm6/3Y4oiE3L5tIR3Dot HLgJ7uN+rIWuvKfLvJyVm9NiPIV4WkWWf7do7KMtUVbLPFagNIqzkQsMRzdwgr6SF75z edfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=NquDM0QYW6oUs8XWq9BXGLray/pAHUpcfDqlHGzLYGM=; b=vIwS53kBLycbz42AVkte4M3+WajebLzWOWwSO2wd7UErzqf8t9jEHKX3dYzaRkTyJ9 vi/aFqODgOsst7ybLjTECHonQjc8tuBt8TFn2RCZvJQoe4PBAsnZX2wpu+1lIwJzBwCT ozyEmjFnNuIa6iFgv4cxneMKXClOQvjby65NUbzB6oLjxu/Jq2Um8BfiGXv1YQOZoE5t u1i05H6ihngTy4i/9HDY/pzNPOuI9tUGuZ4tFmO4FvPSCPm45jMmBPKmpNE2hoQ/j/nm tgssPMrriSaR4cprz3dFJVHFJUkw4QgK8grg5w++Gds01hOT5UCZfEb0wpXP+yw8krmm eJyg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id bd9si1989662plb.208.2019.03.29.07.37.21; Fri, 29 Mar 2019 07:37:40 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729021AbfC2Ogl (ORCPT + 99 others); Fri, 29 Mar 2019 10:36:41 -0400 Received: from metis.ext.pengutronix.de ([85.220.165.71]:39781 "EHLO metis.ext.pengutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728717AbfC2Ogk (ORCPT ); Fri, 29 Mar 2019 10:36:40 -0400 Received: from gallifrey.ext.pengutronix.de ([2001:67c:670:201:5054:ff:fe8d:eefb] helo=a3f-osx.local) by metis.ext.pengutronix.de with esmtp (Exim 4.89) (envelope-from ) id 1h9scY-0001B5-FQ; Fri, 29 Mar 2019 15:36:38 +0100 Subject: Re: [PATCH v2 4/9] serial: 8250: add support for rs485 RTS delays in microseconds To: Martin Kepplinger , gregkh@linuxfoundation.org, robh+dt@kernel.org, mark.rutland@arm.com, jslaby@suse.com, corbet@lwn.net, richard.genoud@gmail.com, nicolas.ferre@microchip.com, alexandre.belloni@bootlin.com, ludovic.desroches@microchip.com, mcoquelin.stm32@gmail.com, alexandre.torgue@st.com, linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com Cc: linux-kernel@vger.kernel.org, kernel@pengutronix.de References: <20190221171758.10322-1-martin.kepplinger@ginzinger.com> <20190221171758.10322-4-martin.kepplinger@ginzinger.com> From: Ahmad Fatoum Message-ID: Date: Fri, 29 Mar 2019 15:36:33 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.6.0 MIME-Version: 1.0 In-Reply-To: <20190221171758.10322-4-martin.kepplinger@ginzinger.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-SA-Exim-Connect-IP: 2001:67c:670:201:5054:ff:fe8d:eefb X-SA-Exim-Mail-From: a.fatoum@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 21/2/19 18:17, Martin Kepplinger wrote: > Read struct serial_rs485's flag SER_RS485_DELAY_IN_USEC and apply the delay > accordingly. > > Signed-off-by: Martin Kepplinger > --- > drivers/tty/serial/8250/8250_omap.c | 13 +++++++++++-- > drivers/tty/serial/8250/8250_port.c | 25 +++++++++++++++++++++---- > 2 files changed, 32 insertions(+), 6 deletions(-) > > diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c > index 0a8316632d75..cbce43ac60b1 100644 > --- a/drivers/tty/serial/8250/8250_omap.c > +++ b/drivers/tty/serial/8250/8250_omap.c > @@ -720,8 +720,17 @@ static int omap_8250_rs485_config(struct uart_port *port, > struct uart_8250_port *up = up_to_u8250p(port); > > /* Clamp the delays to [0, 100ms] */ > - rs485->delay_rts_before_send = min(rs485->delay_rts_before_send, 100U); > - rs485->delay_rts_after_send = min(rs485->delay_rts_after_send, 100U); > + if (rs485->flags & SER_RS485_DELAY_IN_USEC) { > + rs485->delay_rts_before_send = min(rs485->delay_rts_before_send, > + 100000U); > + rs485->delay_rts_after_send = min(rs485->delay_rts_after_send, > + 100000U); > + } else { > + rs485->delay_rts_before_send = min(rs485->delay_rts_before_send, > + 100U); > + rs485->delay_rts_after_send = min(rs485->delay_rts_after_send, > + 100U); > + } > > port->rs485 = *rs485; > > diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c > index d2f3310abe54..0cee4aa8323d 100644 > --- a/drivers/tty/serial/8250/8250_port.c > +++ b/drivers/tty/serial/8250/8250_port.c > @@ -1483,6 +1483,15 @@ static void start_hrtimer_ms(struct hrtimer *hrt, unsigned long msec) > hrtimer_start(hrt, t, HRTIMER_MODE_REL); > } > > +static void start_hrtimer_us(struct hrtimer *hrt, unsigned long usec) > +{ > + long sec = usec / 1000000; > + long nsec = (usec % 1000000) * 1000000000; This 1e9 should be 1000 ("NSEC_PER_USEC"). While at it you might want to use USEC_PER_SEC (and MSEC_PER_SEC above) to make the code more readable. Cheers Ahmad -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |