/* AHCI controllers often implement SFF compatible interface.
         * Grab all PCI BARs just in case.
         */
-       rc = pcim_iomap_regions_request_all(pdev, 1 << AHCI_PCI_BAR, DRV_NAME);
+       rc = pcim_request_all_regions(pdev, DRV_NAME);
        if (rc == -EBUSY)
                pcim_pin_device(pdev);
        if (rc)
        if (!(hpriv->flags & AHCI_HFLAG_NO_MSI))
                pci_enable_msi(pdev);
 
-       hpriv->mmio = pcim_iomap_table(pdev)[AHCI_PCI_BAR];
+       hpriv->mmio = pcim_iomap(pdev, AHCI_PCI_BAR, 0);
+       if (!hpriv->mmio)
+               return -ENOMEM;
 
        /* save initial config */
        ahci_save_initial_config(&pdev->dev, hpriv);
 
        /* AHCI controllers often implement SFF compatible interface.
         * Grab all PCI BARs just in case.
         */
-       rc = pcim_iomap_regions_request_all(pdev, 1 << ahci_pci_bar, DRV_NAME);
+       rc = pcim_request_all_regions(pdev, DRV_NAME);
        if (rc == -EBUSY)
                pcim_pin_device(pdev);
        if (rc)
        if (ahci_sb600_enable_64bit(pdev))
                hpriv->flags &= ~AHCI_HFLAG_32BIT_ONLY;
 
-       hpriv->mmio = pcim_iomap_table(pdev)[ahci_pci_bar];
+       hpriv->mmio = pcim_iomap(pdev, ahci_pci_bar, 0);
+       if (!hpriv->mmio)
+               return -ENOMEM;
 
        /* detect remapped nvme devices */
        ahci_remap_check(pdev, ahci_pci_bar, hpriv);