Message ID | 1512738299-5650-1-git-send-email-adrian.hunter@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 8 December 2017 at 14:04, Adrian Hunter <adrian.hunter@intel.com> wrote: > 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> Thanks, applied for next! Kind regards Uffe > --- > drivers/mmc/host/sdhci-acpi.c | 15 ++++++++++++++- > 1 file changed, 14 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c > index 1b1ce804d2d7..f7445cf8f7dd 100644 > --- a/drivers/mmc/host/sdhci-acpi.c > +++ b/drivers/mmc/host/sdhci-acpi.c > @@ -76,6 +76,7 @@ struct sdhci_acpi_slot { > size_t priv_size; > int (*probe_slot)(struct platform_device *, const char *, const char *); > int (*remove_slot)(struct platform_device *); > + int (*setup_host)(struct platform_device *pdev); > }; > > 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) > 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) { > pm_runtime_set_active(dev); > pm_suspend_ignore_children(dev, 1); > @@ -704,6 +715,8 @@ static int sdhci_acpi_probe(struct platform_device *pdev) > > return 0; > > +err_cleanup: > + sdhci_cleanup_host(c->host); > err_free: > sdhci_free_host(c->host); > return err; > -- > 1.9.1 > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c index 1b1ce804d2d7..f7445cf8f7dd 100644 --- a/drivers/mmc/host/sdhci-acpi.c +++ b/drivers/mmc/host/sdhci-acpi.c @@ -76,6 +76,7 @@ struct sdhci_acpi_slot { size_t priv_size; int (*probe_slot)(struct platform_device *, const char *, const char *); int (*remove_slot)(struct platform_device *); + int (*setup_host)(struct platform_device *pdev); }; 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) 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) { pm_runtime_set_active(dev); pm_suspend_ignore_children(dev, 1); @@ -704,6 +715,8 @@ static int sdhci_acpi_probe(struct platform_device *pdev) return 0; +err_cleanup: + sdhci_cleanup_host(c->host); err_free: sdhci_free_host(c->host); return err;
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> --- drivers/mmc/host/sdhci-acpi.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-)