--- initial
+++ final
@@ -1,96 +1,96 @@
 static int xgene_ahci_probe(struct platform_device *pdev) {
   struct device *dev = &pdev->dev;
   struct ahci_host_priv *hpriv;
   struct xgene_ahci_context *ctx;
   struct resource *res;
   const struct of_device_id *of_devid;
   enum xgene_ahci_version version = XGENE_AHCI_V1;
   const struct ata_port_info *ppi[] = {&xgene_ahci_v1_port_info, &xgene_ahci_v2_port_info};
   int rc;
-  hpriv = ahci_platform_get_resources(pdev);
+  hpriv = ahci_platform_get_resources(pdev, 0);
   if (IS_ERR(hpriv)) return PTR_ERR(hpriv);
   ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
   if (!ctx) return -ENOMEM;
   hpriv->plat_data = ctx;
   ctx->hpriv = hpriv;
   ctx->dev = dev;
   /* Retrieve the IP core resource */
   res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
   ctx->csr_core = devm_ioremap_resource(dev, res);
   if (IS_ERR(ctx->csr_core)) return PTR_ERR(ctx->csr_core);
   /* Retrieve the IP diagnostic resource */
   res = platform_get_resource(pdev, IORESOURCE_MEM, 2);
   ctx->csr_diag = devm_ioremap_resource(dev, res);
   if (IS_ERR(ctx->csr_diag)) return PTR_ERR(ctx->csr_diag);
   /* Retrieve the IP AXI resource */
   res = platform_get_resource(pdev, IORESOURCE_MEM, 3);
   ctx->csr_axi = devm_ioremap_resource(dev, res);
   if (IS_ERR(ctx->csr_axi)) return PTR_ERR(ctx->csr_axi);
   /* Retrieve the optional IP mux resource */
   res = platform_get_resource(pdev, IORESOURCE_MEM, 4);
   if (res) {
     void __iomem *csr = devm_ioremap_resource(dev, res);
     if (IS_ERR(csr)) return PTR_ERR(csr);
     ctx->csr_mux = csr;
   }
   of_devid = of_match_device(xgene_ahci_of_match, dev);
   if (of_devid) {
     if (of_devid->data) version = (enum xgene_ahci_version)of_devid->data;
   }
 #ifdef CONFIG_ACPI
   else {
     const struct acpi_device_id *acpi_id;
     struct acpi_device_info *info;
     acpi_status status;
     acpi_id = acpi_match_device(xgene_ahci_acpi_match, &pdev->dev);
     if (!acpi_id) {
       dev_warn(&pdev->dev, "No node entry in ACPI table. Assume version1\n");
       version = XGENE_AHCI_V1;
     } else if (acpi_id->driver_data) {
       version = (enum xgene_ahci_version)acpi_id->driver_data;
       status = acpi_get_object_info(ACPI_HANDLE(&pdev->dev), &info);
       if (ACPI_FAILURE(status)) {
         dev_warn(&pdev->dev, "%s: Error reading device info. Assume version1\n", __func__);
         version = XGENE_AHCI_V1;
       } else {
         if (info->valid & ACPI_VALID_CID) version = XGENE_AHCI_V2;
         kfree(info);
       }
     }
   }
 #endif
   dev_dbg(dev, "VAddr 0x%p Mmio VAddr 0x%p\n", ctx->csr_core, hpriv->mmio);
   /* Select ATA */
   if ((rc = xgene_ahci_mux_select(ctx))) {
     dev_err(dev, "SATA mux selection failed error %d\n", rc);
     return -ENODEV;
   }
   if (xgene_ahci_is_memram_inited(ctx)) {
     dev_info(dev, "skip clock and PHY initialization\n");
     goto skip_clk_phy;
   }
   /* Due to errata, HW requires full toggle transition */
   rc = ahci_platform_enable_clks(hpriv);
   if (rc) goto disable_resources;
   ahci_platform_disable_clks(hpriv);
   rc = ahci_platform_enable_resources(hpriv);
   if (rc) goto disable_resources;
   /* Configure the host controller */
   xgene_ahci_hw_init(hpriv);
 skip_clk_phy:
   switch (version) {
   case XGENE_AHCI_V1: hpriv->flags = AHCI_HFLAG_NO_NCQ; break;
   case XGENE_AHCI_V2:
     hpriv->flags |= AHCI_HFLAG_YES_FBS;
     hpriv->irq_handler = xgene_ahci_irq_intr;
     break;
   default: break;
   }
   rc = ahci_platform_init_host(pdev, hpriv, ppi[version - 1], &ahci_platform_sht);
   if (rc) goto disable_resources;
   dev_dbg(dev, "X-Gene SATA host controller initialized\n");
   return 0;
 disable_resources:
   ahci_platform_disable_resources(hpriv);
   return rc;
 }<sep>@@
expression pdev;
@@
ahci_platform_get_resources(pdev
+  , 0
   )