Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752681AbdLEPDS (ORCPT ); Tue, 5 Dec 2017 10:03:18 -0500 Received: from iolanthe.rowland.org ([192.131.102.54]:52312 "HELO iolanthe.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1750740AbdLEPDQ (ORCPT ); Tue, 5 Dec 2017 10:03:16 -0500 Date: Tue, 5 Dec 2017 10:03:15 -0500 (EST) From: Alan Stern X-X-Sender: stern@iolanthe.rowland.org To: Yoshihiro Shimoda cc: Ulf Hansson , Geert Uytterhoeven , "Rafael J. Wysocki" , Linux PM , LKML , Greg Kroah-Hartman , USB list , Linux-Renesas , Kishon Vijay Abraham I Subject: RE: [PATCH] PM / runtime: Drop children check from __pm_runtime_set_status() In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1812 Lines: 52 On Tue, 5 Dec 2017, Yoshihiro Shimoda wrote: > Hi, > > > From: Ulf Hansson, Sent: Monday, December 4, 2017 7:41 PM > > > > On 1 December 2017 at 12:03, Yoshihiro Shimoda > > wrote: > > > > Sure! I tested your patch, and then the following message disappeared! > > > > > > Enabling runtime PM for inactive device (ee080200.usb-phy) with active children > > > > Great, that confirms my theory. > > > > I will re-work the patch and re-post it to see what people thinks about it. > > Thank you! > > > > > > > However, the following message still exists. > > > > > > Enabling runtime PM for inactive device (ee080000.usb) with active children > > > > > > So, I guess ohci-platform.c also has similar issue. > > > > Yes, very likely! > > > > However, I need some more time to look into this to be able to suggest > > a solution. > > I found a solution and sent a report as below: > https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1551146.html > > What do you think about using pm_runtime_forbid()? In general, drivers should not use pm_runtime_forbid(). It is meant for use by userspace, through the /sys/.../power/control file. Drivers cannot rely on the result of calling pm_runtime_forbid() or pm_runtime_allow(), because the user can change it at any time. If you really want to prevent the OHCI controller from going into runtime suspend, the proper approach is to call pm_runtime_get() in the probe routine and pm_runtime_put() in the release routine. However, this will waste energy because it will force the controller to remain at full power even when no active devices are attached. In this case, there probably is a better to solution to your problem (such as fixing the runtime PM support in the phy driver). Alan Stern