From: Hanna Linder <hannal@us.ibm.com>
To: linux-kernel@vger.kernel.org
Cc: linux-net@vger.kernel.org, greg@kroah.com, hannal@us.ibm.com,
kas@fi.muni.cz
Subject: [PATCH 2.6.6-rc3] Add class support to drivers/net/wan/cosa.c
Date: Wed, 05 May 2004 17:13:20 -0700 [thread overview]
Message-ID: <39490000.1083802400@dyn318071bld.beaverton.ibm.com> (raw)
This patch adds sysfs class support to the Cosa driver. I have verified it
compiles but do not have the hardware to test it. If someone could that
would be helpful.
Thanks.
Hanna Linder
IBM Linux Technology Center
----
diff -Nrup -Xdontdiff linux-2.6.6-rc3/drivers/net/wan/cosa.c linux-2.6.6-rc3pcosa/drivers/net/wan/cosa.c
--- linux-2.6.6-rc3/drivers/net/wan/cosa.c 2004-04-27 18:35:04.000000000 -0700
+++ linux-2.6.6-rc3pcosa/drivers/net/wan/cosa.c 2004-05-05 16:01:56.000000000 -0700
@@ -93,6 +93,7 @@
#include <linux/netdevice.h>
#include <linux/spinlock.h>
#include <linux/smp_lock.h>
+#include <linux/device.h>
#undef COSA_SLOW_IO /* for testing purposes only */
#undef REALLY_SLOW_IO
@@ -233,6 +234,9 @@ static int dma[MAX_CARDS+1];
/* IRQ can be safely autoprobed */
static int irq[MAX_CARDS+1] = { -1, -1, -1, -1, -1, -1, 0, };
+/* for class stuff*/
+static struct class_simple *cosa_class;
+
#ifdef MODULE
MODULE_PARM(io, "1-" __MODULE_STRING(MAX_CARDS) "i");
MODULE_PARM_DESC(io, "The I/O bases of the COSA or SRP cards");
@@ -359,7 +363,7 @@ static void debug_status_out(struct cosa
static int __init cosa_init(void)
{
- int i;
+ int i, err = 0;
printk(KERN_INFO "cosa v1.08 (c) 1997-2000 Jan Kasprzak <kas@fi.muni.cz>\n");
#ifdef CONFIG_SMP
@@ -369,12 +373,14 @@ static int __init cosa_init(void)
if (register_chrdev(cosa_major, "cosa", &cosa_fops)) {
printk(KERN_WARNING "cosa: unable to get major %d\n",
cosa_major);
- return -EIO;
+ err = -EIO;
+ goto out;
}
} else {
if (!(cosa_major=register_chrdev(0, "cosa", &cosa_fops))) {
printk(KERN_WARNING "cosa: unable to register chardev\n");
- return -EIO;
+ err = -EIO;
+ goto out;
}
}
for (i=0; i<MAX_CARDS; i++)
@@ -384,15 +390,33 @@ static int __init cosa_init(void)
if (!nr_cards) {
printk(KERN_WARNING "cosa: no devices found.\n");
unregister_chrdev(cosa_major, "cosa");
- return -ENODEV;
+ err = -ENODEV;
+ goto out;
}
devfs_mk_dir("cosa");
+ cosa_class = class_simple_create(THIS_MODULE, "cosa");
+ if (IS_ERR(cosa_class)) {
+ err = PTR_ERR(cosa_class);
+ goto out_chrdev;
+ }
for (i=0; i<nr_cards; i++) {
- devfs_mk_cdev(MKDEV(cosa_major, i),
+ class_simple_device_add(cosa_class, MKDEV(cosa_major, i),
+ NULL, "cosa%d", i);
+ err = devfs_mk_cdev(MKDEV(cosa_major, i),
S_IFCHR|S_IRUSR|S_IWUSR,
"cosa/%d", i);
+ if (err) {
+ class_simple_device_remove(MKDEV(cosa_major, i));
+ goto out_chrdev;
+ }
}
- return 0;
+ err = 0;
+ goto out;
+
+out_chrdev:
+ unregister_chrdev(cosa_major, "cosa");
+out:
+ return err;
}
module_init(cosa_init);
@@ -402,8 +426,11 @@ static void __exit cosa_exit(void)
int i;
printk(KERN_INFO "Unloading the cosa module\n");
- for (i=0; i<nr_cards; i++)
+ for (i=0; i<nr_cards; i++) {
+ class_simple_device_remove(MKDEV(cosa_major, i));
devfs_remove("cosa/%d", i);
+ }
+ class_simple_destroy(cosa_class);
devfs_remove("cosa");
for (cosa=cosa_cards; nr_cards--; cosa++) {
/* Clean up the per-channel data */
next reply other threads:[~2004-05-06 0:15 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-05-06 0:13 Hanna Linder [this message]
2004-05-11 21:31 ` Greg KH
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=39490000.1083802400@dyn318071bld.beaverton.ibm.com \
--to=hannal@us.ibm.com \
--cc=greg@kroah.com \
--cc=kas@fi.muni.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-net@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®