diff options
author | Adrian Hunter <adrian.hunter@intel.com> | 2014-10-06 08:23:05 -0400 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2014-10-06 09:08:14 -0400 |
commit | 3db3525196a992da628fb210776d73ec4bb59460 (patch) | |
tree | 25ce914645e9210a730154f503a6b013ec528bfc /drivers/mmc | |
parent | b3f635ad6648d17178c3e2ab2f0a4823fcac1e83 (diff) |
mmc: sdhci-acpi: Get UID directly from acpi_device
UID was made available on acpi_device since
commit ccf78040265b ("ACPI: Add _UID support for ACPI devices.")
Use it from there instead of reprocessing the
ACPI object info.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | drivers/mmc/host/sdhci-acpi.c | 26 |
1 files changed, 5 insertions, 21 deletions
diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c index e9a2c6f2a2e3..839f26cdc901 100644 --- a/drivers/mmc/host/sdhci-acpi.c +++ b/drivers/mmc/host/sdhci-acpi.c | |||
@@ -225,8 +225,8 @@ static const struct acpi_device_id sdhci_acpi_ids[] = { | |||
225 | }; | 225 | }; |
226 | MODULE_DEVICE_TABLE(acpi, sdhci_acpi_ids); | 226 | MODULE_DEVICE_TABLE(acpi, sdhci_acpi_ids); |
227 | 227 | ||
228 | static const struct sdhci_acpi_slot *sdhci_acpi_get_slot_by_ids(const char *hid, | 228 | static const struct sdhci_acpi_slot *sdhci_acpi_get_slot(const char *hid, |
229 | const char *uid) | 229 | const char *uid) |
230 | { | 230 | { |
231 | const struct sdhci_acpi_uid_slot *u; | 231 | const struct sdhci_acpi_uid_slot *u; |
232 | 232 | ||
@@ -241,24 +241,6 @@ static const struct sdhci_acpi_slot *sdhci_acpi_get_slot_by_ids(const char *hid, | |||
241 | return NULL; | 241 | return NULL; |
242 | } | 242 | } |
243 | 243 | ||
244 | static const struct sdhci_acpi_slot *sdhci_acpi_get_slot(acpi_handle handle, | ||
245 | const char *hid) | ||
246 | { | ||
247 | const struct sdhci_acpi_slot *slot; | ||
248 | struct acpi_device_info *info; | ||
249 | const char *uid = NULL; | ||
250 | acpi_status status; | ||
251 | |||
252 | status = acpi_get_object_info(handle, &info); | ||
253 | if (!ACPI_FAILURE(status) && (info->valid & ACPI_VALID_UID)) | ||
254 | uid = info->unique_id.string; | ||
255 | |||
256 | slot = sdhci_acpi_get_slot_by_ids(hid, uid); | ||
257 | |||
258 | kfree(info); | ||
259 | return slot; | ||
260 | } | ||
261 | |||
262 | static int sdhci_acpi_probe(struct platform_device *pdev) | 244 | static int sdhci_acpi_probe(struct platform_device *pdev) |
263 | { | 245 | { |
264 | struct device *dev = &pdev->dev; | 246 | struct device *dev = &pdev->dev; |
@@ -269,6 +251,7 @@ static int sdhci_acpi_probe(struct platform_device *pdev) | |||
269 | struct resource *iomem; | 251 | struct resource *iomem; |
270 | resource_size_t len; | 252 | resource_size_t len; |
271 | const char *hid; | 253 | const char *hid; |
254 | const char *uid; | ||
272 | int err; | 255 | int err; |
273 | 256 | ||
274 | if (acpi_bus_get_device(handle, &device)) | 257 | if (acpi_bus_get_device(handle, &device)) |
@@ -278,6 +261,7 @@ static int sdhci_acpi_probe(struct platform_device *pdev) | |||
278 | return -ENODEV; | 261 | return -ENODEV; |
279 | 262 | ||
280 | hid = acpi_device_hid(device); | 263 | hid = acpi_device_hid(device); |
264 | uid = device->pnp.unique_id; | ||
281 | 265 | ||
282 | iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 266 | iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
283 | if (!iomem) | 267 | if (!iomem) |
@@ -296,7 +280,7 @@ static int sdhci_acpi_probe(struct platform_device *pdev) | |||
296 | 280 | ||
297 | c = sdhci_priv(host); | 281 | c = sdhci_priv(host); |
298 | c->host = host; | 282 | c->host = host; |
299 | c->slot = sdhci_acpi_get_slot(handle, hid); | 283 | c->slot = sdhci_acpi_get_slot(hid, uid); |
300 | c->pdev = pdev; | 284 | c->pdev = pdev; |
301 | c->use_runtime_pm = sdhci_acpi_flag(c, SDHCI_ACPI_RUNTIME_PM); | 285 | c->use_runtime_pm = sdhci_acpi_flag(c, SDHCI_ACPI_RUNTIME_PM); |
302 | 286 | ||