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

Commit 7ee422dc authored by Magnus Damm's avatar Magnus Damm Committed by Samuel Ortiz
Browse files

tmio_mmc: Balance cell enable()/disable() calls



This patch adds cell->disable() calls to the tmio-mmc
probe() error handling and the remove() function.

Signed-off-by: default avatarMagnus Damm <damm@opensource.se>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent 707f0b2f
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -569,14 +569,14 @@ static int __devinit tmio_mmc_probe(struct platform_device *dev)
	if (ret >= 0)
		host->irq = ret;
	else
		goto unmap_ctl;
		goto cell_disable;

	disable_mmc_irqs(host, TMIO_MASK_ALL);

	ret = request_irq(host->irq, tmio_mmc_irq, IRQF_DISABLED |
		IRQF_TRIGGER_FALLING, dev_name(&dev->dev), host);
	if (ret)
		goto unmap_ctl;
		goto cell_disable;

	mmc_add_host(mmc);

@@ -588,6 +588,9 @@ static int __devinit tmio_mmc_probe(struct platform_device *dev)

	return 0;

cell_disable:
	if (cell->disable)
		cell->disable(dev);
unmap_ctl:
	iounmap(host->ctl);
host_free:
@@ -598,6 +601,7 @@ out:

static int __devexit tmio_mmc_remove(struct platform_device *dev)
{
	struct mfd_cell	*cell = (struct mfd_cell *)dev->dev.platform_data;
	struct mmc_host *mmc = platform_get_drvdata(dev);

	platform_set_drvdata(dev, NULL);
@@ -606,6 +610,8 @@ static int __devexit tmio_mmc_remove(struct platform_device *dev)
		struct tmio_mmc_host *host = mmc_priv(mmc);
		mmc_remove_host(mmc);
		free_irq(host->irq, host);
		if (cell->disable)
			cell->disable(dev);
		iounmap(host->ctl);
		mmc_free_host(mmc);
	}