Received: by 2002:a05:6358:489b:b0:bb:da1:e618 with SMTP id x27csp1909680rwn; Fri, 9 Sep 2022 06:04:04 -0700 (PDT) X-Google-Smtp-Source: AA6agR5uCCGxny8Eft3T2qnPwiYn5IC/Z9Ir8xtSxxUY3Q0YE/uvwrU8CDhjmBD1RFy0MAGGjMef X-Received: by 2002:a17:903:26d4:b0:176:d22a:19b6 with SMTP id jg20-20020a17090326d400b00176d22a19b6mr13613856plb.137.1662728643961; Fri, 09 Sep 2022 06:04:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662728643; cv=none; d=google.com; s=arc-20160816; b=La1oo1rnW3Ht9PWLCcn9H52MLT2n9NQygUE+fAALURsrfXbX2jV++QgY4lYcT7Mds7 39xvucqbHrnR3ZWAVMGGckF+45v61ax7c23Y5G5vXeJgeRKRnNzG80r0mckepS9hiJa7 6qkqBxhhPoAk6EPXuebYX/9Gm+/k7vt4+uMketLqKzS3WXw3nru0k8b4fTX5FTEIq3W+ nJ1i7bWyZHCFRezhAsmDlKmqFibaDKnM2AGmOblHoRK+ySeaqn3l9UhXmL4rnNdl3Myw BTKigOCzL1C7Hncwrw/pFl10HKxs8qJSIf3SGNvBOK6fCgHvs+bXYqBFxsvffR+XZKYF L6wg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=83AS/GOs6xD8VS6PwkMn3K15GIii6zky9oxDYSPmuUg=; b=u/QthTqdh0dDa9fHIoZjhR2Cy+ljI2Xr9GY65V94nRd8Jpq804U/AfXdGAy3C8lNSp 4stuv8mtSmUFEfuUEojsQL4AqtCotslpLckdEwza4GrkYUsUh0l51YvHzgBiCuFYPjEH 3Ic8v9lUNBxQlrqtBjnZTMGYCWEv3CzoIPBuQjVZm8LbXEG3zfFmirdvHxjKFIalkKAo ndRmdxV4wO2pZN2O7EOHfVZTSbVo+fTxKgxNnXaSefgmXglQNMrA99C4yBqszCNpfe1M Z96qL1oDCgbvZE+NQJ1QIDLoGC6EAqa2Gc9PiNQgHwD7EGPNNaI/s5F1kia/HKhX1eGp vVqA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=JKUR0m9U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id kb10-20020a17090ae7ca00b001faf81eafdbsi489813pjb.174.2022.09.09.06.03.48; Fri, 09 Sep 2022 06:04:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=JKUR0m9U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231225AbiIIMlg (ORCPT + 99 others); Fri, 9 Sep 2022 08:41:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49784 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230270AbiIIMld (ORCPT ); Fri, 9 Sep 2022 08:41:33 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1EFD4D99CF; Fri, 9 Sep 2022 05:41:33 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id B949C61FC9; Fri, 9 Sep 2022 12:41:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2491EC433C1; Fri, 9 Sep 2022 12:41:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1662727292; bh=/ZRVUtdEfLA1Q7ddcRbz1aDFhErn44JrkcHfJH9/laI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=JKUR0m9UMvBhQxBe1X97QpC6YoeIjOoYfUfFEGgnNSI2+wxr8RFJ4I7VDZaZ3pRiX IzWJcWq5b22fbPNQfs+Moe37jxulkGnEWAaL9GG5ZJ8h0F12OzCD8u3vW81bjTGAVe NlcmB+4gfZPdHRSRjtRDKFTLBpONtOzYF5bmyw1rkjnqN4qcXY5YQOIDUXV1SrYexh Ng3+PCREQk9Wc0XsWhOaKuysTBtg92IzTSLlAeG6xoTXc6OiAEes30zx1EKxnJNiyS g22XScVNPl1dHk+AfyKhD6hzWg+PTN8EMgNsLMxBO2VApJtPk8nv1mPgJEOR1SamzD Mngf5Wq3wMByA== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1oWdKH-0001g1-Hm; Fri, 09 Sep 2022 14:41:41 +0200 Date: Fri, 9 Sep 2022 14:41:41 +0200 From: Johan Hovold To: Jiri Slaby Cc: Arnd Bergmann , Russell King , Greg Kroah-Hartman , Ilpo =?utf-8?B?SsOkcnZpbmVu?= , linux-serial , LKML , Tobias Klauser , Richard Genoud , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Vladimir Zapolskiy , Liviu Dudau , Sudeep Holla , Lorenzo Pieralisi , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andreas =?utf-8?Q?F=C3=A4rber?= , Manivannan Sadhasivam , Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, Pali =?utf-8?B?Um9ow6Fy?= , Kevin Cernekee , Palmer Dabbelt , Paul Walmsley , Orson Zhai , Baolin Wang , Chunyan Zhang , Patrice Chotard , linux-riscv@lists.infradead.org Subject: Re: [PATCH v3 0/4] tty: TX helpers Message-ID: References: <4e9b4471-a6f2-4b16-d830-67d253ae4e6a@linux.intel.com> <715b40ba-1bcc-4582-bed1-ef41126c7b94@www.fastmail.com> <2197faa3-0217-41e0-8ff0-b5396561c623@www.fastmail.com> <5feff23c-9458-616c-66ce-13cca5829162@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5feff23c-9458-616c-66ce-13cca5829162@kernel.org> X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Sep 09, 2022 at 12:53:04PM +0200, Jiri Slaby wrote: > On 07. 09. 22, 16:56, Arnd Bergmann wrote: > > On Wed, Sep 7, 2022, at 3:52 PM, Russell King (Oracle) wrote: > >> On Wed, Sep 07, 2022 at 02:36:37PM +0200, Greg Kroah-Hartman wrote: > >> > >> Of course, it would have been nicer to see the definition of this > >> macro, because then we can understand what the "ch" argument is to > >> this macro, and how that relates to the macro argument that is > >> shown in the example as a writel(). > > > > I pulled out the 'ch' variable from the macro to avoid having > > the macro define local variables that are then passed to the > > inner expressions. > > Note that I had "port" and "ch" as a part of the macro parameters in > [v2], but it didn't help the situation much. > >> Maybe a more complete example would help clear up the confusion? > >> Arnd? > > > > Here is a patch on top of the series that would implement the > > uart_port_tx_helper_limited() and uart_port_tx_helper() > > macros that can be used directly from drivers in place of defining > > local functions, with the (alphabetically) first two drivers > > converted to that. > > If there are no objections, I will push the patches this directorin. I > like this more than [v2] or [v3] (the helper macros). Actually, I > mentioned this wait_event() style in [v1], but I perhaps simplified the > concept too much to completely eliminate the need of a wrapper function. > And that made it too complicated/too hard to understand. This sounds much better. You also had some users that needed some preamble which could now go in the same function (e.g. altera_jtaguart_tx_chars()). > Except I'd drop the "_helper" part from the name. Originally (in [v1]), > I had uart_port_tx() and uart_port_tx_limited() functions. In [v2+v3], I > added _helper to avoid confusion as we were generating a helpers using > the macros. Yes, technically, uart_port_tx() is still a helper, but I > think it's superfluous to have it in the name now. That would also be an in improvement. For the altera example you could end up with something like: static void altera_jtaguart_tx_chars(struct altera_jtaguart *pp) { struct uart_port *port = &pp->port; unsigned int space; space = (readl(port->membase + ALTERA_JTAGUART_CONTROL_REG) & ALTERA_JTAGUART_CONTROL_WSPACE_MSK) >> ALTERA_JTAGUART_CONTROL_WSPACE_OFF; uart_port_tx_chars(port, space, writel(ch, port->membase + ALTERA_JTAGUART_DATA_REG)); } which would be understandable. If there are too many arguments to be passed in, then perhaps you can explore Arnd's (and you own) suggestion to use inline helpers so that the arguments are named. Johan