Commit 0d70af3c authored by Russ Weight's avatar Russ Weight Committed by Moritz Fischer
Browse files

fpga: bridge: Use standard dev_release for class driver



The FPGA bridge class driver data structure is being treated as a
managed resource instead of using the standard dev_release call-back
function to release the class data structure. This change removes
the managed resource code and combines the create() and register()
functions into a single register() function.

Signed-off-by: default avatarRuss Weight <russell.h.weight@intel.com>
Reviewed-by: default avatarXu Yilun <yilun.xu@intel.com>
Acked-by: default avatarXu Yilun <yilun.xu@intel.com>
Signed-off-by: default avatarMoritz Fischer <mdf@kernel.org>
parent 4ba0b2c2
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -6,8 +6,7 @@ API to implement a new FPGA bridge

* struct fpga_bridge - The FPGA Bridge structure
* struct fpga_bridge_ops - Low level Bridge driver ops
* devm_fpga_bridge_create() - Allocate and init a bridge struct
* fpga_bridge_register() - Register a bridge
* fpga_bridge_register() - Create and register a bridge
* fpga_bridge_unregister() - Unregister a bridge

.. kernel-doc:: include/linux/fpga/fpga-bridge.h
@@ -16,9 +15,6 @@ API to implement a new FPGA bridge
.. kernel-doc:: include/linux/fpga/fpga-bridge.h
   :functions: fpga_bridge_ops

.. kernel-doc:: drivers/fpga/fpga-bridge.c
   :functions: devm_fpga_bridge_create

.. kernel-doc:: drivers/fpga/fpga-bridge.c
   :functions: fpga_bridge_register

+4 −8
Original line number Diff line number Diff line
@@ -121,17 +121,13 @@ static int alt_fpga_bridge_probe(struct platform_device *pdev)
	/* Get f2s bridge configuration saved in handoff register */
	regmap_read(sysmgr, SYSMGR_ISWGRP_HANDOFF3, &priv->mask);

	br = devm_fpga_bridge_create(dev, F2S_BRIDGE_NAME,
	br = fpga_bridge_register(dev, F2S_BRIDGE_NAME,
				  &altera_fpga2sdram_br_ops, priv);
	if (!br)
		return -ENOMEM;
	if (IS_ERR(br))
		return PTR_ERR(br);

	platform_set_drvdata(pdev, br);

	ret = fpga_bridge_register(br);
	if (ret)
		return ret;

	dev_info(dev, "driver initialized with handoff %08x\n", priv->mask);

	if (!of_property_read_u32(dev->of_node, "bridge-enable", &enable)) {
+5 −5
Original line number Diff line number Diff line
@@ -246,14 +246,14 @@ static int altera_freeze_br_probe(struct platform_device *pdev)

	priv->base_addr = base_addr;

	br = devm_fpga_bridge_create(dev, FREEZE_BRIDGE_NAME,
	br = fpga_bridge_register(dev, FREEZE_BRIDGE_NAME,
				  &altera_freeze_br_br_ops, priv);
	if (!br)
		return -ENOMEM;
	if (IS_ERR(br))
		return PTR_ERR(br);

	platform_set_drvdata(pdev, br);

	return fpga_bridge_register(br);
	return 0;
}

static int altera_freeze_br_remove(struct platform_device *pdev)
+4 −8
Original line number Diff line number Diff line
@@ -180,19 +180,15 @@ static int alt_fpga_bridge_probe(struct platform_device *pdev)
		}
	}

	br = devm_fpga_bridge_create(dev, priv->name,
	br = fpga_bridge_register(dev, priv->name,
				  &altera_hps2fpga_br_ops, priv);
	if (!br) {
		ret = -ENOMEM;
	if (IS_ERR(br)) {
		ret = PTR_ERR(br);
		goto err;
	}

	platform_set_drvdata(pdev, br);

	ret = fpga_bridge_register(br);
	if (ret)
		goto err;

	return 0;

err:
+5 −5
Original line number Diff line number Diff line
@@ -68,14 +68,14 @@ static int fme_br_probe(struct platform_device *pdev)

	priv->pdata = dev_get_platdata(dev);

	br = devm_fpga_bridge_create(dev, "DFL FPGA FME Bridge",
	br = fpga_bridge_register(dev, "DFL FPGA FME Bridge",
				  &fme_bridge_ops, priv);
	if (!br)
		return -ENOMEM;
	if (IS_ERR(br))
		return PTR_ERR(br);

	platform_set_drvdata(pdev, br);

	return fpga_bridge_register(br);
	return 0;
}

static int fme_br_remove(struct platform_device *pdev)
Loading