Lines Matching +full:fpga +full:- +full:mgr
1 // SPDX-License-Identifier: GPL-2.0+
6 #include <linux/dma-mapping.h>
7 #include <linux/fpga/fpga-mgr.h>
13 #include <linux/firmware/xlnx-zynqmp.h>
19 * struct zynqmp_fpga_priv - Private data structure
28 static int zynqmp_fpga_ops_write_init(struct fpga_manager *mgr, in zynqmp_fpga_ops_write_init() argument
34 priv = mgr->priv; in zynqmp_fpga_ops_write_init()
35 priv->flags = info->flags; in zynqmp_fpga_ops_write_init()
40 static int zynqmp_fpga_ops_write(struct fpga_manager *mgr, in zynqmp_fpga_ops_write() argument
49 priv = mgr->priv; in zynqmp_fpga_ops_write()
51 kbuf = dma_alloc_coherent(priv->dev, size, &dma_addr, GFP_KERNEL); in zynqmp_fpga_ops_write()
53 return -ENOMEM; in zynqmp_fpga_ops_write()
59 if (priv->flags & FPGA_MGR_PARTIAL_RECONFIG) in zynqmp_fpga_ops_write()
64 dma_free_coherent(priv->dev, size, kbuf, dma_addr); in zynqmp_fpga_ops_write()
69 static int zynqmp_fpga_ops_write_complete(struct fpga_manager *mgr, in zynqmp_fpga_ops_write_complete() argument
75 static enum fpga_mgr_states zynqmp_fpga_ops_state(struct fpga_manager *mgr) in zynqmp_fpga_ops_state() argument
95 struct device *dev = &pdev->dev; in zynqmp_fpga_probe()
97 struct fpga_manager *mgr; in zynqmp_fpga_probe() local
102 return -ENOMEM; in zynqmp_fpga_probe()
104 priv->dev = dev; in zynqmp_fpga_probe()
106 mgr = devm_fpga_mgr_create(dev, "Xilinx ZynqMP FPGA Manager", in zynqmp_fpga_probe()
108 if (!mgr) in zynqmp_fpga_probe()
109 return -ENOMEM; in zynqmp_fpga_probe()
111 platform_set_drvdata(pdev, mgr); in zynqmp_fpga_probe()
113 ret = fpga_mgr_register(mgr); in zynqmp_fpga_probe()
115 dev_err(dev, "unable to register FPGA manager"); in zynqmp_fpga_probe()
124 struct fpga_manager *mgr = platform_get_drvdata(pdev); in zynqmp_fpga_remove() local
126 fpga_mgr_unregister(mgr); in zynqmp_fpga_remove()
132 { .compatible = "xlnx,zynqmp-pcap-fpga", },
150 MODULE_DESCRIPTION("Xilinx ZynqMp FPGA Manager");