aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/fpga/altera-pr-ip-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/fpga/altera-pr-ip-core.c')
-rw-r--r--drivers/fpga/altera-pr-ip-core.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/fpga/altera-pr-ip-core.c b/drivers/fpga/altera-pr-ip-core.c
index 65e0b6a2c031..a7a3bf0b5202 100644
--- a/drivers/fpga/altera-pr-ip-core.c
+++ b/drivers/fpga/altera-pr-ip-core.c
@@ -177,7 +177,6 @@ int alt_pr_register(struct device *dev, void __iomem *reg_base)
177{ 177{
178 struct alt_pr_priv *priv; 178 struct alt_pr_priv *priv;
179 struct fpga_manager *mgr; 179 struct fpga_manager *mgr;
180 int ret;
181 u32 val; 180 u32 val;
182 181
183 priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); 182 priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
@@ -192,17 +191,13 @@ int alt_pr_register(struct device *dev, void __iomem *reg_base)
192 (val & ALT_PR_CSR_STATUS_MSK) >> ALT_PR_CSR_STATUS_SFT, 191 (val & ALT_PR_CSR_STATUS_MSK) >> ALT_PR_CSR_STATUS_SFT,
193 (int)(val & ALT_PR_CSR_PR_START)); 192 (int)(val & ALT_PR_CSR_PR_START));
194 193
195 mgr = fpga_mgr_create(dev, dev_name(dev), &alt_pr_ops, priv); 194 mgr = devm_fpga_mgr_create(dev, dev_name(dev), &alt_pr_ops, priv);
196 if (!mgr) 195 if (!mgr)
197 return -ENOMEM; 196 return -ENOMEM;
198 197
199 dev_set_drvdata(dev, mgr); 198 dev_set_drvdata(dev, mgr);
200 199
201 ret = fpga_mgr_register(mgr); 200 return fpga_mgr_register(mgr);
202 if (ret)
203 fpga_mgr_free(mgr);
204
205 return ret;
206} 201}
207EXPORT_SYMBOL_GPL(alt_pr_register); 202EXPORT_SYMBOL_GPL(alt_pr_register);
208 203