]> Git Repo - linux.git/blobdiff - drivers/fpga/socfpga-a10.c
mfd: cros-ec: Increase maximum mkbp event size
[linux.git] / drivers / fpga / socfpga-a10.c
index a46e343a5b723cd828c54d52815c3ece8afa6ad7..be30c48eb6e492175150130d7bf5d866ea6460e6 100644 (file)
@@ -1,21 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * FPGA Manager Driver for Altera Arria10 SoCFPGA
  *
  * Copyright (C) 2015-2016 Altera Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-
 #include <linux/clk.h>
 #include <linux/device.h>
 #include <linux/delay.h>
@@ -482,6 +470,7 @@ static int socfpga_a10_fpga_probe(struct platform_device *pdev)
        struct device *dev = &pdev->dev;
        struct a10_fpga_priv *priv;
        void __iomem *reg_base;
+       struct fpga_manager *mgr;
        struct resource *res;
        int ret;
 
@@ -519,9 +508,16 @@ static int socfpga_a10_fpga_probe(struct platform_device *pdev)
                return -EBUSY;
        }
 
-       ret = fpga_mgr_register(dev, "SoCFPGA Arria10 FPGA Manager",
-                                &socfpga_a10_fpga_mgr_ops, priv);
+       mgr = fpga_mgr_create(dev, "SoCFPGA Arria10 FPGA Manager",
+                             &socfpga_a10_fpga_mgr_ops, priv);
+       if (!mgr)
+               return -ENOMEM;
+
+       platform_set_drvdata(pdev, mgr);
+
+       ret = fpga_mgr_register(mgr);
        if (ret) {
+               fpga_mgr_free(mgr);
                clk_disable_unprepare(priv->clk);
                return ret;
        }
@@ -534,7 +530,7 @@ static int socfpga_a10_fpga_remove(struct platform_device *pdev)
        struct fpga_manager *mgr = platform_get_drvdata(pdev);
        struct a10_fpga_priv *priv = mgr->priv;
 
-       fpga_mgr_unregister(&pdev->dev);
+       fpga_mgr_unregister(mgr);
        clk_disable_unprepare(priv->clk);
 
        return 0;
This page took 0.03326 seconds and 4 git commands to generate.