From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org
Cc: dtor_core@ameritech.net
Subject: [PATCH] Driver Core: Add platform_device_del()
Date: Wed, 4 Jan 2006 16:49:31 -0800 [thread overview]
Message-ID: <11364221711332@kroah.com> (raw)
In-Reply-To: <1136422171299@kroah.com>
[PATCH] Driver Core: Add platform_device_del()
Driver core: add platform_device_del function
Having platform_device_del90 allows more straightforward error
handling code in drivers registering platform devices.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
commit 93ce3061be212f6280e7ccafa9a7f698a95c6d75
tree a451566360fea86ef597fcd2fe693dce65626f93
parent e39b84337b8aed3044683a57741a19e5002225b9
author Dmitry Torokhov <dtor_core@ameritech.net> Sat, 10 Dec 2005 01:36:27 -0500
committer Greg Kroah-Hartman <gregkh@suse.de> Wed, 04 Jan 2006 16:18:09 -0800
drivers/base/platform.c | 45 ++++++++++++++++++++++++++-------------
include/linux/platform_device.h | 1 +
2 files changed, 31 insertions(+), 15 deletions(-)
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index 1091af1..95ecfc4 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -168,7 +168,7 @@ struct platform_device *platform_device_
pa->pdev.dev.release = platform_device_release;
}
- return pa ? &pa->pdev : NULL;
+ return pa ? &pa->pdev : NULL;
}
EXPORT_SYMBOL_GPL(platform_device_alloc);
@@ -282,24 +282,13 @@ int platform_device_add(struct platform_
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
*
* Note that this function will also release all memory- and port-based
* 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;
@@ -310,9 +299,35 @@ void platform_device_unregister(struct p
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
diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h
index 17e336f..782090c 100644
--- a/include/linux/platform_device.h
+++ b/include/linux/platform_device.h
@@ -41,6 +41,7 @@ extern struct platform_device *platform_
extern int platform_device_add_resources(struct platform_device *pdev, struct resource *res, unsigned int num);
extern int platform_device_add_data(struct platform_device *pdev, void *data, size_t size);
extern int platform_device_add(struct platform_device *pdev);
+extern void platform_device_del(struct platform_device *pdev);
extern void platform_device_put(struct platform_device *pdev);
struct platform_driver {
next prev parent reply other threads:[~2006-01-05 0:51 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-05 0:48 [GIT PATCH] Driver Core patches for 2.6.15 Greg KH
2006-01-05 0:49 ` [PATCH] remove CONFIG_KOBJECT_UEVENT option Greg KH
2006-01-05 0:49 ` [PATCH] remove mount/umount uevents from superblock handling Greg KH
2006-01-05 0:49 ` [PATCH] keep pnpbios usermod_helper away from hotplug_path[] Greg KH
2006-01-05 0:49 ` [PATCH] add uevent_helper control in /sys/kernel/ Greg KH
2006-01-05 0:49 ` [PATCH] merge kobject_uevent and kobject_hotplug Greg KH
2006-01-05 0:49 ` [PATCH] driver core: replace "hotplug" by "uevent" Greg KH
2006-01-05 0:49 ` [PATCH] driver kill hotplug word from sn and others fix Greg KH
2006-01-05 0:49 ` [PATCH] HOTPLUG: always enable the .config option, unless EMBEDDED Greg KH
2006-01-05 0:49 ` [PATCH] Hold the device's parent's lock during probe and remove Greg KH
2006-01-05 0:49 ` [PATCH] Allow overlapping resources for platform devices Greg KH
2006-01-05 0:49 ` [PATCH] klist: Fix broken kref counting in find functions Greg KH
2006-01-05 0:49 ` [PATCH] kobject_uevent CONFIG_NET=n fix Greg KH
2006-01-05 0:49 ` [PATCH] Input: add modalias support Greg KH
2006-01-05 0:49 ` [PATCH] ide: MODALIAS support for autoloading of ide-cd, ide-disk, Greg KH
2006-01-05 0:49 ` [PATCH] Driver core: Make block devices create the proper symlink name Greg KH
2006-01-05 0:49 ` [PATCH] Driver core: only all userspace bind/unbind if CONFIG_HOTPLUG is enabled Greg KH
2006-01-05 0:49 ` Greg KH [this message]
2006-01-05 0:49 ` [PATCH] Driver Core: Rearrange exports in platform.c Greg KH
2006-01-05 0:49 ` [PATCH] Input: fix add modalias support build error Greg KH
2006-01-05 0:49 ` [PATCH] sysfs: handle failures in sysfs_make_dirent Greg KH
2006-01-05 0:49 ` [PATCH] drivers/base/power/runtime.c: #if 0 dpm_set_power_state() Greg KH
2006-01-05 0:49 ` [PATCH] net: swich device attribute creation to default attrs Greg KH
2006-01-05 1:38 ` [GIT PATCH] Driver Core patches for 2.6.15 Linus Torvalds
2006-01-05 2:07 ` Greg KH
2006-01-05 2:40 ` Linus Torvalds
2006-01-05 3:31 ` Greg KH
2006-01-05 3:36 ` Linus Torvalds
2006-01-05 3:44 ` devfs going away, last chance to complain (was Re: [GIT PATCH] Driver Core patches for 2.6.15) Greg KH
2006-01-05 7:44 ` Steven Noonan
2006-01-05 9:17 ` Andrew Walrond
2006-01-05 9:18 ` Kyle Moffett
2006-01-05 14:04 ` [GIT PATCH] Driver Core patches for 2.6.15 John Stoffel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=11364221711332@kroah.com \
--to=gregkh@suse.de \
--cc=dtor_core@ameritech.net \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.