Received: by 10.192.165.148 with SMTP id m20csp5503717imm; Wed, 9 May 2018 06:10:37 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpBn65L9DoNG3F8+mC5ru7q+8yycJeF/e1qtQr9RBMkyhGss/pQBVND+AiY0YGlNQ8iUZJp X-Received: by 2002:a63:2b15:: with SMTP id r21-v6mr14928415pgr.122.1525871437194; Wed, 09 May 2018 06:10:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525871437; cv=none; d=google.com; s=arc-20160816; b=cqswHuiO3+vTIuMD0xqWDmceEzbdReUz0ffW7XWniEgeAkxl/OPz7zkCzJ7fLxtpHm p/q4mIFkYsfiN1bVYG6Bq0BfJwGwbFRO7vEuYS9A/oNxdM6n/q5QKGGChGLOdgnyWtlL Ht8QMVpdDGibASoUb8MjXm2FzRUkRLYyBmq37hjYT4WMEMzxU+dGq20i/XPqCorOV08p NyubLTDgBnfGnOlOMDuizIH/qckOv3DyJgrnAodfnI/5f2NquZg09HRKIoCpoSFdy/AZ O3cFpqz8bxPDiu6UkY2fS7i3eUAdUir4WfvHwmEaqyPzFMe6ltF/W+Pms9lGw29v+iIU mH7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=nKdu90m7Yt1tA4kE3BDzXCxHBn2D6PxYfWvtldMx7VI=; b=eykOrMogCFPt7cja0RqRfyPgn8zPT6SvB0nZL4jD53eDzPsZqdZoScP4MOX5FulFNP WYsr+35I3wgc2dVijrwVhIDMKlSU3Bs6xzTSdlVK96AJjvn3Jb1GqXxEKbZTyM+ImdcS hIT5TE2UU3kpSDTC41BiN+ikm8pTF4jCsgQ0DSfxcNWlHrBKh8W+oSincJyW8A1bMWxi QV9AiCgkZOrNd7OlRj82DgtT6sgqsBq/SlWr9BrA5QjUfQWmWfjmGqdLTXBwRB2CI2T9 4Q9UqC+p0CHOm1QfqViQ3wakWJF8oOK7m5juONFIynK5Hw/7uctBkosiCDZC3sNwv1qs EDhQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=o0m0feZf; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q11-v6si21160477pgv.661.2018.05.09.06.10.22; Wed, 09 May 2018 06:10:37 -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; dkim=fail header.i=@gmail.com header.s=20161025 header.b=o0m0feZf; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934979AbeEINKK (ORCPT + 99 others); Wed, 9 May 2018 09:10:10 -0400 Received: from mail-lf0-f68.google.com ([209.85.215.68]:46802 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934687AbeEINKF (ORCPT ); Wed, 9 May 2018 09:10:05 -0400 Received: by mail-lf0-f68.google.com with SMTP id x7-v6so15865412lff.13; Wed, 09 May 2018 06:10:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=nKdu90m7Yt1tA4kE3BDzXCxHBn2D6PxYfWvtldMx7VI=; b=o0m0feZfR+BO8RFzN00NNIzXhjrVNA8go5/lkjxrlhWluQ6v2GuqPkIt9UmWRrOYh/ d1E6rSqoo7444f2/QltD0XhlYUIEgrZK8yUkQr4gjmfm2U6nxn8H2iAet5+ASqfTC8pg s/IDYG1N8k1kUO/WNPvke90HVFvrEiWoT/cYasBOCT4IIJDvIjdu/i/hnswb8kmeThgp uO9fZR/8EBj7WhDZe+el8xpGwGGgnj3f6Q/Ti+dgpFRzionxsdDu5ATeTXrz/tOyO/Am 5DM5kYUDen8YI8+Y2wm77HP5ONyP1pbI60X4GZFBKyq7+67u9uPnIiOQqxO2FbjcyU60 PrRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=nKdu90m7Yt1tA4kE3BDzXCxHBn2D6PxYfWvtldMx7VI=; b=N62v4wtO6AyL8w+UX/euSajJVg9TNfEEI40uA8IsCQmNKUCnaZuPUqVhd2l3MLYFML admfCYyA0MFuE2AboJFxPERm7Oy/9G1TZr984FHpUGaIPnjQADIEnl9iCYL4ZLL0bPgJ a8TBJdkJ2tqH79to8h6ZEGz0I2jkZxDjFY8rEO53ZB779GOUFTn0wg6OG/4hvEy/9mP+ GSkyQRfFzlEypJJdn52hG8KV0NQJAoCjzrB9T4RT3xChBd5nTM5aWZ3VonC2f/3fAnam PjNNl6TN1jLrPl86NDNy73K9Bgc5C38y3SVNw8ydr6ECv4eCOV6w/wYKlXCAfQfO9nDc b9GQ== X-Gm-Message-State: ALQs6tB1Zaghg2CTLVVKxyvGuO7TKw6OBd4gquSVm7jrCZqidEJqSqfo Ip1gRSWrefq8v3Z53TEiu1Te4f23 X-Received: by 2002:a2e:9101:: with SMTP id m1-v6mr25855583ljg.93.1525871403600; Wed, 09 May 2018 06:10:03 -0700 (PDT) Received: from xi.terra (c-8bb2e655.07-184-6d6c6d4.cust.bredbandsbolaget.se. [85.230.178.139]) by smtp.gmail.com with ESMTPSA id c79-v6sm5107720ljd.47.2018.05.09.06.10.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 May 2018 06:10:02 -0700 (PDT) Received: from johan by xi.terra with local (Exim 4.90_1) (envelope-from ) id 1fGOr5-0002at-6Q; Wed, 09 May 2018 15:10:03 +0200 Date: Wed, 9 May 2018 15:10:03 +0200 From: Johan Hovold To: Tony Lindgren Cc: Johan Hovold , Sebastian Reichel , "H. Nikolaus Schaller" , Andreas Kemnade , Mark Rutland , Arnd Bergmann , Pavel Machek , "linux-kernel@vger.kernel.org" , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Greg Kroah-Hartman , Rob Herring , linux-serial@vger.kernel.org, linux-omap@vger.kernel.org, linux-pm@vger.kernel.org Subject: OMAP serial runtime PM and autosuspend (was: Re: [PATCH 4/7] dt-bindings: gnss: add u-blox binding)) Message-ID: <20180509131003.GC2285@localhost> References: <20180504114213.3xlzqxe74n55tk5s@earth.universe> <20180507100135.GS2285@localhost> <20180507154515.GP98604@atomide.com> <20180507163439.GV2285@localhost> <20180507175032.GR98604@atomide.com> <20180508065852.GW2285@localhost> <20180508152228.GV98604@atomide.com> <20180508154756.GW98604@atomide.com> <20180508155405.GX98604@atomide.com> <20180508164904.GZ98604@atomide.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180508164904.GZ98604@atomide.com> User-Agent: Mutt/1.9.5 (2018-04-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Updating subject and adding linux-serial, linux-pm and linux-omap. ] On Tue, May 08, 2018 at 09:49:04AM -0700, Tony Lindgren wrote: > * Tony Lindgren [180508 08:54]: > > * Tony Lindgren [180508 08:47]: > > > * Tony Lindgren [180508 08:22]: > > > > * Johan Hovold [180508 07:00]: > > > > > With the negative autosuspend set in both omap drivers probe functions, > > > > > this is the expected behaviour. Which I think we must fix. > > > > > > > > Yes indeed. I've been using my script for years now and have > > > > completely missed the fact that the unused ports are not idled > > > > at all on start-up when unused. > > > > > > This might be all that's needed, care to try it and if it works > > > I'll send out two separate proper patches? > > > > > > I'm seeing this now on my bbb after temporarily disabling my > > > UART idle init script: > > > > > > # rwmem -s32 0x44e004b4 # uart 1 on l4_wkup > > > 0x44e004b4 = 0x00000002 > > > > > > # rwmem -s32 0x44e0006c+0x10 # uart 2 - 5 on l4_per > > > 0x44e0006c = 0x00030000 > > > 0x44e00070 = 0x00030000 > > > 0x44e00074 = 0x00030000 > > > 0x44e00078 = 0x00030000 > > > > > > # rwmem -s32 0x44e00038 # uart 6 on l4_per > > > 0x44e00038 = 0x00030000 > > > > Hmm I forgot to remove status = "disabled" from the other ports, > > still not idling the unused ports with the patch below it seems. > > No need to enable/disable autosuspend except in startup and shutdown > I think. The patch below works for me, now includes removal of the > status = "disabled" flags too. Only tested with 8250_omap on bbb > so far. > > I wonder if other places still need fixing for autosuspend > like console support? While this seems to fix the idling of closed ports here too, I'm not sure we can move use_autosuspend to startup() like this. First, this flag should be set before registering the tty so that udev can be used to update the attributes. Second, this prevents setting the autosuspend delay through sysfs when the port is closed (when autosuspend is disabled). It seems we really should not be using the negative autosuspend to configure the RPM behaviour the way these drivers do. Perhaps a new mechanism is needed. But I'm afraid I don't have time to look at this today. Thanks, Johan > --- a/drivers/tty/serial/8250/8250_omap.c > +++ b/drivers/tty/serial/8250/8250_omap.c > @@ -605,6 +605,7 @@ static int omap_8250_startup(struct uart_port *port) > return ret; > } > > + pm_runtime_use_autosuspend(port->dev); > pm_runtime_get_sync(port->dev); > > up->mcr = 0; > @@ -685,8 +686,8 @@ static void omap_8250_shutdown(struct uart_port *port) > serial_out(up, UART_LCR, up->lcr & ~UART_LCR_SBC); > serial_out(up, UART_FCR, UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT); > > - pm_runtime_mark_last_busy(port->dev); > - pm_runtime_put_autosuspend(port->dev); > + pm_runtime_dont_use_autosuspend(port->dev); > + pm_runtime_put_sync(port->dev); > free_irq(port->irq, port); > dev_pm_clear_wake_irq(port->dev); > } > @@ -1226,7 +1227,7 @@ static int omap8250_probe(struct platform_device *pdev) > spin_lock_init(&priv->rx_dma_lock); > > device_init_wakeup(&pdev->dev, true); > - pm_runtime_use_autosuspend(&pdev->dev); > + /* See omap_8250_startup and shutdown for autosuspend */ > pm_runtime_set_autosuspend_delay(&pdev->dev, -1); > > pm_runtime_irq_safe(&pdev->dev); > @@ -1265,8 +1266,8 @@ static int omap8250_probe(struct platform_device *pdev) > } > priv->line = ret; > platform_set_drvdata(pdev, priv); > - pm_runtime_mark_last_busy(&pdev->dev); > - pm_runtime_put_autosuspend(&pdev->dev); > + pm_runtime_put_sync(&pdev->dev); > + > return 0; > err: