]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/base/platform.c
ACPI: fix module autoloading for ACPI enumerated devices
[karo-tx-linux.git] / drivers / base / platform.c
index 3a94b799f16640eb6a8e34ef2df78a31e3085e9c..2f4aea2428b27aad1f2defa210ebacefa87a1572 100644 (file)
@@ -677,7 +677,13 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *a,
                             char *buf)
 {
        struct platform_device  *pdev = to_platform_device(dev);
-       int len = snprintf(buf, PAGE_SIZE, "platform:%s\n", pdev->name);
+       int len;
+
+       len = acpi_device_modalias(dev, buf, PAGE_SIZE -1);
+       if (len != -ENODEV)
+               return len;
+
+       len = snprintf(buf, PAGE_SIZE, "platform:%s\n", pdev->name);
 
        return (len >= PAGE_SIZE) ? (PAGE_SIZE - 1) : len;
 }
@@ -699,6 +705,10 @@ static int platform_uevent(struct device *dev, struct kobj_uevent_env *env)
        if (rc != -ENODEV)
                return rc;
 
+       rc = acpi_device_uevent_modalias(dev, env);
+       if (rc != -ENODEV)
+               return rc;
+
        add_uevent_var(env, "MODALIAS=%s%s", PLATFORM_MODULE_PREFIX,
                        pdev->name);
        return 0;