On Fri, Mar 25, 2011 at 04:48:47PM +0800, Shawn Guo wrote:
The patch turns the common stuff in sdhci-pltfm.c into functions, and add device drivers their own .probe and .remove which in turn call into the common functions, so that those sdhci-pltfm device drivers register itself and keep all device specific things away from common sdhci-pltfm file.
Signed-off-by: Shawn Guo shawn.guo@linaro.org
I'll second the comments from Grant (with one slight exception which is noted below)
+static int __devexit sdhci_dove_remove(struct platform_device *pdev) +{
- struct sdhci_host *host = platform_get_drvdata(pdev);
- int dead = 0;
- u32 scratch;
- scratch = readl(host->ioaddr + SDHCI_INT_STATUS);
- if (scratch == (u32)-1)
dead = 1;
I'd prefer
dead = (readl() == 0xffffffff);
(or (u32)-1 if you prefer). But keeping a variable 'dead' is more descriptive than keeping 'scratch'.
+MODULE_LICENSE("GPL v2");
Just to be sure: Did you double-check if the original licenses were v2 or v2+?
--- a/drivers/mmc/host/sdhci-pltfm.c +++ b/drivers/mmc/host/sdhci-pltfm.c
[...]
-err_add_host:
- if (pdata && pdata->exit)
pdata->exit(host);
-err_plat_init:
- iounmap(host->ioaddr);
err_remap: release_mem_region(iomem->start, resource_size(iomem)); err_request: sdhci_free_host(host); err:
- printk(KERN_ERR"Probing of sdhci-pltfm failed: %d\n", ret);
- return ret;
- pr_err("%s failed %d\n", __func__, ret);
dev_err?
- return NULL;
}
I didn't pay much attention to the OF version of the tegra driver, since it still is not upstream yet, right?
Regards,
Wolfram