On Wed, Aug 28, 2024 at 04:07:05PM -0500, Bjorn Helgaas wrote: > On Wed, Aug 28, 2024 at 09:22:17PM +0530, Manivannan Sadhasivam wrote: > > On Tue, Aug 20, 2024 at 08:45:59PM -0500, Bjorn Helgaas wrote: > > > On Fri, Aug 02, 2024 at 11:25:02AM +0530, Manivannan Sadhasivam via B4 Relay wrote: > > > > From: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> > > > > > > > > Currently, there is no proper distinction between D3Hot and D3Cold while > > > > handling the power management for PCI bridges. For instance, > > > > pci_bridge_d3_allowed() API decides whether it is allowed to put the > > > > bridge in D3, but it doesn't explicitly specify whether D3Hot or D3Cold > > > > is allowed in a scenario. This often leads to confusion and may be prone > > > > to errors. > > > > > > > > So let's split the D3Hot and D3Cold handling where possible. The current > > > > pci_bridge_d3_allowed() API is now split into pci_bridge_d3hot_allowed() > > > > and pci_bridge_d3cold_allowed() APIs and used in relevant places. > > > > > > s/So let's split/Split/ > > > > > > > Also, pci_bridge_d3_update() API is now renamed to > > > > pci_bridge_d3cold_update() since it was only used to check the possibility > > > > of D3Cold. > > > > > > > > Note that it is assumed that only D3Hot needs to be checked while > > > > transitioning the bridge during runtime PM and D3Cold in other places. In > > > > the ACPI case, wakeup is now only enabled if both D3Hot and D3Cold are > > > > allowed for the bridge. > > > > > > > > Still, there are places where just 'd3' is used opaquely, but those are > > > > hard to distinguish, hence left for future cleanups. > > > > > > The spec does use "D3Hot/D3Cold" (with Hot/Cold capitalized and > > > subscripted), but most Linux doc and comments use "D3hot" and > > > "D3cold", so I think we should stick with the Linux convention (it's > > > not 100%, but it's a pretty big majority). > > > > > > > - if (pci_dev->bridge_d3_allowed) > > > > + if (pci_dev->bridge_d3cold_allowed && pci_dev->bridge_d3hot_allowed) > > > > > > Much of this patch is renames that could be easily reviewed. But > > > there are a few things like this that are not simple renames. Can you > > > split out these non-rename things to their own patch(es) with their > > > own explanations? > > > > I can, but I do not want these cleanups/refactoring to delay merging > > the patch 4. Are you OK if I just send it standalone and work on the > > refactoring as a separate series? > > You mean to send patch 4/4 standalone, and do the rest separately? > That sounds reasonable to me. Ack, thanks. - Mani -- மணிவண்ணன் சதாசிவம்