<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - GTX 970M (GM204-A) not powered off when not in use (DynPwr in stead of DynOff)"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=101404#c5">Comment # 5</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - GTX 970M (GM204-A) not powered off when not in use (DynPwr in stead of DynOff)"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=101404">bug 101404</a>
              from <span class="vcard"><a class="email" href="mailto:peter@lekensteyn.nl" title="Peter Wu <peter@lekensteyn.nl>"> <span class="fn">Peter Wu</span></a>
</span></b>
        <pre>(In reply to Benny Ammitzbøll from <a href="show_bug.cgi?id=101404#c4">comment #4</a>)
<span class="quote">> (In reply to Peter Wu from <a href="show_bug.cgi?id=101404#c3">comment #3</a>)
> > When the nouveau driver is loaded, runtime PM for the Nvidia PCI device
> > (01:00.0 in your case) should be enabled.

> Yes, I agree. Why is the Nvidia card not going to DynOff when on AC and not
> being used then? I can force it by using powertop, but why does this not
> happen automatically?</span >

Please show the output of "lspci -nn". If you boot your laptop with an external
display plugged in, you will additionally have a HDMI audio function (01:00.1)
which must also have runtime PM enabled for the whole thing to power down.

In powertop, what are the states for the Nvidia PCI device(s) and its root
parent port before you change anything?

<span class="quote">> Ok, but then I don't understand why without pcie_port_pm=off I get a higher
> power consumption? I mean, the parent device should power down the entire
> PCIe port incl. the Nvidia card?</span >

See above, if there are other children, then these must also have runtime PM
enabled or the parent will refuse to enter suspend.

<span class="quote">> And before linux kernel 4.8 (I think) pcie_port_pm=off was not needed,
> so what happened?</span >

Currently there are two methods to turn off the power on modern Nvidia devices:
 - ACPI "DSM". The nouveau driver will call a special device-specific ACPI
method  during runtime PM transitions.
 - ACPI Power Resources (since Linux 4.8). This means that when all devices
(PCI root port and its children) are idle, the power resources can be turned
off. This is a standard method that does not require a specific video driver,
hence if you do not load nouveau but enable runtime PM, it will also work.

Why is the second method preferred? The second method is the standard one since
Windows 8 and vendors might not test the former method. The former method is
known to result in memory corruption issues on some models (<a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Memory corruption on Lenovo t440p with runpm"
   href="show_bug.cgi?id=78530">bug 78530</a>) and in
other cases it will not fully reduce power consumption (resulting in increased
heat, more fan noise and lower battery life).

<span class="quote">> > Any reason why you boot with acpi_osi=! acpi_osi=Linux? If you want to
> > prevent a lockup that occurs with Clevo P6xxRx models, try
> > acpi_osi="!Windows 2015"
> > (see <a href="https://bugzilla.kernel.org/show_bug.cgi?id=156341">https://bugzilla.kernel.org/show_bug.cgi?id=156341</a>)

> Because while acpi_osi="!Windows 2015" does prevent the lockup, I still have
> some Fn keys that are not working (notably those that adjust screen
> brightness, but others as well). With acpi_osi=! acpi_osi=Linux all of my Fn
> keys are working, incl. no lockup.</span >

Upgrade to kernel 4.10 or newer, then your brightness keys should work without
forcing acpi_osi=Linux. See <a href="https://bugzilla.kernel.org/show_bug.cgi?id=123651">https://bugzilla.kernel.org/show_bug.cgi?id=123651</a></pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>