On Tue, Oct 5, 2010 at 5:03 AM, Matt Fleming <[email protected]> wrote:
> On Tue, Sep 28, 2010 at 11:23:35PM -0400, zhangfei gao wrote:
>> +
>> + pxa->clk = clk_get(dev, "PXA-SDHCLK");
>> + if (IS_ERR(pxa->clk)) {
>> + dev_err(dev, "failed to get io clock\n");
>> + ret = PTR_ERR(pxa->clk);
>> + goto out;
>> + }
>> +
>> + pxa->res = request_mem_region(iomem->start, resource_size(iomem),
>> + mmc_hostname(host->mmc));
>> + if (!pxa->res) {
>> + dev_err(&pdev->dev, "cannot request region\n");
>> + ret = -EBUSY;
>> + goto out;
>> + }
>> +
>> + host->ioaddr = ioremap(iomem->start, resource_size(iomem));
>> + if (!host->ioaddr) {
>> + dev_err(&pdev->dev, "failed to remap registers\n");
>> + ret = -ENOMEM;
>> + goto out;
>> + }
>> +
>> + host->hw_name = "MMC";
>> + host->ops = &sdhci_pxa_ops;
>> + host->irq = irq;
>> + host->quirks = SDHCI_QUIRK_BROKEN_ADMA |
>> SDHCI_QUIRK_BROKEN_TIMEOUT_VAL;
>> +
>> + if (pdata->pxa_quirk & PXA_QUIRK_BROKEN_CARD_DETECTION)
>> + host->quirks |= SDHCI_QUIRK_BROKEN_CARD_DETECTION;
>
> I don't think there's a good reason to define
> PXA_QUIRK_BROKEN_CARD_DETECTION because its only use is to turn on
> SDHCI_QUIRK_BROKEN_CARD_DETECTION. As Eric pointed out, you should
> just use SDHCI_QUIRK_BROKEN_CARD_DETECTION directly. While adding new
> sdhci quirks should be avoided, using the existing ones is fine :-)
Thanks Matt for help review.
Will re-use the SDHCI_QUIRK_BROKEN_CARD_DETECTION, which already move
to include/ and could be used in arch/arm folder.
>
>> +
>> + ret = sdhci_add_host(host);
>> + if (ret) {
>> + dev_err(&pdev->dev, "failed to add host\n");
>> + goto out;
>> + }
>> +
>> + if (pxa->pdata->max_speed)
>> + host->mmc->f_max = pxa->pdata->max_speed;
>> +
>> + platform_set_drvdata(pdev, host);
>> +
>> + return 0;
>> +out:
>> + if (host) {
>> + if (host->ioaddr)
>> + iounmap(host->ioaddr);
>> + if (pxa->res)
>> + release_mem_region(pxa->res->start,
>> + resource_size(pxa->res));
>> + sdhci_free_host(host);
>> + }
>
> Aren't you missing a clk_put() here?
Thanks, update in coming version.
>
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html