]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/fpga/dfl-fme-region.c
Merge tag 'csky-for-linus-4.20' of https://github.com/c-sky/csky-linux
[linux.git] / drivers / fpga / dfl-fme-region.c
index 0b7e19c27c6ddc0beea61064c377d070e0a1b540..ec134ec93f08deea6b5bc872284489f3d71e5ecc 100644 (file)
@@ -14,6 +14,7 @@
  */
 
 #include <linux/module.h>
+#include <linux/fpga/fpga-mgr.h>
 #include <linux/fpga/fpga-region.h>
 
 #include "dfl-fme-pr.h"
@@ -38,7 +39,7 @@ static int fme_region_probe(struct platform_device *pdev)
        if (IS_ERR(mgr))
                return -EPROBE_DEFER;
 
-       region = fpga_region_create(dev, mgr, fme_region_get_bridges);
+       region = devm_fpga_region_create(dev, mgr, fme_region_get_bridges);
        if (!region) {
                ret = -ENOMEM;
                goto eprobe_mgr_put;
@@ -50,14 +51,12 @@ static int fme_region_probe(struct platform_device *pdev)
 
        ret = fpga_region_register(region);
        if (ret)
-               goto region_free;
+               goto eprobe_mgr_put;
 
        dev_dbg(dev, "DFL FME FPGA Region probed\n");
 
        return 0;
 
-region_free:
-       fpga_region_free(region);
 eprobe_mgr_put:
        fpga_mgr_put(mgr);
        return ret;
@@ -66,9 +65,10 @@ static int fme_region_probe(struct platform_device *pdev)
 static int fme_region_remove(struct platform_device *pdev)
 {
        struct fpga_region *region = dev_get_drvdata(&pdev->dev);
+       struct fpga_manager *mgr = region->mgr;
 
        fpga_region_unregister(region);
-       fpga_mgr_put(region->mgr);
+       fpga_mgr_put(mgr);
 
        return 0;
 }