Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 276f146a authored by Himangi Saraogi's avatar Himangi Saraogi Committed by Felipe Balbi
Browse files

usb: musb: davinci: use devm_ functions.



This patch moves data allocated using kzalloc to managed data allocated
using devm_kzalloc and cleans now unnecessary kfrees in probe and remove
functions. Also, a label is done away with and clk_get is replaced by it
corresponding devm version and the clk_puts are done away with. The
labels are renamed to make them ordered.

The following Coccinelle semantic patch was used for making the change:

@platform@
identifier p, probefn, removefn;
@@
struct platform_driver p = {
  .probe = probefn,
  .remove = removefn,
};

@prb@
identifier platform.probefn, pdev;
expression e, e1, e2;
@@
probefn(struct platform_device *pdev, ...) {
  <+...
- e = kzalloc(e1, e2)
+ e = devm_kzalloc(&pdev->dev, e1, e2)
  ...
?-kfree(e);
  ...+>
}

@rem depends on prb@
identifier platform.removefn;
expression e;
@@
removefn(...) {
  <...
- kfree(e);
  ...>
}

Signed-off-by: default avatarHimangi Saraogi <himangi774@gmail.com>
Acked-by: default avatarJulia Lawall <julia.lawall@lip6.fr>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 9f7b23ce
Loading
Loading
Loading
Loading
+6 −14
Original line number Original line Diff line number Diff line
@@ -519,23 +519,23 @@ static int davinci_probe(struct platform_device *pdev)


	int				ret = -ENOMEM;
	int				ret = -ENOMEM;


	glue = kzalloc(sizeof(*glue), GFP_KERNEL);
	glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL);
	if (!glue) {
	if (!glue) {
		dev_err(&pdev->dev, "failed to allocate glue context\n");
		dev_err(&pdev->dev, "failed to allocate glue context\n");
		goto err0;
		goto err0;
	}
	}


	clk = clk_get(&pdev->dev, "usb");
	clk = devm_clk_get(&pdev->dev, "usb");
	if (IS_ERR(clk)) {
	if (IS_ERR(clk)) {
		dev_err(&pdev->dev, "failed to get clock\n");
		dev_err(&pdev->dev, "failed to get clock\n");
		ret = PTR_ERR(clk);
		ret = PTR_ERR(clk);
		goto err3;
		goto err0;
	}
	}


	ret = clk_enable(clk);
	ret = clk_enable(clk);
	if (ret) {
	if (ret) {
		dev_err(&pdev->dev, "failed to enable clock\n");
		dev_err(&pdev->dev, "failed to enable clock\n");
		goto err4;
		goto err0;
	}
	}


	glue->dev			= &pdev->dev;
	glue->dev			= &pdev->dev;
@@ -579,20 +579,14 @@ static int davinci_probe(struct platform_device *pdev)
	if (IS_ERR(musb)) {
	if (IS_ERR(musb)) {
		ret = PTR_ERR(musb);
		ret = PTR_ERR(musb);
		dev_err(&pdev->dev, "failed to register musb device: %d\n", ret);
		dev_err(&pdev->dev, "failed to register musb device: %d\n", ret);
		goto err5;
		goto err1;
	}
	}


	return 0;
	return 0;


err5:
err1:
	clk_disable(clk);
	clk_disable(clk);


err4:
	clk_put(clk);

err3:
	kfree(glue);

err0:
err0:
	return ret;
	return ret;
}
}
@@ -604,8 +598,6 @@ static int davinci_remove(struct platform_device *pdev)
	platform_device_unregister(glue->musb);
	platform_device_unregister(glue->musb);
	usb_phy_generic_unregister();
	usb_phy_generic_unregister();
	clk_disable(glue->clk);
	clk_disable(glue->clk);
	clk_put(glue->clk);
	kfree(glue);


	return 0;
	return 0;
}
}