Re: ASPM after Hotplug Question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[snip]

>>
>> Bjorn
>>
> 
> / # lspci
> 03:00:00.0 Class 0604: 17cb:0401
> 03:01:00.0 Class 0200: 8086:1572
> 03:01:00.1 Class 0200: 8086:1572
> 
> 
> It looks like ASPM is only getting configured for the root port following
> insertion.
> 
> Removal:
> [   32.142474] pci 0003:01:00.1: pcie_aspm_exit_link_state:662
> [   34.142378] pci 0003:01:00.0: pcie_aspm_exit_link_state:659
> 
> Insertion:
> [   35.910342] pcieport 0003:00:00.0: pcie_aspm_init_link_state:565
> [   35.931227] pcieport 0003:00:00.0: pcie_aspm_init_link_state:617
> 
> 551 void pcie_aspm_init_link_state(struct pci_dev *pdev)
> 552 {
> 553         struct pcie_link_state *link;
> 554         int blacklist = !!pcie_aspm_sanity_check(pdev);
> 555
> 556         if (!aspm_support_enabled) {
> 557                 dev_info(&pdev->dev, "%s:%d\n", __func__, __LINE__);
> 558                 return;
> 559         }
> 560
> 561         if (pdev->link_state) {
> 562                 dev_info(&pdev->dev, "%s:%d\n", __func__, __LINE__);
> 563                 return;
> 564         }
> 565         dev_info(&pdev->dev, "%s:%d\n", __func__, __LINE__);
> 
> 
> 551 void pcie_aspm_init_link_state(struct pci_dev *pdev)
> 552 {
> ...
> 
> 607          * At this stage drivers haven't had an opportunity to change the
> 608          * link policy setting. Enabling ASPM on broken hardware can cripple
> 609          * it even before the driver has had a chance to disable ASPM, so
> 610          * default to a safe level right now. If we're enabling ASPM beyond
> 611          * the BIOS's expectation, we'll do so once pci_enable_device() is
> 612          * called.
> 613          */
> 614         if (aspm_policy != POLICY_POWERSAVE) {
> 615                 pcie_config_aspm_path(link);
> 616                 pcie_set_clkpm(link, policy_to_clkpm_state(link));
> 617                 dev_info(&pdev->dev, "%s:%d\n", __func__, __LINE__);
> 618         } else {
> 619                 dev_info(&pdev->dev, "%s:%d\n", __func__, __LINE__);
> 620         }
> 
> 
> 
> 

Here is the exit path:

652 /* @pdev: the endpoint device */
653 void pcie_aspm_exit_link_state(struct pci_dev *pdev)
654 {
655         struct pci_dev *parent = pdev->bus->self;
656         struct pcie_link_state *link, *root, *parent_link;
657
658         if (!parent || !parent->link_state) {
659                 dev_info(&pdev->dev, "%s:%d\n", __func__, __LINE__);
660                 return;
661         }
662         dev_info(&pdev->dev, "%s:%d\n", __func__, __LINE__);


-- 
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.
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux