Commit 084181fe authored by Alan Tull's avatar Alan Tull Committed by Greg Kroah-Hartman
Browse files

fpga: mgr: add devm_fpga_mgr_create



Add devm_fpga_mgr_create() which is the managed
version of fpga_mgr_create().

Change current FPGA manager drivers to use
devm_fpga_mgr_create()

Signed-off-by: default avatarAlan Tull <atull@kernel.org>
Suggested-by: default avatarFederico Vaga <federico.vaga@cern.ch>
Acked-by: default avatarMoritz Fischer <mdf@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 1c87dc89
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -49,18 +49,14 @@ probe function calls fpga_mgr_register(), such as::
		 * them in priv
		 */

		mgr = fpga_mgr_create(dev, "Altera SOCFPGA FPGA Manager",
		mgr = devm_fpga_mgr_create(dev, "Altera SOCFPGA FPGA Manager",
					   &socfpga_fpga_ops, priv);
		if (!mgr)
			return -ENOMEM;

		platform_set_drvdata(pdev, mgr);

		ret = fpga_mgr_register(mgr);
		if (ret)
			fpga_mgr_free(mgr);

		return ret;
		return fpga_mgr_register(mgr);
	}

	static int socfpga_fpga_remove(struct platform_device *pdev)
@@ -169,6 +165,9 @@ API for implementing a new FPGA Manager driver
.. kernel-doc:: include/linux/fpga/fpga-mgr.h
   :functions: fpga_manager_ops

.. kernel-doc:: drivers/fpga/fpga-mgr.c
   :functions: devm_fpga_mgr_create

.. kernel-doc:: drivers/fpga/fpga-mgr.c
   :functions: fpga_mgr_create

+3 −5
Original line number Diff line number Diff line
@@ -453,7 +453,7 @@ static int altera_cvp_probe(struct pci_dev *pdev,
	snprintf(conf->mgr_name, sizeof(conf->mgr_name), "%s @%s",
		 ALTERA_CVP_MGR_NAME, pci_name(pdev));

	mgr = fpga_mgr_create(&pdev->dev, conf->mgr_name,
	mgr = devm_fpga_mgr_create(&pdev->dev, conf->mgr_name,
				   &altera_cvp_ops, conf);
	if (!mgr) {
		ret = -ENOMEM;
@@ -463,10 +463,8 @@ static int altera_cvp_probe(struct pci_dev *pdev,
	pci_set_drvdata(pdev, mgr);

	ret = fpga_mgr_register(mgr);
	if (ret) {
		fpga_mgr_free(mgr);
	if (ret)
		goto err_unmap;
	}

	ret = driver_create_file(&altera_cvp_driver.driver,
				 &driver_attr_chkcfg);
+2 −7
Original line number Diff line number Diff line
@@ -177,7 +177,6 @@ int alt_pr_register(struct device *dev, void __iomem *reg_base)
{
	struct alt_pr_priv *priv;
	struct fpga_manager *mgr;
	int ret;
	u32 val;

	priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
@@ -192,17 +191,13 @@ int alt_pr_register(struct device *dev, void __iomem *reg_base)
		(val & ALT_PR_CSR_STATUS_MSK) >> ALT_PR_CSR_STATUS_SFT,
		(int)(val & ALT_PR_CSR_PR_START));

	mgr = fpga_mgr_create(dev, dev_name(dev), &alt_pr_ops, priv);
	mgr = devm_fpga_mgr_create(dev, dev_name(dev), &alt_pr_ops, priv);
	if (!mgr)
		return -ENOMEM;

	dev_set_drvdata(dev, mgr);

	ret = fpga_mgr_register(mgr);
	if (ret)
		fpga_mgr_free(mgr);

	return ret;
	return fpga_mgr_register(mgr);
}
EXPORT_SYMBOL_GPL(alt_pr_register);

+3 −8
Original line number Diff line number Diff line
@@ -239,7 +239,6 @@ static int altera_ps_probe(struct spi_device *spi)
	struct altera_ps_conf *conf;
	const struct of_device_id *of_id;
	struct fpga_manager *mgr;
	int ret;

	conf = devm_kzalloc(&spi->dev, sizeof(*conf), GFP_KERNEL);
	if (!conf)
@@ -275,18 +274,14 @@ static int altera_ps_probe(struct spi_device *spi)
	snprintf(conf->mgr_name, sizeof(conf->mgr_name), "%s %s",
		 dev_driver_string(&spi->dev), dev_name(&spi->dev));

	mgr = fpga_mgr_create(&spi->dev, conf->mgr_name,
	mgr = devm_fpga_mgr_create(&spi->dev, conf->mgr_name,
				   &altera_ps_ops, conf);
	if (!mgr)
		return -ENOMEM;

	spi_set_drvdata(spi, mgr);

	ret = fpga_mgr_register(mgr);
	if (ret)
		fpga_mgr_free(mgr);

	return ret;
	return fpga_mgr_register(mgr);
}

static int altera_ps_remove(struct spi_device *spi)
+3 −8
Original line number Diff line number Diff line
@@ -287,7 +287,6 @@ static int fme_mgr_probe(struct platform_device *pdev)
	struct fme_mgr_priv *priv;
	struct fpga_manager *mgr;
	struct resource *res;
	int ret;

	priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
	if (!priv)
@@ -309,7 +308,7 @@ static int fme_mgr_probe(struct platform_device *pdev)

	fme_mgr_get_compat_id(priv->ioaddr, compat_id);

	mgr = fpga_mgr_create(dev, "DFL FME FPGA Manager",
	mgr = devm_fpga_mgr_create(dev, "DFL FME FPGA Manager",
				   &fme_mgr_ops, priv);
	if (!mgr)
		return -ENOMEM;
@@ -317,11 +316,7 @@ static int fme_mgr_probe(struct platform_device *pdev)
	mgr->compat_id = compat_id;
	platform_set_drvdata(pdev, mgr);

	ret = fpga_mgr_register(mgr);
	if (ret)
		fpga_mgr_free(mgr);

	return ret;
	return fpga_mgr_register(mgr);
}

static int fme_mgr_remove(struct platform_device *pdev)
Loading