Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp9092598rwb; Thu, 24 Nov 2022 08:01:19 -0800 (PST) X-Google-Smtp-Source: AA0mqf7Pm6mnH1Y9T9maoXPOXOr8EnLZTADiE9S/te5PrOKTVJzMqVG8BflnRIgioTI5FsCOq+6u X-Received: by 2002:a50:d7de:0:b0:469:61de:adce with SMTP id m30-20020a50d7de000000b0046961deadcemr21984704edj.218.1669305679190; Thu, 24 Nov 2022 08:01:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669305679; cv=none; d=google.com; s=arc-20160816; b=FBZW2p+WT8bNizfa0K2haJ46gq+gNFmcv3e+tN4acpoevrxv6aFM2dJh0P+rM4hfL1 eZU7gCp/sQqfWXAix1oiYYBi3a5rmKsZZLlRJnIMaD9CdagETwgdeOs3W3scWJN5oBuc CeOHGlJaGg/nESildOZ8TSn8t7PG++hnJj6BkcDWrwAaRhCWzTP8n4S9puB/n6rd3AY7 cD6ExttaTbsWhWTGw0+mBwT/ZwE9WG8iBDY2oe+a7jgNMRx45WHaThlGazdxncjBfc0e AcEGD2QqAu2GeMXY1pPVb00mvppi74Rw8/a2OwZ2P5oF1yaNsct0UwljRkFosied9QQK lmmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=saSlvoXli5roPdfQjc0COfGftVZoPty/RFt6GhCwe+A=; b=PD0qHj8/Hp9C4UOYRmtACd3uQNfSQFLRBAFkmqUo0W1wIDSDvNXm/cRoh/MNavkSVY Rdz12i659NMTeHGWRnzzud8H38xlCB7xhMQYf42NiPHh/Ls6QZRDmzGUwCIbkWoP4EqC WbTjv6MwjZEjYDkGT7llNL7b2gEJbFumJVkd1KRZt7Xg4M07PAFyFRJ5OeRpVjkY/Bnv E2bMEIVrcRZLvRGwd11cr77MivFYiOtzashJalnR7OomHJho3wW3utWND7flXoquHL1l F3zwriOLjmrVwlkVs0bg8rDLngUjdZrfZqG2AaOnxpNtqUgsXpc3cEyVD30zwNw3qxBr IP4A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bgdev-pl.20210112.gappssmtp.com header.s=20210112 header.b="gT/QVfsW"; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f9-20020a056402354900b0045d22bc81a0si1564511edd.231.2022.11.24.08.00.47; Thu, 24 Nov 2022 08:01:19 -0800 (PST) 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=@bgdev-pl.20210112.gappssmtp.com header.s=20210112 header.b="gT/QVfsW"; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229952AbiKXOwU (ORCPT + 86 others); Thu, 24 Nov 2022 09:52:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54178 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230024AbiKXOwB (ORCPT ); Thu, 24 Nov 2022 09:52:01 -0500 Received: from mail-vs1-xe36.google.com (mail-vs1-xe36.google.com [IPv6:2607:f8b0:4864:20::e36]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0479314F9CD for ; Thu, 24 Nov 2022 06:51:25 -0800 (PST) Received: by mail-vs1-xe36.google.com with SMTP id k67so1745749vsk.2 for ; Thu, 24 Nov 2022 06:51:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=saSlvoXli5roPdfQjc0COfGftVZoPty/RFt6GhCwe+A=; b=gT/QVfsW8Jl2L3jgcVaSPpWfvSeebUi7AcuC3qu3LlVAS2DGxJdK+PnuuXxT0gD8VY 0oOuk5VbTWrgiO6pPWuBMVRnpuPhIcgSkiGrLNM05oeNdRkaRqh5WAAZNP2LQQWVzSKl C6Mr577QeXYx8iILSUTpUXfZ/BJ3fvhqazsIx3OVr2fEhRBGVqWpvyPF2OIzVVKHCHtH xMaVAowkY26QvHEIe0hxKO0Z09LWMDDMOeo9rfgGxdnwcCdr53+TMjech2S78WLA0ajr s/V5naZIBTmMJ0Aqj3mmL/IY7zibk7sdBrx5QAljtihMolDjJ2ndvzmzxCaVCtBsWI4q mDTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=saSlvoXli5roPdfQjc0COfGftVZoPty/RFt6GhCwe+A=; b=07vfuHMO+Spa4UNo1JBgcE84m0W9cxxXgRa8heiJoQGKfSAnBcEwUKUnrEHCor9glz AqoqYVL7ody5tSH/d+y1mUJKMTLlmcrBNrSfKNTPePyfZl0nv9z5M+mj+TWHFiL5SEK3 vlG4mOOthmkYcBjgfO0uvcpRdCYj9gHT5IkMct2EwAailWNmnpiBi9DhpvOsU/eXRKjN LT3+jbE0oywLVjRSb6DanzJRgu4F0ZihliG5a81zcDSeOdfB5debJyeL/ECtvKE7wTuz u3gjnd6umRr3yGCONETAWU8DcwsevqHmmutZXlEBaJ92t/dSsemTglKYwYAsejYAHnT/ nd8Q== X-Gm-Message-State: ANoB5pny1w0Xh1zIJbP2DgzAAyfMORtfDlYyXL67nYV2RHyi2k31ZLbW eB+LE83eNg7VizjAF/k4mAbPmxIZmoZA9pgf1kWrPN6jZM0= X-Received: by 2002:a67:e8d7:0:b0:3b0:767f:e291 with SMTP id y23-20020a67e8d7000000b003b0767fe291mr3351904vsn.47.1669301484092; Thu, 24 Nov 2022 06:51:24 -0800 (PST) MIME-Version: 1.0 References: <20221123110759.1836666-1-brgl@bgdev.pl> <20221123110759.1836666-9-brgl@bgdev.pl> <4f4b7e8b-8017-2a6f-f756-46c60fba8a3c@kernel.org> In-Reply-To: <4f4b7e8b-8017-2a6f-f756-46c60fba8a3c@kernel.org> From: Bartosz Golaszewski Date: Thu, 24 Nov 2022 15:51:13 +0100 Message-ID: Subject: Re: [PATCH v3 08/13] tty: serial: qcom-geni-serial: refactor qcom_geni_serial_handle_tx() To: Jiri Slaby Cc: Andy Gross , Bjorn Andersson , Konrad Dybcio , Greg Kroah-Hartman , Srinivas Kandagatla , Vinod Koul , Alex Elder , =?UTF-8?Q?Ilpo_J=C3=A4rvinen?= , linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-serial@vger.kernel.org, Bartosz Golaszewski Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_NONE autolearn=unavailable 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 Thu, Nov 24, 2022 at 8:18 AM Jiri Slaby wrote: > > On 23. 11. 22, 12:07, Bartosz Golaszewski wrote: > > From: Bartosz Golaszewski > > > > qcom_geni_serial_handle_tx() is pretty big, let's move the code that > > handles the actual writing of data to a separate function which makes > > sense in preparation for introducing a dma variant of handle_tx(). > > > > Let's also shuffle the code a bit, drop unneeded variables and use > > uart_xmit_advance() instead of handling tail->xmit manually. > > > > Signed-off-by: Bartosz Golaszewski > > --- > > drivers/tty/serial/qcom_geni_serial.c | 54 +++++++++++++-------------- > > 1 file changed, 27 insertions(+), 27 deletions(-) > > > > diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c > > index 68a1402fbe58..658b6d596f58 100644 > > --- a/drivers/tty/serial/qcom_geni_serial.c > > +++ b/drivers/tty/serial/qcom_geni_serial.c > > @@ -704,19 +704,42 @@ static void qcom_geni_serial_start_rx(struct uart_port *uport) > > writel(irq_en, uport->membase + SE_GENI_M_IRQ_EN); > > } > > I know you just shuffle the code, but: > > > +static void qcom_geni_serial_send_chunk_fifo(struct uart_port *uport, > > + unsigned int chunk) > > +{ > > + struct qcom_geni_serial_port *port = to_dev_port(uport); > > + struct circ_buf *xmit = &uport->state->xmit; > > + u8 buf[BYTES_PER_FIFO_WORD]; > > + size_t remaining = chunk; > > Why size_t when the others are uints? Well, BYTES_PER_FIFO_WORD should > be defined as 4U. Good point. > > > + unsigned int tx_bytes; > > + int c; > > + > > + while (remaining) { > > + memset(buf, 0, sizeof(buf)); > > + tx_bytes = min_t(size_t, remaining, BYTES_PER_FIFO_WORD); > > Then, no need for min_t. > Same. > > + > > + for (c = 0; c < tx_bytes ; c++) { > > + buf[c] = xmit->buf[xmit->tail]; > > + uart_xmit_advance(uport, 1); > > + } > > + > > + iowrite32_rep(uport->membase + SE_GENI_TX_FIFOn, buf, 1); > > I wonder, why is _rep variant used to transfer a single word? Only to > hide the cast? > Even if - using writel() with a cast doesn't seem to improve the performance and this one looks prettier IMO. Bartosz