mirror of https://gitee.com/openkylin/linux.git
mmc: sdhci-acpi: Add setup_host() callback
Add a ->setup_host() callback so that device-specific changes can be made to the mmc host controller before it is added. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
2361bfb055
commit
0cc1a0f451
|
@ -76,6 +76,7 @@ struct sdhci_acpi_slot {
|
||||||
size_t priv_size;
|
size_t priv_size;
|
||||||
int (*probe_slot)(struct platform_device *, const char *, const char *);
|
int (*probe_slot)(struct platform_device *, const char *, const char *);
|
||||||
int (*remove_slot)(struct platform_device *);
|
int (*remove_slot)(struct platform_device *);
|
||||||
|
int (*setup_host)(struct platform_device *pdev);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sdhci_acpi_host {
|
struct sdhci_acpi_host {
|
||||||
|
@ -688,10 +689,20 @@ static int sdhci_acpi_probe(struct platform_device *pdev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = sdhci_add_host(host);
|
err = sdhci_setup_host(host);
|
||||||
if (err)
|
if (err)
|
||||||
goto err_free;
|
goto err_free;
|
||||||
|
|
||||||
|
if (c->slot && c->slot->setup_host) {
|
||||||
|
err = c->slot->setup_host(pdev);
|
||||||
|
if (err)
|
||||||
|
goto err_cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
err = __sdhci_add_host(host);
|
||||||
|
if (err)
|
||||||
|
goto err_cleanup;
|
||||||
|
|
||||||
if (c->use_runtime_pm) {
|
if (c->use_runtime_pm) {
|
||||||
pm_runtime_set_active(dev);
|
pm_runtime_set_active(dev);
|
||||||
pm_suspend_ignore_children(dev, 1);
|
pm_suspend_ignore_children(dev, 1);
|
||||||
|
@ -704,6 +715,8 @@ static int sdhci_acpi_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
err_cleanup:
|
||||||
|
sdhci_cleanup_host(c->host);
|
||||||
err_free:
|
err_free:
|
||||||
sdhci_free_host(c->host);
|
sdhci_free_host(c->host);
|
||||||
return err;
|
return err;
|
||||||
|
|
Loading…
Reference in New Issue