mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
sdhci: acpi: add free_slot callback
[ Upstream commit c7eabbee3d ]
The device specific resource can be free in free_slot after
removing host controller.
Signed-off-by: Wang Dongsheng <dongsheng.wang@hxt-semitech.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
3625a5515a
commit
cf6e9d033d
@@ -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 (*free_slot)(struct platform_device *pdev);
|
||||
int (*setup_host)(struct platform_device *pdev);
|
||||
};
|
||||
|
||||
@@ -756,6 +757,9 @@ static int sdhci_acpi_probe(struct platform_device *pdev)
|
||||
err_cleanup:
|
||||
sdhci_cleanup_host(c->host);
|
||||
err_free:
|
||||
if (c->slot && c->slot->free_slot)
|
||||
c->slot->free_slot(pdev);
|
||||
|
||||
sdhci_free_host(c->host);
|
||||
return err;
|
||||
}
|
||||
@@ -777,6 +781,10 @@ static int sdhci_acpi_remove(struct platform_device *pdev)
|
||||
|
||||
dead = (sdhci_readl(c->host, SDHCI_INT_STATUS) == ~0);
|
||||
sdhci_remove_host(c->host, dead);
|
||||
|
||||
if (c->slot && c->slot->free_slot)
|
||||
c->slot->free_slot(pdev);
|
||||
|
||||
sdhci_free_host(c->host);
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user