All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <greg@kroah.com>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@suse.de>
Subject: [PATCH 12/36] Driver core: change misc class_devices to be real devices
Date: Fri,  1 Dec 2006 15:21:42 -0800	[thread overview]
Message-ID: <11650153631070-git-send-email-greg@kroah.com> (raw)
In-Reply-To: <11650153591876-git-send-email-greg@kroah.com>

From: Greg Kroah-Hartman <gregkh@suse.de>

This also ment that some of the misc drivers had to also be fixed
up as they were assuming the device was a class_device.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
 drivers/char/hw_random/core.c   |   38 +++++++++++++++++++-------------------
 drivers/char/misc.c             |   13 ++++---------
 drivers/char/tpm/tpm.c          |    2 +-
 drivers/input/serio/serio_raw.c |    2 +-
 include/linux/miscdevice.h      |    5 ++---
 5 files changed, 27 insertions(+), 33 deletions(-)

diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c
index 154a81d..ebace20 100644
--- a/drivers/char/hw_random/core.c
+++ b/drivers/char/hw_random/core.c
@@ -162,7 +162,8 @@ static struct miscdevice rng_miscdev = {
 };
 
 
-static ssize_t hwrng_attr_current_store(struct class_device *class,
+static ssize_t hwrng_attr_current_store(struct device *dev,
+					struct device_attribute *attr,
 					const char *buf, size_t len)
 {
 	int err;
@@ -192,7 +193,8 @@ static ssize_t hwrng_attr_current_store(
 	return err ? : len;
 }
 
-static ssize_t hwrng_attr_current_show(struct class_device *class,
+static ssize_t hwrng_attr_current_show(struct device *dev,
+				       struct device_attribute *attr,
 				       char *buf)
 {
 	int err;
@@ -210,7 +212,8 @@ static ssize_t hwrng_attr_current_show(s
 	return ret;
 }
 
-static ssize_t hwrng_attr_available_show(struct class_device *class,
+static ssize_t hwrng_attr_available_show(struct device *dev,
+					 struct device_attribute *attr,
 					 char *buf)
 {
 	int err;
@@ -234,20 +237,18 @@ static ssize_t hwrng_attr_available_show
 	return ret;
 }
 
-static CLASS_DEVICE_ATTR(rng_current, S_IRUGO | S_IWUSR,
-			 hwrng_attr_current_show,
-			 hwrng_attr_current_store);
-static CLASS_DEVICE_ATTR(rng_available, S_IRUGO,
-			 hwrng_attr_available_show,
-			 NULL);
+static DEVICE_ATTR(rng_current, S_IRUGO | S_IWUSR,
+		   hwrng_attr_current_show,
+		   hwrng_attr_current_store);
+static DEVICE_ATTR(rng_available, S_IRUGO,
+		   hwrng_attr_available_show,
+		   NULL);
 
 
 static void unregister_miscdev(void)
 {
-	class_device_remove_file(rng_miscdev.class,
-				 &class_device_attr_rng_available);
-	class_device_remove_file(rng_miscdev.class,
-				 &class_device_attr_rng_current);
+	device_remove_file(rng_miscdev.this_device, &dev_attr_rng_available);
+	device_remove_file(rng_miscdev.this_device, &dev_attr_rng_current);
 	misc_deregister(&rng_miscdev);
 }
 
@@ -258,20 +259,19 @@ static int register_miscdev(void)
 	err = misc_register(&rng_miscdev);
 	if (err)
 		goto out;
-	err = class_device_create_file(rng_miscdev.class,
-				       &class_device_attr_rng_current);
+	err = device_create_file(rng_miscdev.this_device,
+				 &dev_attr_rng_current);
 	if (err)
 		goto err_misc_dereg;
-	err = class_device_create_file(rng_miscdev.class,
-				       &class_device_attr_rng_available);
+	err = device_create_file(rng_miscdev.this_device,
+				 &dev_attr_rng_available);
 	if (err)
 		goto err_remove_current;
 out:
 	return err;
 
 err_remove_current:
-	class_device_remove_file(rng_miscdev.class,
-				 &class_device_attr_rng_current);
+	device_remove_file(rng_miscdev.this_device, &dev_attr_rng_current);
 err_misc_dereg:
 	misc_deregister(&rng_miscdev);
 	goto out;
diff --git a/drivers/char/misc.c b/drivers/char/misc.c
index 62ebe09..7a484fc 100644
--- a/drivers/char/misc.c
+++ b/drivers/char/misc.c
@@ -169,11 +169,6 @@ fail:
 	return err;
 }
 
-/* 
- * TODO for 2.7:
- *  - add a struct kref to struct miscdevice and make all usages of
- *    them dynamic.
- */
 static struct class *misc_class;
 
 static const struct file_operations misc_fops = {
@@ -228,10 +223,10 @@ int misc_register(struct miscdevice * mi
 		misc_minors[misc->minor >> 3] |= 1 << (misc->minor & 7);
 	dev = MKDEV(MISC_MAJOR, misc->minor);
 
-	misc->class = class_device_create(misc_class, NULL, dev, misc->dev,
+	misc->this_device = device_create(misc_class, misc->parent, dev,
 					  "%s", misc->name);
-	if (IS_ERR(misc->class)) {
-		err = PTR_ERR(misc->class);
+	if (IS_ERR(misc->this_device)) {
+		err = PTR_ERR(misc->this_device);
 		goto out;
 	}
 
@@ -264,7 +259,7 @@ int misc_deregister(struct miscdevice *
 
 	down(&misc_sem);
 	list_del(&misc->list);
-	class_device_destroy(misc_class, MKDEV(MISC_MAJOR, misc->minor));
+	device_destroy(misc_class, MKDEV(MISC_MAJOR, misc->minor));
 	if (i < DYNAMIC_MINORS && i>0) {
 		misc_minors[i>>3] &= ~(1 << (misc->minor & 7));
 	}
diff --git a/drivers/char/tpm/tpm.c b/drivers/char/tpm/tpm.c
index 6ad2d3b..6e1329d 100644
--- a/drivers/char/tpm/tpm.c
+++ b/drivers/char/tpm/tpm.c
@@ -1130,7 +1130,7 @@ struct tpm_chip *tpm_register_hardware(s
 	scnprintf(devname, DEVNAME_SIZE, "%s%d", "tpm", chip->dev_num);
 	chip->vendor.miscdev.name = devname;
 
-	chip->vendor.miscdev.dev = dev;
+	chip->vendor.miscdev.parent = dev;
 	chip->dev = get_device(dev);
 
 	if (misc_register(&chip->vendor.miscdev)) {
diff --git a/drivers/input/serio/serio_raw.c b/drivers/input/serio/serio_raw.c
index ba2a203..7c8d039 100644
--- a/drivers/input/serio/serio_raw.c
+++ b/drivers/input/serio/serio_raw.c
@@ -297,7 +297,7 @@ static int serio_raw_connect(struct seri
 
 	serio_raw->dev.minor = PSMOUSE_MINOR;
 	serio_raw->dev.name = serio_raw->name;
-	serio_raw->dev.dev = &serio->dev;
+	serio_raw->dev.parent = &serio->dev;
 	serio_raw->dev.fops = &serio_raw_fops;
 
 	err = misc_register(&serio_raw->dev);
diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h
index b03cfb9..326da7d 100644
--- a/include/linux/miscdevice.h
+++ b/include/linux/miscdevice.h
@@ -31,15 +31,14 @@
 #define	HPET_MINOR	     228
 
 struct device;
-struct class_device;
 
 struct miscdevice  {
 	int minor;
 	const char *name;
 	const struct file_operations *fops;
 	struct list_head list;
-	struct device *dev;
-	struct class_device *class;
+	struct device *parent;
+	struct device *this_device;
 };
 
 extern int misc_register(struct miscdevice * misc);
-- 
1.4.4.1


  reply	other threads:[~2006-12-01 23:35 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-01 23:16 [GIT PATCH] Driver core patches for 2.6.19 Greg KH
2006-12-01 23:21 ` [PATCH 1/36] Driver core: add notification of bus events Greg KH
2006-12-01 23:21   ` [PATCH 2/36] Driver core: fix "driver" symlink timing Greg KH
2006-12-01 23:21     ` [PATCH 3/36] Driver Core: Move virtual_device_parent() to core.c Greg KH
2006-12-01 23:21       ` [PATCH 4/36] CONFIG_SYSFS_DEPRECATED Greg KH
2006-12-01 23:21         ` [PATCH 5/36] Driver core: make old versions of udev work properly Greg KH
2006-12-01 23:21           ` [PATCH 6/36] CONFIG_SYSFS_DEPRECATED - bus symlinks Greg KH
2006-12-01 23:21             ` [PATCH 7/36] CONFIG_SYSFS_DEPRECATED - device symlinks Greg KH
2006-12-01 23:21               ` [PATCH 8/36] CONFIG_SYSFS_DEPRECATED - PHYSDEV* uevent variables Greg KH
2006-12-01 23:21                 ` [PATCH 9/36] CONFIG_SYSFS_DEPRECATED - class symlinks Greg KH
2006-12-01 23:21                   ` [PATCH 10/36] Driver core: convert vt code to use struct device Greg KH
2006-12-01 23:21                     ` [PATCH 11/36] Driver core: convert vc " Greg KH
2006-12-01 23:21                       ` Greg KH [this message]
2006-12-01 23:21                         ` [PATCH 13/36] Driver core: convert tty core " Greg KH
2006-12-01 23:21                           ` [PATCH 14/36] Driver core: convert raw device code " Greg KH
2006-12-01 23:21                             ` [PATCH 15/36] I2C: convert i2c-dev to use struct device instead of struct class_device Greg KH
2006-12-01 23:21                               ` [PATCH 16/36] Driver core: convert msr code to use struct device Greg KH
2006-12-01 23:21                                 ` [PATCH 17/36] Driver core: convert cpuid " Greg KH
2006-12-01 23:21                                   ` [PATCH 18/36] Driver core: convert PPP " Greg KH
2006-12-01 23:21                                     ` [PATCH 19/36] Driver core: convert ppdev " Greg KH
2006-12-01 23:21                                       ` [PATCH 20/36] Driver core: convert mmc " Greg KH
2006-12-01 23:21                                         ` [PATCH 21/36] Driver core: convert firmware " Greg KH
2006-12-01 23:21                                           ` [PATCH 22/36] Driver core: convert fb " Greg KH
2006-12-01 23:21                                             ` [PATCH 23/36] Driver core: change mem class_devices to be real devices Greg KH
2006-12-01 23:21                                               ` [PATCH 24/36] Driver core: convert sound core to use struct device Greg KH
2006-12-01 23:21                                                 ` [PATCH 25/36] Driver core: add dev_archdata to " Greg KH
2006-12-01 23:21                                                   ` [PATCH 26/36] ACPI: Change ACPI to use dev_archdata instead of firmware_data Greg KH
2006-12-01 23:21                                                     ` [PATCH 27/36] Driver core: Call platform_notify_remove later Greg KH
2006-12-01 23:21                                                       ` [PATCH 28/36] cpu topology: consider sysfs_create_group return value Greg KH
2006-12-01 23:21                                                         ` [PATCH 29/36] sysfs: sysfs_write_file() writes zero terminated data Greg KH
2006-12-01 23:22                                                           ` [PATCH 30/36] driver core: Introduce device_find_child() Greg KH
2006-12-01 23:22                                                             ` [PATCH 31/36] Driver core: make drivers/base/core.c:setup_parent() static Greg KH
2006-12-01 23:22                                                               ` [PATCH 32/36] driver core: Introduce device_move(): move a device to a new parent Greg KH
2006-12-01 23:22                                                                 ` [PATCH 33/36] driver core: Use klist_remove() in device_move() Greg KH
2006-12-01 23:22                                                                   ` [PATCH 34/36] Driver core: platform_driver_probe(), can save codespace Greg KH
2006-12-01 23:22                                                                     ` [PATCH 35/36] Documentation/driver-model/platform.txt update/rewrite Greg KH
2006-12-01 23:22                                                                       ` [PATCH 36/36] Driver core: show drivers in /sys/module/ Greg KH
2006-12-03 16:26                                                                 ` [PATCH 32/36] driver core: Introduce device_move(): move a device to a new parent Marcel Holtmann
2006-12-04 19:58                                                                   ` Greg KH
2006-12-04 21:15                                                                     ` Marcel Holtmann
2006-12-04 23:05                                                                       ` Greg KH
2006-12-05 15:26                                                                         ` Marcel Holtmann
2006-12-06  5:58                                                                           ` Greg KH
2006-12-06  8:29                                                                             ` Marcel Holtmann
2006-12-06  9:03                                                                           ` Martin Schwidefsky
2007-01-08 13:21                                                                           ` Cornelia Huck

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=11650153631070-git-send-email-greg@kroah.com \
    --to=greg@kroah.com \
    --cc=gregkh@suse.de \
    --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.