Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933692AbcCNJru (ORCPT ); Mon, 14 Mar 2016 05:47:50 -0400 Received: from mail-lb0-f176.google.com ([209.85.217.176]:35724 "EHLO mail-lb0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752813AbcCNJrl (ORCPT ); Mon, 14 Mar 2016 05:47:41 -0400 MIME-Version: 1.0 In-Reply-To: <20160314094335.GE1796@lahna.fi.intel.com> References: <1457504045-12738-1-git-send-email-airlied@gmail.com> <2736217.utxPzJExd5@vostro.rjw.lan> <20160311105815.GS1796@lahna.fi.intel.com> <2759763.dR5D0KopkA@vostro.rjw.lan> <20160314094335.GE1796@lahna.fi.intel.com> Date: Mon, 14 Mar 2016 19:47:39 +1000 Message-ID: Subject: Re: [PATCH 1/2] vga_switcheroo: add power support for windows 10 machines. From: Dave Airlie To: Mika Westerberg Cc: "Rafael J. Wysocki" , "Rafael J. Wysocki" , dri-devel , "linux-pm@vger.kernel.org" , ACPI Devel Maling List , Linux PCI , Linux Kernel Mailing List Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1670 Lines: 50 > >> - if (pcie_port_runtime_suspend_allowed(dev)) >> + if (pcie_port_runtime_suspend_allowed(dev)) { >> + pm_runtime_allow(&dev->dev); > > PCI drivers typically have left this decision up to the userspace. I'm > wondering whether it is good idea to deviate from that here? Of course > this allows immediate power savings but could potentially cause problems > as well. > No distro has ever shipped userspace to do this, I really think this is a bad design. We have wasted countless watts of power on this stupid idea that people will run powertop, only a few people in the world run powertop, lots of people use Linux. The kernel should power stuff down not wait for the user to run powertop, At least for the GPU it's in the area of 8W of power, and I've got the GPU drivers doing this themselves, I could have the GPU driver call runtime allow for it's host bridge I suppose, if we insist on the userspace cares, but I'd prefer not doing so. > I think we need to add corresponding call to pm_runtime_forbid() in > pcie_portdrv_remove(). Yes most likely. Dave. > >> pm_runtime_put_noidle(&dev->dev); >> + } >> >> return 0; >> } >> @@ -436,6 +438,8 @@ static void pcie_portdrv_err_resume(struct pci_dev *dev) >> * LINUX Device Driver Model >> */ >> static const struct pci_device_id port_pci_ids[] = { >> + /* Intel Skylake PCIE graphics port */ >> + { PCI_VDEVICE(INTEL, 0x0c01), .driver_data = PCIE_PORT_SPT }, >> /* Intel Broxton */ >> { PCI_VDEVICE(INTEL, 0x1ad6), .driver_data = PCIE_PORT_SPT }, >> { PCI_VDEVICE(INTEL, 0x1ad7), .driver_data = PCIE_PORT_SPT }, >> -- >> 2.5.0 >> >