All of lore.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 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.