Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp2528113ybk; Mon, 18 May 2020 01:06:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxtwsSlrCTzOjv+F6zSUQyboAXG46CuAxOtKvzLpINbhtK/a6O2vTXGWXrMWSlOJ3wfX9dL X-Received: by 2002:a05:6402:617:: with SMTP id n23mr12746148edv.107.1589789189055; Mon, 18 May 2020 01:06:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589789189; cv=none; d=google.com; s=arc-20160816; b=OMt22swn0aVGKbgkDIv1EKcNFo0t4ma4qX7Hh+sBq2kTlMz3zBy6MBjYvCDl6I2Izx 1IijXVlE5EUn5cAextLmpQ9zyONJcalS3l/nF9eNb2pvqCACPjLWIuNDx35upAQyI5mw DQHHgBxCxfGoGI8bq2jwx3MhlxglnQR/m4V6vsi+0lzVzcQjyWYmPKPysl6GdLAycKgc s9P+CNqF9qLd2pn6E0cNSs02fYL5dJVKenXdwS8mgfsu5LWCYJ6ZQSLTh802VwnQiwGx RlvlsTEAi3YI+8fn3//sl6juZ0ulm+4ItWF3108ptnbR2pzgciOioywibcsoH0oVG8j4 7yew== 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:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=aDD7jflWBTy2yDCl2xYU2V7bcjdOcFboEA2v3FNFbOM=; b=F4BP27ywe45xs+Q32H9y9n8FnoFWmeNcw5sYGvR4AvNY7frl1Qtq9ZvWNcnXzTlxAm QXxAvHLrsL8ZPKvLRcuMEql3G0zmWuaMDP0vXkA/sIosCXnPKAAF3BI6Wxf9NCkLqC16 DyhIn7GNCQDHsDj1eLjAT+KXAuRyXef+MTGm/Q8aNdOntFmDpscZwiFl/LCVx0wv/mrH 0C/E59AveQaQZAY//aO3YAs/mWQJTsf9po1wcgmrgF7zee5QUC02+KVSdG9PzSrctl7L Icc0qBvUGvWSZGMZEZHUEaCFQZZUqH1vqhqf8p1APq6V3agjotxncNv9/Ts8/ttQZZRm mV4Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d14si5996041eja.116.2020.05.18.01.06.05; Mon, 18 May 2020 01:06:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727117AbgERIEQ (ORCPT + 99 others); Mon, 18 May 2020 04:04:16 -0400 Received: from gloria.sntech.de ([185.11.138.130]:47516 "EHLO gloria.sntech.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726828AbgERIEQ (ORCPT ); Mon, 18 May 2020 04:04:16 -0400 Received: from ip5f5aa64a.dynamic.kabel-deutschland.de ([95.90.166.74] helo=diego.localnet) by gloria.sntech.de with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jaakp-0004qG-Cd; Mon, 18 May 2020 10:04:07 +0200 From: Heiko =?ISO-8859-1?Q?St=FCbner?= To: Lukas Wunner Cc: gregkh@linuxfoundation.org, jslaby@suse.com, andriy.shevchenko@linux.intel.com, matwey.kornilov@gmail.com, giulio.benetti@micronovasrl.com, linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, christoph.muellner@theobroma-systems.com Subject: Re: [PATCH v3 3/5] serial: 8250: Support separate rs485 rx-enable GPIO Date: Mon, 18 May 2020 10:04:05 +0200 Message-ID: <2693913.H5ugjTTm6y@diego> In-Reply-To: <20200518045006.s6e5aedgqwreqgd7@wunner.de> References: <20200517215610.2131618-1-heiko@sntech.de> <20200517215610.2131618-4-heiko@sntech.de> <20200518045006.s6e5aedgqwreqgd7@wunner.de> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am Montag, 18. Mai 2020, 06:50:06 CEST schrieb Lukas Wunner: > On Sun, May 17, 2020 at 11:56:08PM +0200, Heiko Stuebner wrote: > > @@ -1457,6 +1458,7 @@ void serial8250_em485_stop_tx(struct uart_8250_port *p) > > * Enable previously disabled RX interrupts. > > */ > > if (!(p->port.rs485.flags & SER_RS485_RX_DURING_TX)) { > > + gpiod_set_value(port->rs485_re_gpio, 1); > > serial8250_clear_and_reinit_fifos(p); > > > > p->ier |= UART_IER_RLSI | UART_IER_RDI; > > The added line needs to be conditional on if (port->rs485_re_gpio) > because the gpiod could be NULL and gpiod_set_value() doesn't check > for that. Need to look deeper at the other comment below, but gpiod_set_value does check for NULL ;-) void gpiod_set_value(struct gpio_desc *desc, int value) { VALIDATE_DESC_VOID(desc); [...] which expands to #define VALIDATE_DESC_VOID(desc) do { \ int __valid = validate_desc(desc, __func__); \ if (__valid <= 0) \ return; \ } while (0) which does */ static int validate_desc(const struct gpio_desc *desc, const char *func) { if (!desc) return 0; [...] Heiko