public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Daniel Drake <dsd@gentoo.org>
To: bcollins@debian.org
Cc: linux1394-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org
Subject: [PATCH 3/3] raw1394: sysfs support via class_simple
Date: Sun, 14 Nov 2004 03:37:44 +0000	[thread overview]
Message-ID: <4196D308.60801@gentoo.org> (raw)

[-- Attachment #1: Type: text/plain, Size: 265 bytes --]

Adds basic sysfs support for udev etc.
Ideally we should link into the ieee1394 sysfs class, but it doesn't seem 
extensible in that manner.
For now, class_simple will do.

Depends on the previous whitespace fix patch.

Signed-off-by: Daniel Drake <dsd@gentoo.org>

[-- Attachment #2: raw1394-03-sysfs-support.patch --]
[-- Type: text/plain, Size: 2674 bytes --]

--- linux/drivers/ieee1394/raw1394.c.orig	2004-11-14 03:12:12.000000000 +0000
+++ linux/drivers/ieee1394/raw1394.c	2004-11-14 03:22:44.623795368 +0000
@@ -78,6 +78,7 @@ static atomic_t iso_buffer_size;
 static const int iso_buffer_max = 4 * 1024 * 1024;	/* 4 MB */
 
 static struct hpsb_highlevel raw1394_highlevel;
+static struct class_simple *raw1394_class;
 
 static int arm_read(struct hpsb_host *host, int nodeid, quadlet_t * buffer,
 		    u64 addr, size_t length, u16 flags);
@@ -2886,12 +2887,26 @@ static struct file_operations raw1394_fo
 
 static int __init init_raw1394(void)
 {
-	int ret;
+	int ret = 0;
 
 	hpsb_register_highlevel(&raw1394_highlevel);
 
-	devfs_mk_cdev(MKDEV(IEEE1394_MAJOR, IEEE1394_MINOR_BLOCK_RAW1394 * 16),
-		      S_IFCHR | S_IRUSR | S_IWUSR, RAW1394_DEVICE_NAME);
+	raw1394_class = class_simple_create(THIS_MODULE, "raw1394");
+	if (IS_ERR(raw1394_class)) {
+		ret = PTR_ERR(raw1394_class);
+		goto out_unreg;
+	}
+
+	class_simple_device_add(raw1394_class,
+				MKDEV(IEEE1394_MAJOR,
+				      IEEE1394_MINOR_BLOCK_RAW1394 * 16), NULL,
+				RAW1394_DEVICE_NAME);
+	ret =
+	    devfs_mk_cdev(MKDEV
+			  (IEEE1394_MAJOR, IEEE1394_MINOR_BLOCK_RAW1394 * 16),
+			  S_IFCHR | S_IRUSR | S_IWUSR, RAW1394_DEVICE_NAME);
+	if (ret)
+		goto out_class;
 
 	cdev_init(&raw1394_cdev, &raw1394_fops);
 	raw1394_cdev.owner = THIS_MODULE;
@@ -2899,9 +2914,7 @@ static int __init init_raw1394(void)
 	ret = cdev_add(&raw1394_cdev, IEEE1394_RAW1394_DEV, 1);
 	if (ret) {
 		HPSB_ERR("raw1394 failed to register minor device block");
-		devfs_remove(RAW1394_DEVICE_NAME);
-		hpsb_unregister_highlevel(&raw1394_highlevel);
-		return ret;
+		goto out_dev;
 	}
 
 	HPSB_INFO("raw1394: /dev/%s device initialized", RAW1394_DEVICE_NAME);
@@ -2910,16 +2923,30 @@ static int __init init_raw1394(void)
 	if (ret) {
 		HPSB_ERR("raw1394: failed to register protocol");
 		cdev_del(&raw1394_cdev);
-		devfs_remove(RAW1394_DEVICE_NAME);
-		hpsb_unregister_highlevel(&raw1394_highlevel);
-		return ret;
+		goto out_dev;
 	}
 
-	return 0;
+	goto out;
+
+      out_dev:
+	devfs_remove(RAW1394_DEVICE_NAME);
+      out_class:
+	class_simple_device_remove(MKDEV
+				   (IEEE1394_MAJOR,
+				    IEEE1394_MINOR_BLOCK_RAW1394 * 16));
+	class_simple_destroy(raw1394_class);
+      out_unreg:
+	hpsb_unregister_highlevel(&raw1394_highlevel);
+      out:
+	return ret;
 }
 
 static void __exit cleanup_raw1394(void)
 {
+	class_simple_device_remove(MKDEV
+				   (IEEE1394_MAJOR,
+				    IEEE1394_MINOR_BLOCK_RAW1394 * 16));
+	class_simple_destroy(raw1394_class);
 	hpsb_unregister_protocol(&raw1394_driver);
 	cdev_del(&raw1394_cdev);
 	devfs_remove(RAW1394_DEVICE_NAME);

             reply	other threads:[~2004-11-14  6:28 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-14  3:37 Daniel Drake [this message]
2004-11-14  6:42 ` [PATCH 3/3] raw1394: sysfs support via class_simple Dmitry Torokhov
2004-11-17 12:30   ` Daniel Drake

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=4196D308.60801@gentoo.org \
    --to=dsd@gentoo.org \
    --cc=bcollins@debian.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux1394-devel@lists.sourceforge.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox