From: Bjorn Helgaas <helgaas@kernel.org> To: Sinan Kaya <okaya@codeaurora.org> Cc: linux-pci@vger.kernel.org, timur@codeaurora.org, mayurkumar.patel@intel.com, David Daney <david.daney@cavium.com>, linux-arm-msm@vger.kernel.org, Shawn Lin <shawn.lin@rock-chips.com>, linux-kernel@vger.kernel.org, Julia Lawall <Julia.Lawall@lip6.fr>, Bjorn Helgaas <bhelgaas@google.com>, Rajat Jain <rajatja@google.com>, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH V8 1/5] PCI/ASPM: introduce pci_aspm_init() and add to pci_init_capabilities() Date: Thu, 13 Apr 2017 15:51:25 -0500 [thread overview] Message-ID: <20170413205125.GC28316@bhelgaas-glaptop.roam.corp.google.com> (raw) In-Reply-To: <1491627351-1111-2-git-send-email-okaya@codeaurora.org> Hi Sinan, On Sat, Apr 08, 2017 at 12:55:47AM -0400, Sinan Kaya wrote: > We need a callback from pci_init_capabilities function for every > single new PCI device that is currently being added. > > pci_aspm_init() will be used to save the power on state of the HW. > > Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=194895 > Signed-off-by: Sinan Kaya <okaya@codeaurora.org> > --- > drivers/pci/pcie/aspm.c | 10 ++++++++++ > drivers/pci/probe.c | 3 +++ > include/linux/pci.h | 2 ++ > 3 files changed, 15 insertions(+) > > diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c > index 1dfa10c..dc36717 100644 > --- a/drivers/pci/pcie/aspm.c > +++ b/drivers/pci/pcie/aspm.c > @@ -827,6 +827,16 @@ static struct pcie_link_state *alloc_pcie_link_state(struct pci_dev *pdev) > } > > /* > + * pci_aspm_init: Initiate PCI express link state. > + * It is called from device_add for every single pci device. > + * @pdev: all pci devices > + */ > +int pci_aspm_init(struct pci_dev *pdev) > +{ > + return 0; > +} > + > +/* > * pcie_aspm_init_link_state: Initiate PCI express link state. > * It is called after the pcie and its children devices are scanned. > * @pdev: the root port or switch downstream port > diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c > index dfc9a27..1e19364 100644 > --- a/drivers/pci/probe.c > +++ b/drivers/pci/probe.c > @@ -1847,6 +1847,9 @@ static void pci_init_capabilities(struct pci_dev *dev) > > /* Advanced Error Reporting */ > pci_aer_init(dev); > + > + /* Active State Power Management */ > + pci_aspm_init(dev); > } > > /* > diff --git a/include/linux/pci.h b/include/linux/pci.h > index eb3da1a..8828dd7 100644 > --- a/include/linux/pci.h > +++ b/include/linux/pci.h > @@ -1396,8 +1396,10 @@ static inline int pci_irq_get_node(struct pci_dev *pdev, int vec) > > #ifdef CONFIG_PCIEASPM > bool pcie_aspm_support_enabled(void); > +int pci_aspm_init(struct pci_dev *pdev); I think these can go in drivers/pci/pci.h instead of the public include/linux/pci.h. There's no ASPM section in drivers/pci/pci.h yet, but I think we should add one. It looks like the following things from include/linux/pci-aspm.h could be moved there as well, since they're only used by the PCI core: void pcie_aspm_init_link_state(struct pci_dev *pdev); void pcie_aspm_exit_link_state(struct pci_dev *pdev); void pcie_aspm_pm_state_change(struct pci_dev *pdev); void pcie_aspm_powersave_config_link(struct pci_dev *pdev); void pcie_aspm_create_sysfs_dev_files(struct pci_dev *pdev); void pcie_aspm_remove_sysfs_dev_files(struct pci_dev *pdev); This would be a separate patch. > #else > static inline bool pcie_aspm_support_enabled(void) { return false; } > +static inline int pci_aspm_init(struct pci_dev *pdev) { return -ENODEV; } > #endif > > #ifdef CONFIG_PCIEAER > -- > 1.9.1 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: helgaas@kernel.org (Bjorn Helgaas) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH V8 1/5] PCI/ASPM: introduce pci_aspm_init() and add to pci_init_capabilities() Date: Thu, 13 Apr 2017 15:51:25 -0500 [thread overview] Message-ID: <20170413205125.GC28316@bhelgaas-glaptop.roam.corp.google.com> (raw) In-Reply-To: <1491627351-1111-2-git-send-email-okaya@codeaurora.org> Hi Sinan, On Sat, Apr 08, 2017 at 12:55:47AM -0400, Sinan Kaya wrote: > We need a callback from pci_init_capabilities function for every > single new PCI device that is currently being added. > > pci_aspm_init() will be used to save the power on state of the HW. > > Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=194895 > Signed-off-by: Sinan Kaya <okaya@codeaurora.org> > --- > drivers/pci/pcie/aspm.c | 10 ++++++++++ > drivers/pci/probe.c | 3 +++ > include/linux/pci.h | 2 ++ > 3 files changed, 15 insertions(+) > > diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c > index 1dfa10c..dc36717 100644 > --- a/drivers/pci/pcie/aspm.c > +++ b/drivers/pci/pcie/aspm.c > @@ -827,6 +827,16 @@ static struct pcie_link_state *alloc_pcie_link_state(struct pci_dev *pdev) > } > > /* > + * pci_aspm_init: Initiate PCI express link state. > + * It is called from device_add for every single pci device. > + * @pdev: all pci devices > + */ > +int pci_aspm_init(struct pci_dev *pdev) > +{ > + return 0; > +} > + > +/* > * pcie_aspm_init_link_state: Initiate PCI express link state. > * It is called after the pcie and its children devices are scanned. > * @pdev: the root port or switch downstream port > diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c > index dfc9a27..1e19364 100644 > --- a/drivers/pci/probe.c > +++ b/drivers/pci/probe.c > @@ -1847,6 +1847,9 @@ static void pci_init_capabilities(struct pci_dev *dev) > > /* Advanced Error Reporting */ > pci_aer_init(dev); > + > + /* Active State Power Management */ > + pci_aspm_init(dev); > } > > /* > diff --git a/include/linux/pci.h b/include/linux/pci.h > index eb3da1a..8828dd7 100644 > --- a/include/linux/pci.h > +++ b/include/linux/pci.h > @@ -1396,8 +1396,10 @@ static inline int pci_irq_get_node(struct pci_dev *pdev, int vec) > > #ifdef CONFIG_PCIEASPM > bool pcie_aspm_support_enabled(void); > +int pci_aspm_init(struct pci_dev *pdev); I think these can go in drivers/pci/pci.h instead of the public include/linux/pci.h. There's no ASPM section in drivers/pci/pci.h yet, but I think we should add one. It looks like the following things from include/linux/pci-aspm.h could be moved there as well, since they're only used by the PCI core: void pcie_aspm_init_link_state(struct pci_dev *pdev); void pcie_aspm_exit_link_state(struct pci_dev *pdev); void pcie_aspm_pm_state_change(struct pci_dev *pdev); void pcie_aspm_powersave_config_link(struct pci_dev *pdev); void pcie_aspm_create_sysfs_dev_files(struct pci_dev *pdev); void pcie_aspm_remove_sysfs_dev_files(struct pci_dev *pdev); This would be a separate patch. > #else > static inline bool pcie_aspm_support_enabled(void) { return false; } > +static inline int pci_aspm_init(struct pci_dev *pdev) { return -ENODEV; } > #endif > > #ifdef CONFIG_PCIEAER > -- > 1.9.1 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel at lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2017-04-13 20:51 UTC|newest] Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-04-08 4:55 [PATCH V8 0/5] PCI/ASPM: reconfigure ASPM following hotplug for POLICY_DEFAULT Sinan Kaya 2017-04-08 4:55 ` Sinan Kaya 2017-04-08 4:55 ` Sinan Kaya 2017-04-08 4:55 ` [PATCH V8 1/5] PCI/ASPM: introduce pci_aspm_init() and add to pci_init_capabilities() Sinan Kaya 2017-04-08 4:55 ` Sinan Kaya 2017-04-08 4:55 ` Sinan Kaya 2017-04-13 20:51 ` Bjorn Helgaas [this message] 2017-04-13 20:51 ` Bjorn Helgaas 2017-04-14 19:10 ` Sinan Kaya 2017-04-14 19:10 ` Sinan Kaya 2017-04-08 4:55 ` [PATCH V8 2/5] PCI/ASPM: split pci_aspm_init() into two Sinan Kaya 2017-04-08 4:55 ` Sinan Kaya 2017-04-08 4:55 ` Sinan Kaya 2017-04-12 19:16 ` Rajat Jain 2017-04-12 19:16 ` Rajat Jain 2017-04-13 18:25 ` Bjorn Helgaas 2017-04-13 18:25 ` Bjorn Helgaas 2017-04-13 18:25 ` Bjorn Helgaas 2017-04-14 19:10 ` Sinan Kaya 2017-04-14 19:10 ` Sinan Kaya 2017-04-14 19:10 ` Sinan Kaya 2017-04-08 4:55 ` [PATCH V8 3/5] PCI/ASPM: add init hook to device_add Sinan Kaya 2017-04-08 4:55 ` Sinan Kaya 2017-04-08 4:55 ` Sinan Kaya 2017-04-13 20:48 ` Bjorn Helgaas 2017-04-13 20:48 ` Bjorn Helgaas 2017-04-13 20:48 ` Bjorn Helgaas 2017-04-13 21:02 ` Bjorn Helgaas 2017-04-13 21:02 ` Bjorn Helgaas 2017-04-13 21:02 ` Bjorn Helgaas 2017-04-14 1:19 ` Sinan Kaya 2017-04-14 1:19 ` Sinan Kaya 2017-04-14 1:30 ` Bjorn Helgaas 2017-04-14 1:30 ` Bjorn Helgaas 2017-04-08 4:55 ` [PATCH V8 4/5] PCI/ASPM: save power on values during bridge init Sinan Kaya 2017-04-08 4:55 ` Sinan Kaya 2017-04-08 4:55 ` Sinan Kaya 2017-04-12 19:19 ` Rajat Jain 2017-04-12 19:19 ` Rajat Jain 2017-04-12 19:19 ` Rajat Jain 2017-04-14 19:12 ` Sinan Kaya 2017-04-14 19:12 ` Sinan Kaya 2017-04-14 19:12 ` Sinan Kaya 2017-04-14 21:44 ` Bjorn Helgaas 2017-04-14 21:44 ` Bjorn Helgaas 2017-04-14 21:44 ` Bjorn Helgaas 2017-04-14 22:17 ` Sinan Kaya 2017-04-14 22:17 ` Sinan Kaya 2017-04-17 16:38 ` Bjorn Helgaas 2017-04-17 16:38 ` Bjorn Helgaas 2017-04-17 17:50 ` Sinan Kaya 2017-04-17 17:50 ` Sinan Kaya 2017-04-21 7:46 ` Patel, Mayurkumar 2017-04-21 7:46 ` Patel, Mayurkumar 2017-04-21 7:46 ` Patel, Mayurkumar 2017-04-21 7:46 ` Patel, Mayurkumar 2017-04-21 13:50 ` Sinan Kaya 2017-04-21 13:50 ` Sinan Kaya 2017-04-21 14:13 ` Patel, Mayurkumar 2017-04-21 14:13 ` Patel, Mayurkumar 2017-04-21 14:13 ` Patel, Mayurkumar 2017-04-21 14:13 ` Patel, Mayurkumar 2017-04-25 18:45 ` Bjorn Helgaas 2017-04-25 18:45 ` Bjorn Helgaas 2017-05-02 12:02 ` Patel, Mayurkumar 2017-05-02 12:02 ` Patel, Mayurkumar 2017-05-02 12:02 ` Patel, Mayurkumar 2017-05-03 21:10 ` Bjorn Helgaas 2017-05-03 21:10 ` Bjorn Helgaas 2017-05-03 21:10 ` Bjorn Helgaas 2017-05-15 9:10 ` Patel, Mayurkumar 2017-05-15 9:10 ` Patel, Mayurkumar 2017-05-15 9:10 ` Patel, Mayurkumar 2017-05-15 9:10 ` Patel, Mayurkumar 2017-04-08 4:55 ` [PATCH V8 5/5] PCI/ASPM: move link_state cleanup to bridge remove Sinan Kaya 2017-04-08 4:55 ` Sinan Kaya 2017-04-08 4:55 ` Sinan Kaya 2017-04-10 11:37 ` [PATCH V8 0/5] PCI/ASPM: reconfigure ASPM following hotplug for POLICY_DEFAULT Patel, Mayurkumar 2017-04-10 11:37 ` Patel, Mayurkumar 2017-04-10 11:37 ` Patel, Mayurkumar 2017-04-10 13:07 ` Sinan Kaya 2017-04-10 13:07 ` Sinan Kaya 2017-04-10 13:07 ` Sinan Kaya 2017-04-10 13:11 ` Patel, Mayurkumar 2017-04-10 13:11 ` Patel, Mayurkumar 2017-04-10 13:11 ` Patel, Mayurkumar 2017-04-11 21:19 ` Bjorn Helgaas 2017-04-11 21:19 ` Bjorn Helgaas 2017-04-11 21:19 ` Bjorn Helgaas 2017-04-11 21:27 ` Sinan Kaya 2017-04-11 21:27 ` Sinan Kaya 2017-04-11 22:41 ` Bjorn Helgaas 2017-04-11 22:41 ` Bjorn Helgaas 2017-04-11 22:41 ` Bjorn Helgaas
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170413205125.GC28316@bhelgaas-glaptop.roam.corp.google.com \ --to=helgaas@kernel.org \ --cc=Julia.Lawall@lip6.fr \ --cc=bhelgaas@google.com \ --cc=david.daney@cavium.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=mayurkumar.patel@intel.com \ --cc=okaya@codeaurora.org \ --cc=rajatja@google.com \ --cc=shawn.lin@rock-chips.com \ --cc=timur@codeaurora.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.