PCI/PM: Rearrange pci_update_current_state()
Save one config space access in pci_update_current_state() by testing the retrieved PCI_PM_CTRL register value against PCI_POSSIBLE_ERROR() instead of invoking pci_device_is_present() separately. While at it, drop a pair of unnecessary parens. No expected functional impact. Link: https://lore.kernel.org/r/1917095.PYKUYFuaPT@kreacher Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
This commit is contained in:
parent
8221ecd4e4
commit
9c384ddd6e
|
@ -1201,14 +1201,17 @@ static int pci_raw_set_power_state(struct pci_dev *dev, pci_power_t state)
|
|||
*/
|
||||
void pci_update_current_state(struct pci_dev *dev, pci_power_t state)
|
||||
{
|
||||
if (platform_pci_get_power_state(dev) == PCI_D3cold ||
|
||||
!pci_device_is_present(dev)) {
|
||||
if (platform_pci_get_power_state(dev) == PCI_D3cold) {
|
||||
dev->current_state = PCI_D3cold;
|
||||
} else if (dev->pm_cap) {
|
||||
u16 pmcsr;
|
||||
|
||||
pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr);
|
||||
dev->current_state = (pmcsr & PCI_PM_CTRL_STATE_MASK);
|
||||
if (PCI_POSSIBLE_ERROR(pmcsr)) {
|
||||
dev->current_state = PCI_D3cold;
|
||||
return;
|
||||
}
|
||||
dev->current_state = pmcsr & PCI_PM_CTRL_STATE_MASK;
|
||||
} else {
|
||||
dev->current_state = state;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue