compat: export platform_device_register_data()
authorHauke Mehrtens <hauke@hauke-m.de>
Thu, 27 Dec 2012 17:19:41 +0000 (18:19 +0100)
committerLuis R. Rodriguez <mcgrof@do-not-panic.com>
Fri, 28 Dec 2012 15:37:48 +0000 (07:37 -0800)
platform_device_register_data has to be exported for kernel
version < 2.6.33. Some of these kernel have this method but do not
export it and only kernel version < 2.6.28 does not have this function.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat/compat-2.6.28.c
compat/compat-2.6.33.c

index 6be544275e98a7d57d456b8e600e4423020243de..0ae8f465dbb6636b64b939045ece8dd747f8fa56 100644 (file)
 #include <linux/compat.h>
 #include <linux/usb.h>
 #include <linux/tty.h>
-#include <linux/platform_device.h>
 #include <asm/poll.h>
 
 /* 2.6.28 compat code goes here */
 
-/**
- * platform_device_register_data
- * @parent: parent device for the device we're adding
- * @name: base name of the device we're adding
- * @id: instance id
- * @data: platform specific data for this platform device
- * @size: size of platform specific data
- *
- * This function creates a simple platform device that requires minimal
- * resource and memory management. Canned release function freeing memory
- * allocated for the device allows drivers using such devices to be
- * unloaded without waiting for the last reference to the device to be
- * dropped.
- */
-struct platform_device *platform_device_register_data(
-               struct device *parent,
-               const char *name, int id,
-               const void *data, size_t size)
-{
-       struct platform_device *pdev;
-       int retval;
-
-       pdev = platform_device_alloc(name, id);
-       if (!pdev) {
-               retval = -ENOMEM;
-               goto error;
-       }
-
-       pdev->dev.parent = parent;
-
-       if (size) {
-               retval = platform_device_add_data(pdev, data, size);
-               if (retval)
-                       goto error;
-       }
-
-       retval = platform_device_add(pdev);
-       if (retval)
-               goto error;
-
-       return pdev;
-
-error:
-       platform_device_put(pdev);
-       return ERR_PTR(retval);
-}
-
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23))
 #if defined(CONFIG_USB) || defined(CONFIG_USB_MODULE)
 /*
index 6e68db4b2ad990da5cd94662959e7bdd12eb2eb6..6d1c4d81efe4545a9a3c5f256d6b6b41c61db9e3 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/device.h>
 #include <linux/usb.h>
 #include <linux/pm_runtime.h>
+#include <linux/platform_device.h>
 
 #ifdef CONFIG_USB_SUSPEND
 /**
@@ -172,3 +173,50 @@ EXPORT_SYMBOL_GPL(pcmcia_loop_tuple);
 
 #endif /* CONFIG_PCCARD */
 
+/**
+ * platform_device_register_data
+ * @parent: parent device for the device we're adding
+ * @name: base name of the device we're adding
+ * @id: instance id
+ * @data: platform specific data for this platform device
+ * @size: size of platform specific data
+ *
+ * This function creates a simple platform device that requires minimal
+ * resource and memory management. Canned release function freeing memory
+ * allocated for the device allows drivers using such devices to be
+ * unloaded without waiting for the last reference to the device to be
+ * dropped.
+ */
+struct platform_device *platform_device_register_data(
+               struct device *parent,
+               const char *name, int id,
+               const void *data, size_t size)
+{
+       struct platform_device *pdev;
+       int retval;
+
+       pdev = platform_device_alloc(name, id);
+       if (!pdev) {
+               retval = -ENOMEM;
+               goto error;
+       }
+
+       pdev->dev.parent = parent;
+
+       if (size) {
+               retval = platform_device_add_data(pdev, data, size);
+               if (retval)
+                       goto error;
+       }
+
+       retval = platform_device_add(pdev);
+       if (retval)
+               goto error;
+
+       return pdev;
+
+error:
+       platform_device_put(pdev);
+       return ERR_PTR(retval);
+}
+EXPORT_SYMBOL_GPL(platform_device_register_data);