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);
next 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.