static int brcmstb_i2c_probe(struct platform_device *pdev)
 {
-       int rc = 0;
        struct brcmstb_i2c_dev *dev;
        struct i2c_adapter *adap;
-       struct resource *iomem;
        const char *int_name;
+       int rc;
 
        /* Allocate memory for private data structure */
        dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL);
        init_completion(&dev->done);
 
        /* Map hardware registers */
-       iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       dev->base = devm_ioremap_resource(dev->device, iomem);
-       if (IS_ERR(dev->base)) {
-               rc = -ENOMEM;
-               goto probe_errorout;
-       }
+       dev->base = devm_platform_ioremap_resource(pdev, 0);
+       if (IS_ERR(dev->base))
+               return PTR_ERR(dev->base);
 
        if (of_device_is_compatible(dev->device->of_node,
                                    "brcm,bcm2711-hdmi-i2c")) {
                rc = bcm2711_release_bsc(dev);
                if (rc)
-                       goto probe_errorout;
+                       return rc;
        }
 
        rc = of_property_read_string(dev->device->of_node, "interrupt-names",
        adap->dev.of_node = pdev->dev.of_node;
        rc = i2c_add_adapter(adap);
        if (rc)
-               goto probe_errorout;
+               return rc;
 
        dev_info(dev->device, "%s@%dhz registered in %s mode\n",
                 int_name ? int_name : " ", dev->clk_freq_hz,
                 (dev->irq >= 0) ? "interrupt" : "polling");
 
        return 0;
-
-probe_errorout:
-       return rc;
 }
 
 static void brcmstb_i2c_remove(struct platform_device *pdev)