|
@@ -168,7 +168,7 @@ struct platform_device *platform_device_alloc(const char *name, unsigned int id)
|
|
pa->pdev.dev.release = platform_device_release;
|
|
pa->pdev.dev.release = platform_device_release;
|
|
}
|
|
}
|
|
|
|
|
|
- return pa ? &pa->pdev : NULL;
|
|
|
|
|
|
+ return pa ? &pa->pdev : NULL;
|
|
}
|
|
}
|
|
EXPORT_SYMBOL_GPL(platform_device_alloc);
|
|
EXPORT_SYMBOL_GPL(platform_device_alloc);
|
|
|
|
|
|
@@ -282,24 +282,13 @@ int platform_device_add(struct platform_device *pdev)
|
|
EXPORT_SYMBOL_GPL(platform_device_add);
|
|
EXPORT_SYMBOL_GPL(platform_device_add);
|
|
|
|
|
|
/**
|
|
/**
|
|
- * platform_device_register - add a platform-level device
|
|
|
|
- * @pdev: platform device we're adding
|
|
|
|
- *
|
|
|
|
- */
|
|
|
|
-int platform_device_register(struct platform_device * pdev)
|
|
|
|
-{
|
|
|
|
- device_initialize(&pdev->dev);
|
|
|
|
- return platform_device_add(pdev);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * platform_device_unregister - remove a platform-level device
|
|
|
|
|
|
+ * platform_device_del - remove a platform-level device
|
|
* @pdev: platform device we're removing
|
|
* @pdev: platform device we're removing
|
|
*
|
|
*
|
|
* Note that this function will also release all memory- and port-based
|
|
* Note that this function will also release all memory- and port-based
|
|
* resources owned by the device (@dev->resource).
|
|
* resources owned by the device (@dev->resource).
|
|
*/
|
|
*/
|
|
-void platform_device_unregister(struct platform_device * pdev)
|
|
|
|
|
|
+void platform_device_del(struct platform_device *pdev)
|
|
{
|
|
{
|
|
int i;
|
|
int i;
|
|
|
|
|
|
@@ -310,9 +299,35 @@ void platform_device_unregister(struct platform_device * pdev)
|
|
release_resource(r);
|
|
release_resource(r);
|
|
}
|
|
}
|
|
|
|
|
|
- device_unregister(&pdev->dev);
|
|
|
|
|
|
+ device_del(&pdev->dev);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+EXPORT_SYMBOL_GPL(platform_device_del);
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * platform_device_register - add a platform-level device
|
|
|
|
+ * @pdev: platform device we're adding
|
|
|
|
+ *
|
|
|
|
+ */
|
|
|
|
+int platform_device_register(struct platform_device * pdev)
|
|
|
|
+{
|
|
|
|
+ device_initialize(&pdev->dev);
|
|
|
|
+ return platform_device_add(pdev);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * platform_device_unregister - unregister a platform-level device
|
|
|
|
+ * @pdev: platform device we're unregistering
|
|
|
|
+ *
|
|
|
|
+ * Unregistration is done in 2 steps. Fisrt we release all resources
|
|
|
|
+ * and remove it from the sybsystem, then we drop reference count by
|
|
|
|
+ * calling platform_device_put().
|
|
|
|
+ */
|
|
|
|
+void platform_device_unregister(struct platform_device * pdev)
|
|
|
|
+{
|
|
|
|
+ platform_device_del(pdev);
|
|
|
|
+ platform_device_put(pdev);
|
|
|
|
+}
|
|
|
|
|
|
/**
|
|
/**
|
|
* platform_device_register_simple
|
|
* platform_device_register_simple
|