diff options
Diffstat (limited to 'drivers/base/platform.c')
-rw-r--r-- | drivers/base/platform.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/base/platform.c b/drivers/base/platform.c index 3a94b799f166..2f4aea2428b2 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c | |||
@@ -677,7 +677,13 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *a, | |||
677 | char *buf) | 677 | char *buf) |
678 | { | 678 | { |
679 | struct platform_device *pdev = to_platform_device(dev); | 679 | struct platform_device *pdev = to_platform_device(dev); |
680 | int len = snprintf(buf, PAGE_SIZE, "platform:%s\n", pdev->name); | 680 | int len; |
681 | |||
682 | len = acpi_device_modalias(dev, buf, PAGE_SIZE -1); | ||
683 | if (len != -ENODEV) | ||
684 | return len; | ||
685 | |||
686 | len = snprintf(buf, PAGE_SIZE, "platform:%s\n", pdev->name); | ||
681 | 687 | ||
682 | return (len >= PAGE_SIZE) ? (PAGE_SIZE - 1) : len; | 688 | return (len >= PAGE_SIZE) ? (PAGE_SIZE - 1) : len; |
683 | } | 689 | } |
@@ -699,6 +705,10 @@ static int platform_uevent(struct device *dev, struct kobj_uevent_env *env) | |||
699 | if (rc != -ENODEV) | 705 | if (rc != -ENODEV) |
700 | return rc; | 706 | return rc; |
701 | 707 | ||
708 | rc = acpi_device_uevent_modalias(dev, env); | ||
709 | if (rc != -ENODEV) | ||
710 | return rc; | ||
711 | |||
702 | add_uevent_var(env, "MODALIAS=%s%s", PLATFORM_MODULE_PREFIX, | 712 | add_uevent_var(env, "MODALIAS=%s%s", PLATFORM_MODULE_PREFIX, |
703 | pdev->name); | 713 | pdev->name); |
704 | return 0; | 714 | return 0; |