if (!bcm_enet_shared_base[0])
                return -ENODEV;
 
-       res_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        res_irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
        res_irq_rx = platform_get_resource(pdev, IORESOURCE_IRQ, 1);
        res_irq_tx = platform_get_resource(pdev, IORESOURCE_IRQ, 2);
-       if (!res_mem || !res_irq || !res_irq_rx || !res_irq_tx)
+       if (!res_irq || !res_irq_rx || !res_irq_tx)
                return -ENODEV;
 
        ret = 0;
        if (ret)
                goto out;
 
-       priv->base = devm_request_and_ioremap(&pdev->dev, res_mem);
-       if (priv->base == NULL) {
-               ret = -ENOMEM;
+       res_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+       priv->base = devm_ioremap_resource(&pdev->dev, res_mem);
+       if (IS_ERR(priv->base)) {
+               ret = PTR_ERR(priv->base);
                goto out;
        }