Merge tag 'dmaengine-5.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul...
[platform/kernel/linux-starfive.git] / drivers / pci / pci.c
index 97c0f2e..1027f18 100644 (file)
@@ -1900,20 +1900,10 @@ static int pci_enable_device_flags(struct pci_dev *dev, unsigned long flags)
        int err;
        int i, bars = 0;
 
-       /*
-        * Power state could be unknown at this point, either due to a fresh
-        * boot or a device removal call.  So get the current power state
-        * so that things like MSI message writing will behave as expected
-        * (e.g. if the device really is in D0 at enable time).
-        */
-       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 (atomic_inc_return(&dev->enable_cnt) > 1)
+       if (atomic_inc_return(&dev->enable_cnt) > 1) {
+               pci_update_current_state(dev, dev->current_state);
                return 0;               /* already enabled */
+       }
 
        bridge = pci_upstream_bridge(dev);
        if (bridge)
@@ -4142,7 +4132,7 @@ void pci_unmap_iospace(struct resource *res)
 #if defined(PCI_IOBASE) && defined(CONFIG_MMU)
        unsigned long vaddr = (unsigned long)PCI_IOBASE + res->start;
 
-       unmap_kernel_range(vaddr, resource_size(res));
+       vunmap_range(vaddr, vaddr + resource_size(res));
 #endif
 }
 EXPORT_SYMBOL(pci_unmap_iospace);