Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1591255

RE: [PATCH V2] PCI/ASPM: reconfigure ASPM following hotplug for POLICY_DEFAULT

From "Patel, Mayurkumar" <mayurkumar.patel@intel.com>
Newsgroups linux.kernel
Subject RE: [PATCH V2] PCI/ASPM: reconfigure ASPM following hotplug for POLICY_DEFAULT
Date 2017-03-02 17:20 +0100
Message-ID <tgBCq-4RH-15@gated-at.bofh.it> (permalink)
References <t5MBc-4Gh-1@gated-at.bofh.it> <tfNPj-3Bl-7@gated-at.bofh.it> <tfRJf-6ds-9@gated-at.bofh.it> <tfXOG-1BX-19@gated-at.bofh.it> <tggHE-6rz-15@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


>
>Hi Bjorn,
>
>On 2/28/2017 1:57 PM, Patel, Mayurkumar wrote:
>>> I was trying to figure out when to use saved values vs. the values in
>>> registers by looking at the enable_cnt.
>>> enable_cnt is 0 during boot on my system.
>> enable_cnt for the root port on my system is set to 1 for "root port" already without saving
>> any ASPM related settings.
>>
>>
>
>What would be the best way to figure out when to save power-on values from
>the registers?
>

So in my case, pci_enable_device() for root port is called from pcie_port_device_register() at the boot time which
Is called from pcie_portdrv_probe() function which does not call pcie_aspm_init_link_state() but
Increment's enable_cnt field. When the Endpoint get plugged in, pcie_aspm_init_link_state() is called
from hotplug routine on "Root port" but due to enable_cnt is already incremented we do not set
right policy and aspm gets disabled by aspm driver.

Shall we introduce new atomic variable along with aspm_default in struct pci_dev and increment it in when called
first time pcie_aspm_init_link_state()  to save power-on values ( I have tested it locally, if you think could be good approach
I can upload the diffs) because enable_cnt in pci_enable_device() can be triggered
from multiple places at boot time so it might not be safe to use it? 
or adding pcie_aspm_init_link_state() in pcie_port_device_register() for ports before calling pci_enable_device()
although I am not sure whether it's the right approach and that would work for all the devices!

@Kaya/Bjorn: Do you have any other suggestions or Could you also please help by comment what would make sense?


>--
>Sinan Kaya
>Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.
>Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.
Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: [PATCH V2] PCI/ASPM: reconfigure ASPM following hotplug for  POLICY_DEFAULT Sinan Kaya <okaya@codeaurora.org> - 2017-03-01 19:00 +0100
  RE: [PATCH V2] PCI/ASPM: reconfigure ASPM following hotplug for  POLICY_DEFAULT "Patel, Mayurkumar" <mayurkumar.patel@intel.com> - 2017-03-02 17:20 +0100
    Re: [PATCH V2] PCI/ASPM: reconfigure ASPM following hotplug for  POLICY_DEFAULT Sinan Kaya <okaya@codeaurora.org> - 2017-03-02 19:30 +0100
      RE: [PATCH V2] PCI/ASPM: reconfigure ASPM following hotplug for  POLICY_DEFAULT "Patel, Mayurkumar" <mayurkumar.patel@intel.com> - 2017-03-03 10:50 +0100
        Re: [PATCH V2] PCI/ASPM: reconfigure ASPM following hotplug for  POLICY_DEFAULT okaya@codeaurora.org - 2017-03-03 11:40 +0100

csiph-web