All of lore.kernel.org
 help / color / mirror / Atom feed
* wanPMC-CxT1E1
@ 2009-10-26 20:22 Bob Beers
  2009-10-26 20:41 ` wanPMC-CxT1E1 Greg KH
  0 siblings, 1 reply; 22+ messages in thread
From: Bob Beers @ 2009-10-26 20:22 UTC (permalink / raw)
  To: netdev; +Cc: Greg KH

Hello List,

I am using subject named card[1] and it has a GPL driver that is
 out-of-tree.  I have permission from the manufacturer to post and
 discuss it, so I'd like to get started.  Where/how shall I post the code,
 and my first patch which allows it to compile and run with the
 kernel of RHEL/CentOS 5?  The tarball includes driver source and
 a utility pmcc4cfg, and is 174 093 bytes.

Thanks,

-Bob Beers

[1] <http://www.onestopsystems.com/communication_wan_e.php>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2009-10-26 20:22 wanPMC-CxT1E1 Bob Beers
@ 2009-10-26 20:41 ` Greg KH
  2009-10-26 20:57   ` wanPMC-CxT1E1 Bob Beers
  2009-10-27 17:48   ` wanPMC-CxT1E1 Bob Beers
  0 siblings, 2 replies; 22+ messages in thread
From: Greg KH @ 2009-10-26 20:41 UTC (permalink / raw)
  To: Bob Beers; +Cc: netdev

On Mon, Oct 26, 2009 at 04:22:08PM -0400, Bob Beers wrote:
> Hello List,
> 
> I am using subject named card[1] and it has a GPL driver that is
>  out-of-tree.  I have permission from the manufacturer to post and
>  discuss it, so I'd like to get started.  Where/how shall I post the code,
>  and my first patch which allows it to compile and run with the
>  kernel of RHEL/CentOS 5?  The tarball includes driver source and
>  a utility pmcc4cfg, and is 174 093 bytes.

Getting it to build on 2.6.31 is more important than RHEL5, we can't do
anything with an old kernel like that.

Do you have a pointer to where we can download the tarball?  I'll be
glad to add it to the staging tree so it can be cleaned up there before
being submitted to the main portion of the kernel tree.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2009-10-26 20:41 ` wanPMC-CxT1E1 Greg KH
@ 2009-10-26 20:57   ` Bob Beers
  2009-10-26 21:20     ` wanPMC-CxT1E1 Greg KH
  2009-10-27 17:48   ` wanPMC-CxT1E1 Bob Beers
  1 sibling, 1 reply; 22+ messages in thread
From: Bob Beers @ 2009-10-26 20:57 UTC (permalink / raw)
  To: Greg KH; +Cc: netdev

On Mon, Oct 26, 2009 at 4:41 PM, Greg KH <greg@kroah.com> wrote:
> On Mon, Oct 26, 2009 at 04:22:08PM -0400, Bob Beers wrote:
>> Hello List,
>>
>> I am using subject named card[1] and it has a GPL driver that is
>>  out-of-tree.  I have permission from the manufacturer to post and
>>  discuss it, so I'd like to get started.  Where/how shall I post the code,
>>  and my first patch which allows it to compile and run with the
>>  kernel of RHEL/CentOS 5?  The tarball includes driver source and
>>  a utility pmcc4cfg, and is 174 093 bytes.
>
> Getting it to build on 2.6.31 is more important than RHEL5, we can't do
> anything with an old kernel like that.
>

I know, but I'll need to back port it as soon as possible.

> Do you have a pointer to where we can download the tarball?  I'll be
> glad to add it to the staging tree so it can be cleaned up there before
> being submitted to the main portion of the kernel tree.
>

<http://rapidshare.com/files/298314343/wanPMC_CxT1E1_Linux_3_1B.tgz.html>
MD5: 563FC98A1A0EA625F72C45B89E5C726B

> thanks,
>
> greg k-h
>

Thanks,

-Bob Beers

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2009-10-26 20:57   ` wanPMC-CxT1E1 Bob Beers
@ 2009-10-26 21:20     ` Greg KH
  0 siblings, 0 replies; 22+ messages in thread
From: Greg KH @ 2009-10-26 21:20 UTC (permalink / raw)
  To: Bob Beers; +Cc: netdev

On Mon, Oct 26, 2009 at 04:57:35PM -0400, Bob Beers wrote:
> On Mon, Oct 26, 2009 at 4:41 PM, Greg KH <greg@kroah.com> wrote:
> > On Mon, Oct 26, 2009 at 04:22:08PM -0400, Bob Beers wrote:
> >> Hello List,
> >>
> >> I am using subject named card[1] and it has a GPL driver that is
> >>  out-of-tree.  I have permission from the manufacturer to post and
> >>  discuss it, so I'd like to get started.  Where/how shall I post the code,
> >>  and my first patch which allows it to compile and run with the
> >>  kernel of RHEL/CentOS 5?  The tarball includes driver source and
> >>  a utility pmcc4cfg, and is 174 093 bytes.
> >
> > Getting it to build on 2.6.31 is more important than RHEL5, we can't do
> > anything with an old kernel like that.
> >
> 
> I know, but I'll need to back port it as soon as possible.

Sure, but that's nothing we can do, nor are able to even care about :)

> > Do you have a pointer to where we can download the tarball?  I'll be
> > glad to add it to the staging tree so it can be cleaned up there before
> > being submitted to the main portion of the kernel tree.
> >
> 
> <http://rapidshare.com/files/298314343/wanPMC_CxT1E1_Linux_3_1B.tgz.html>
> MD5: 563FC98A1A0EA625F72C45B89E5C726B

Care to put it somewhere that will actually work?  That site refuses to
give it to me.

Heck, if it's only 174kb, can you just send it in email to me?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2009-10-26 20:41 ` wanPMC-CxT1E1 Greg KH
  2009-10-26 20:57   ` wanPMC-CxT1E1 Bob Beers
@ 2009-10-27 17:48   ` Bob Beers
  2009-10-28 18:11     ` wanPMC-CxT1E1 Greg KH
                       ` (3 more replies)
  1 sibling, 4 replies; 22+ messages in thread
From: Bob Beers @ 2009-10-27 17:48 UTC (permalink / raw)
  To: Greg KH; +Cc: netdev

On Mon, Oct 26, 2009 at 4:41 PM, Greg KH <greg@kroah.com> wrote:
> Getting it to build on 2.6.31 is more important than RHEL5, we can't do
> anything with an old kernel like that.

ok, so where do I start, I have a system ready to start
 git cloning, and creating patches. I googled for a while
 but didn't find a nice recipe for participating in the -staging
 process.

I'll try to add something here[1] if I get some good advice.

thanks,

-Bob Beers

[1] <http://www.linuxdriverproject.org/foswiki/bin/view/Main/OutOfTreeDrivers>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2009-10-27 17:48   ` wanPMC-CxT1E1 Bob Beers
@ 2009-10-28 18:11     ` Greg KH
  2009-10-29  1:05     ` wanPMC-CxT1E1 Greg KH
                       ` (2 subsequent siblings)
  3 siblings, 0 replies; 22+ messages in thread
From: Greg KH @ 2009-10-28 18:11 UTC (permalink / raw)
  To: Bob Beers; +Cc: netdev

On Tue, Oct 27, 2009 at 01:48:53PM -0400, Bob Beers wrote:
> On Mon, Oct 26, 2009 at 4:41 PM, Greg KH <greg@kroah.com> wrote:
> > Getting it to build on 2.6.31 is more important than RHEL5, we can't do
> > anything with an old kernel like that.
> 
> ok, so where do I start, I have a system ready to start
>  git cloning, and creating patches. I googled for a while
>  but didn't find a nice recipe for participating in the -staging
>  process.

I'll try to get it to build in the kernel tree today and send you a copy
of the patch to try out.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2009-10-27 17:48   ` wanPMC-CxT1E1 Bob Beers
  2009-10-28 18:11     ` wanPMC-CxT1E1 Greg KH
@ 2009-10-29  1:05     ` Greg KH
  2009-10-29  1:43       ` wanPMC-CxT1E1 Bob Beers
  2009-10-29 13:54     ` wanPMC-CxT1E1 Krzysztof Halasa
  2009-10-30  1:52     ` wanPMC-CxT1E1 Krzysztof Halasa
  3 siblings, 1 reply; 22+ messages in thread
From: Greg KH @ 2009-10-29  1:05 UTC (permalink / raw)
  To: Bob Beers; +Cc: netdev

On Tue, Oct 27, 2009 at 01:48:53PM -0400, Bob Beers wrote:
> On Mon, Oct 26, 2009 at 4:41 PM, Greg KH <greg@kroah.com> wrote:
> > Getting it to build on 2.6.31 is more important than RHEL5, we can't do
> > anything with an old kernel like that.
> 
> ok, so where do I start, I have a system ready to start
>  git cloning, and creating patches. I googled for a while
>  but didn't find a nice recipe for participating in the -staging
>  process.

Ick, this isn't going to be easy, a lot of work needs to be done on the
driver to get it just to build on the latest kernel tree.  I personally
don't have the time to do it right now, but will gladly accept patches
that add it to the staging tree if someone else wants to do it.

sorry,

greg k-h

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2009-10-29  1:05     ` wanPMC-CxT1E1 Greg KH
@ 2009-10-29  1:43       ` Bob Beers
  2009-10-29  2:54         ` wanPMC-CxT1E1 Greg KH
  0 siblings, 1 reply; 22+ messages in thread
From: Bob Beers @ 2009-10-29  1:43 UTC (permalink / raw)
  To: Greg KH; +Cc: netdev

On Wed, Oct 28, 2009 at 9:05 PM, Greg KH <greg@kroah.com> wrote:
> On Tue, Oct 27, 2009 at 01:48:53PM -0400, Bob Beers wrote:
>> On Mon, Oct 26, 2009 at 4:41 PM, Greg KH <greg@kroah.com> wrote:
>> > Getting it to build on 2.6.31 is more important than RHEL5, we can't do
>> > anything with an old kernel like that.
>>
>> ok, so where do I start, I have a system ready to start
>>  git cloning, and creating patches. I googled for a while
>>  but didn't find a nice recipe for participating in the -staging
>>  process.
>
> Ick, this isn't going to be easy, a lot of work needs to be done on the
> driver to get it just to build on the latest kernel tree.  I personally
> don't have the time to do it right now, but will gladly accept patches
> that add it to the staging tree if someone else wants to do it.
>
> sorry,

I've started down the path.  Is 'successfully compiles' the only requirement
 for the first patch?

thanks,
-- 
-Bob Beers

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2009-10-29  1:43       ` wanPMC-CxT1E1 Bob Beers
@ 2009-10-29  2:54         ` Greg KH
  0 siblings, 0 replies; 22+ messages in thread
From: Greg KH @ 2009-10-29  2:54 UTC (permalink / raw)
  To: Bob Beers; +Cc: netdev

On Wed, Oct 28, 2009 at 09:43:44PM -0400, Bob Beers wrote:
> On Wed, Oct 28, 2009 at 9:05 PM, Greg KH <greg@kroah.com> wrote:
> > On Tue, Oct 27, 2009 at 01:48:53PM -0400, Bob Beers wrote:
> >> On Mon, Oct 26, 2009 at 4:41 PM, Greg KH <greg@kroah.com> wrote:
> >> > Getting it to build on 2.6.31 is more important than RHEL5, we can't do
> >> > anything with an old kernel like that.
> >>
> >> ok, so where do I start, I have a system ready to start
> >> ?git cloning, and creating patches. I googled for a while
> >> ?but didn't find a nice recipe for participating in the -staging
> >> ?process.
> >
> > Ick, this isn't going to be easy, a lot of work needs to be done on the
> > driver to get it just to build on the latest kernel tree. ?I personally
> > don't have the time to do it right now, but will gladly accept patches
> > that add it to the staging tree if someone else wants to do it.
> >
> > sorry,
> 
> I've started down the path.  Is 'successfully compiles' the only requirement
>  for the first patch?

Yup, as long as it builds I'm happy :)

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2009-10-27 17:48   ` wanPMC-CxT1E1 Bob Beers
  2009-10-28 18:11     ` wanPMC-CxT1E1 Greg KH
  2009-10-29  1:05     ` wanPMC-CxT1E1 Greg KH
@ 2009-10-29 13:54     ` Krzysztof Halasa
  2009-10-30  1:52     ` wanPMC-CxT1E1 Krzysztof Halasa
  3 siblings, 0 replies; 22+ messages in thread
From: Krzysztof Halasa @ 2009-10-29 13:54 UTC (permalink / raw)
  To: Bob Beers; +Cc: Greg KH, netdev

Bob Beers <bob.beers@gmail.com> writes:

> ok, so where do I start, I have a system ready to start
>  git cloning, and creating patches. I googled for a while
>  but didn't find a nice recipe for participating in the -staging
>  process.

I can make it compile, just send me the tarball.
Not much more at the moment though.
-- 
Krzysztof Halasa

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2009-10-27 17:48   ` wanPMC-CxT1E1 Bob Beers
                       ` (2 preceding siblings ...)
  2009-10-29 13:54     ` wanPMC-CxT1E1 Krzysztof Halasa
@ 2009-10-30  1:52     ` Krzysztof Halasa
  2009-11-02 20:41       ` wanPMC-CxT1E1 Bob Beers
  3 siblings, 1 reply; 22+ messages in thread
From: Krzysztof Halasa @ 2009-10-30  1:52 UTC (permalink / raw)
  To: Bob Beers; +Cc: Greg KH, netdev

Bob Beers <bob.beers@gmail.com> writes:

> ok, so where do I start, I have a system ready to start
>  git cloning, and creating patches. I googled for a while
>  but didn't find a nice recipe for participating in the -staging
>  process.

I gave it a try. At least compiles with few warnings. Not sure about the
WORK_INIT() change.

Created drivers/net/wan/cxt1e1, moved all relevant SBE's .c and .h
there, added a simple Makefile/Kconfig. Quick and dirty. There is a
_lot_ of work to be done before it meets the usual kernel standards.

It's not in staging/ so the paths need to be corrected but I can't work
further on it at this time. Hand-edited but I tried to be careful.

Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>

 drivers/net/wan/Kconfig         |   22 ++++++++++++++++++++++
 drivers/net/wan/Makefile        |    1 +
 drivers/net/wan/cxt1e1/Makefile |    3 +++
 drivers/net/wan/cxt1e1/functions.c           |  117 +----
 drivers/net/wan/cxt1e1/hwprobe.c             |   30 +-
 drivers/net/wan/cxt1e1/libsbew.h             |    4 -
 drivers/net/wan/cxt1e1/linux.c               |  631 +++++++------------------
 drivers/net/wan/cxt1e1/musycc.c              |  237 +----------
 drivers/net/wan/cxt1e1/musycc.h              |   51 +--
 drivers/net/wan/cxt1e1/pmcc4_defs.h          |   28 +--
 drivers/net/wan/cxt1e1/pmcc4_drv.c           |  114 +-----
 drivers/net/wan/cxt1e1/pmcc4_private.h       |   34 +--
 drivers/net/wan/cxt1e1/pmcc4_sysdep.h        |   77 +---
 drivers/net/wan/cxt1e1/sbecom_inline_linux.h |   65 +---
 drivers/net/wan/cxt1e1/sbeid.c               |   38 +--
 drivers/net/wan/cxt1e1/sbeproc.c             |   70 +---
 drivers/net/wan/cxt1e1/sbeproc.h             |   39 +--

diff --git a/drivers/net/wan/Kconfig b/drivers/net/wan/Kconfig
index d08ce6a..0c3c761 100644
--- a/drivers/net/wan/Kconfig
+++ b/drivers/net/wan/Kconfig
@@ -342,6 +342,28 @@ config IXP4XX_HSS
 	  Say Y here if you want to use built-in HSS ports
 	  on IXP4xx processor.
 
+config CXT1E1
+	tristate "SBE wanPMC-C[421]T1E1 hardware support"
+	depends on HDLC && PCI
+	help
+	  This driver supports the SBE wanPMC-CxT1E1 1, 2 and 4 port T1
+	  channelized stream WAN adapter card which contains a HDLC/Transparent
+	  mode controller.
+
+	  To compile this driver as a module, choose M here: the
+	  module will be called cxt1e1.
+
+	  If unsure, say N.
+
+config SBE_PMCC4_NCOMM
+	bool "SBE PMCC4 NCOMM support"
+	depends on SBE_PMCC4
+	help
+          SBE supplies optional support for NCOMM products.
+
+	  If you have purchased this optional support you must say Y or M
+	  here to allow the driver to operate with the NCOMM product.
+
 config DLCI
 	tristate "Frame Relay DLCI support"
 	---help---
diff --git a/drivers/net/wan/Makefile b/drivers/net/wan/Makefile
index 19d14bc..1715c14 100644
--- a/drivers/net/wan/Makefile
+++ b/drivers/net/wan/Makefile
@@ -42,6 +42,7 @@ obj-$(CONFIG_WANXL)		+= wanxl.o
 obj-$(CONFIG_PCI200SYN)		+= pci200syn.o
 obj-$(CONFIG_PC300TOO)		+= pc300too.o
 obj-$(CONFIG_IXP4XX_HSS)	+= ixp4xx_hss.o
+obj-$(CONFIG_CXT1E1)		+= cxt1e1/
 
 clean-files := wanxlfw.inc
 $(obj)/wanxl.o:	$(obj)/wanxlfw.inc
diff --git a/drivers/net/wan/cxt1e1/Makefile b/drivers/net/wan/cxt1e1/Makefile
new file mode 100644
index 0000000..82b9118
--- /dev/null
+++ b/drivers/net/wan/cxt1e1/Makefile
@@ -0,0 +1,3 @@
+obj-$(CONFIG_CXT1E1) += cxt1e1.o
+
+cxt1e1-objs := comet.o comet_tables.o functions.o hwprobe.o linux.o musycc.o pmc93x6_eeprom.o pmcc4_drv.o sbecrc.o sbeid.o sbeproc.o
diff --git a/drivers/net/wan/cxt1e1/functions.c b/drivers/net/wan/cxt1e1/functions.c
index e490b5e..52581d7 100644
--- a/drivers/net/wan/cxt1e1/functions.c
+++ b/drivers/net/wan/cxt1e1/functions.c
@@ -1,10 +1,4 @@
 /*
- * $Id: functions.c,v 2.1 2007/08/15 21:59:46 rickd PMCC4_3_1B $
- */
-
-/*-----------------------------------------------------------------------------
- * functions.c -
- *
  * Copyright (C) 2003-2005  SBE, Inc.
  *
  *   This program is free software; you can redistribute it and/or modify
@@ -16,47 +10,15 @@
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *
- * For further information, contact via email: support@sbei.com
- * SBE, Inc.  San Ramon, California  U.S.A.
- *-----------------------------------------------------------------------------
- * RCS info:
- * RCS revision: $Revision: 2.1 $
- * Last changed on $Date: 2007/08/15 21:59:46 $
- * Changed by $Author: rickd $
- *-----------------------------------------------------------------------------
- * $Log: functions.c,v $
- * Revision 2.1  2007/08/15 21:59:46  rickd
- * Watchdog data address casting to *ULONG* for 64bit kernel compatibility.
- *
- * Revision 2.0  2005/09/28 00:10:05  rickd
- * Add inlining of functions. Use OS_ function-name prefix.
- *
- * Revision 1.3  2005/05/10 22:45:12  rickd
- * Add c4_sem_init().  Fix udelay for large delays which use mdelay()
- * and then udelay() for remnants and short delays per Linux documentation
- * suggestions that udelay() for long delays is not accurate.
- * CI prior to major code upgrade to standardize to 256T3 code model.
- *
- * Revision 1.2  2005/04/28 23:54:48  rickd
- * Add RCS tracking header.
- *
- *-----------------------------------------------------------------------------
  */
 
-char        SBEid_pmcc4_functionsc[] =
-"@(#)functions.c - $Revision: 2.1 $      (c) Copyright 2002-2005 SBE, Inc.";
-
-
-#include "pmcc4_sysdep.h"
 #include <linux/slab.h>
-#include <asm/io.h>
-#include <asm/byteorder.h>
-#include <asm/semaphore.h>
 #include <linux/netdevice.h>
 #include <linux/delay.h>
 #include <linux/hdlc.h>
-
+#include <asm/io.h>
+#include <asm/byteorder.h>
+#include "pmcc4_sysdep.h"
 #include "sbecom_inline_linux.h"
 #include "libsbew.h"
 #include "pmcc4.h"
@@ -159,41 +121,22 @@ watchdog_func (unsigned long arg)
             printk (KERN_WARNING "watchdog_func: drvr not available (%x)\n", drvr_state);
         return;
     }
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-    /* Initialize the tq entry only the first time */
-    if (wd->init_tq)
-    {
-        wd->init_tq = 0;
-        wd->tq.routine = wd->func;
-        wd->tq.sync = 0;
-        wd->tq.data = wd->softc;
-    }
-    schedule_task (&wd->tq);
-#else
     schedule_work (&wd->work);
-#endif
     mod_timer (&wd->h, jiffies + wd->ticks);
 }
 
-int         OS_init_watchdog (struct watchdog * wdp, void (*f) (void *), void *c, int usec)
+int OS_init_watchdog(struct watchdog *wdp, void (*f)(struct work_struct *),
+		     void *c, int usec)
 {
-    wdp->func = f;
-    wdp->softc = c;
-    wdp->ticks = (HZ) * (usec / 1000) / 1000;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-    wdp->init_tq = 1;               /* initialize the tq entry only the first
-                                     * time */
-#else
-    INIT_WORK (&wdp->work, f, c);
-#endif
-    init_timer (&wdp->h);
-    {
-        ci_t       *ci = (ci_t *) c;
-
+	ci_t *ci = (ci_t *)c;
+	wdp->func = f;
+	wdp->softc = c;
+	wdp->ticks = (HZ) * (usec / 1000) / 1000;
+	INIT_WORK(&wdp->work, f);
+	init_timer(&wdp->h);
         wdp->h.data = (unsigned long) &ci->wd;
-    }
-    wdp->h.function = watchdog_func;
-    return 0;
+	wdp->h.function = watchdog_func;
+	return 0;
 }
 
 void
@@ -303,35 +246,15 @@ sd_queue_stopped (void *user)
     return (netif_queue_stopped (ndev));
 }
 
-void
-sd_recv_consume (void *token, size_t len, void *user)
+void sd_recv_consume(void *token, size_t len, void *user)
 {
-    struct net_device *ndev = user;
-    struct sk_buff *skb = token;
-
-    skb->dev = ndev;
-    ndev->last_rx = jiffies;
-    skb_put (skb, len);
-    skb->mac.raw = skb->data;
-#if !defined(GENERIC_HDLC_VERSION) || (GENERIC_HDLC_VERSION < 4)
-    V7 (hdlc_netif_rx) (dev_to_hdlc (ndev), skb);
-#else
-#ifdef CONFIG_SBE_HDLC_V20
-    /*
-     * hdlc implementation under 2.4.20 seems to contain an interim <hdlc>
-     * stack
-     */
-    skb->protocol = htons (ETH_P_HDLC);
-#else
-    /*
-     * hdlc implementation under 2.4.21+ seems to contain an augmented <hdlc>
-     * stack whereby linux/hdlc.h contains the following "inline" routine
-     */
+	struct sk_buff *skb = token;
+	struct net_device *dev = user;
 
-    skb->protocol = hdlc_type_trans (skb, ndev);
-#endif
-    netif_rx (skb);
-#endif
+	skb->dev = dev;
+	skb_put(skb, len);
+	skb->protocol = hdlc_type_trans(skb, dev);
+	netif_rx(skb);
 }
 
 
diff --git a/drivers/net/wan/cxt1e1/hwprobe.c b/drivers/net/wan/cxt1e1/hwprobe.c
index 8f5b1d1..8b5d955 100644
--- a/drivers/net/wan/cxt1e1/hwprobe.c
+++ b/drivers/net/wan/cxt1e1/hwprobe.c
@@ -107,7 +107,7 @@ show_two (hdw_info_t * hi, int brdno)
     bp = banner;
     memset (banner, 0, 80);         /* clear print buffer */
 
-    ci = (ci_t *) hi->ndev->priv;
+    ci = netdev_priv(hi->ndev);
     bid = sbeid_get_bdname (ci);
     switch (hi->promfmt)
     {
@@ -243,27 +243,25 @@ cleanup_ioremap (void)
 }
 
 
-void
-cleanup_devs (void)
+void cleanup_devs(void)
 {
-    hdw_info_t *hi;
-    int         i;
+	hdw_info_t *hi;
+	int i;
 
-    for (i = 0, hi = hdw_info; i < MAX_BOARDS; i++, hi++)
-    {
-        if (hi->pci_slot == 0xff || !hi->ndev)
-            break;
-        c4_stopwd (hi->ndev->priv);
+	for (i = 0, hi = hdw_info; i < MAX_BOARDS; i++, hi++) {
+		if (hi->pci_slot == 0xff || !hi->ndev)
+			break;
+		c4_stopwd(netdev_priv(hi->ndev));
 #ifdef CONFIG_PROC_FS
-        sbecom_proc_brd_cleanup (hi->ndev->priv);
+		sbecom_proc_brd_cleanup(netdev_priv(hi->ndev));
 #endif
-        unregister_netdev (hi->ndev);
-        free_irq (hi->pdev[0]->irq, hi->ndev);
+		unregister_netdev(hi->ndev);
+		free_irq (hi->pdev[0]->irq, hi->ndev);
 #ifdef CONFIG_SBE_PMCC4_NCOMM
-        free_irq (hi->pdev[1]->irq, hi->ndev);
+		free_irq(hi->pdev[1]->irq, hi->ndev);
 #endif
-        OS_kfree (hi->ndev);
-    }
+		OS_kfree(hi->ndev);
+	}
 }
 
 
diff --git a/drivers/net/wan/cxt1e1/libsbew.h b/drivers/net/wan/cxt1e1/libsbew.h
index 5c99646..359a36a 100644
--- a/drivers/net/wan/cxt1e1/libsbew.h
+++ b/drivers/net/wan/cxt1e1/libsbew.h
@@ -232,9 +232,7 @@ struct sbecom_port_param
     u_int8_t    portP;          /* more port parameters (clock source - 0x80;
                                  * and LBO - 0xf; */
                                 /* bits 0x70 are reserved for future use ) */
-#ifdef SBE_PMCC4_ENABLE
 	u_int32_t   hypersize;  /* RLD DEBUG - add this in until I learn how to make this entry obsolete */
-#endif
     int         reserved[3-1];    /* reserved for future use */
     int    _res[4];
 };
@@ -271,11 +269,9 @@ struct sbecom_port_param
     struct sbecom_chan_param
     {
         u_int32_t   channum;    /* 0: */
-#ifdef SBE_PMCC4_ENABLE
 	u_int32_t   card;  /* RLD DEBUG - add this in until I learn how to make this entry obsolete */
 	u_int32_t   port;  /* RLD DEBUG - add this in until I learn how to make this entry obsolete */
 	u_int8_t bitmask[32];
-#endif
         u_int32_t   intr_mask;  /* 4: interrupt mask, specify ored
                                  * (SS7_)INTR_* to disable */
         u_int8_t    status;     /* 8: channel transceiver status (TX_ENABLED,
diff --git a/drivers/net/wan/cxt1e1/linux.c b/drivers/net/wan/cxt1e1/linux.c
index a8d6784..de33908 100644
--- a/drivers/net/wan/cxt1e1/linux.c
+++ b/drivers/net/wan/cxt1e1/linux.c
@@ -1,11 +1,4 @@
-/*
- * $Id: linux.c,v 2.11 2008/01/03 20:53:03 rdobbs PMCC4_3_1B $
- */
-
-/*-----------------------------------------------------------------------------
- * linux.c -
- *
- * Copyright (C) 2007-2008  One Stop Systems
+/* Copyright (C) 2007-2008  One Stop Systems
  * Copyright (C) 2003-2006  SBE, Inc.
  *
  *   This program is free software; you can redistribute it and/or modify
@@ -17,86 +10,17 @@
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *
- * For further information, contact via email: support@onestopsystems.com
- * One Stop Systems  Escondido, California  U.S.A.
- *-----------------------------------------------------------------------------
- * RCS info:
- * RCS revision: $Revision: 2.11 $
- * Last changed on $Date: 2008/01/03 20:53:03 $
- * Changed by $Author: rdobbs $
- *-----------------------------------------------------------------------------
- * $Log: linux.c,v $
- * Revision 2.11  2008/01/03 20:53:03  rdobbs
- * Release string name from SBE to OSSI.
- *
- * Revision 2.10  2007/08/15 22:04:02  rickd
- * Correct casting to *ULONG* w/in do_reset() to support 64bit compatibility.
- *
- * Revision 2.9  2007/05/02 22:50:19  rickd
- * Add GCC compiler checks from kernel's init/main.c
- *
- * Revision 2.8  2006/04/21 00:56:40  rickd
- * workqueue files now prefixed with <sbecom> prefix.
- *
- * Revision 2.7  2005/11/03 00:03:26  rickd
- * Routine c4_add_dev() can be declared __init.
- *
- * Revision 2.6  2005/11/02 23:48:22  rickd
- * Routine create_chan() was erroneoulsy declared __init, which is causing
- * panic under 2.6.13 as code is correctly removed from kernel space due
- * to the declaration (so removed declaration).
- *
- * Revision 2.5  2005/11/01 19:23:48  rickd
- * Add sanity checks against max_port for ioctl functions.
- * Several functions should return status_t for consistant usage of same.
- *
- * Revision 2.4  2005/10/27 18:54:18  rickd
- * Return c4_chan_up() failure code.  Clean out old code.
- *
- * Revision 2.3  2005/10/17 23:55:27  rickd
- * Initial port of NCOMM support patches from original work found
- * in pmc_c4t1e1 as updated by NCOMM.  Ref: CONFIG_SBE_PMCC4_NCOMM.
- * Added cleanup w/in c4_add_dev() if c4_init2() fails.
- *
- * Revision 2.2  2005/10/13 20:36:28  rickd
- * Fix compiler warning causaed by mixing code/declarations of <priv>.
- *
- * Revision 2.1  2005/10/11 18:35:15  rickd
- * Remove option ifname, it's not supported by the system's hdlc driver
- * which explicitly names interface only <hdlc>.
- *
- * Revision 2.0  2005/09/28 00:10:06  rickd
- * Implement 2.6 workqueue for TX/RX restart. Use board's
- * serial number.
- *
- * Revision 1.4  2005/08/12 17:47:03  rickd
- * Major rewrite including MUSYCC bug fix updates.
- *
- * Revision 1.3  2005/05/10 22:40:54  rickd
- * Start switch to common structure variable names and routines.
- * Switch to THIS_MODULE usage in printks to handle alternate driver names.
- *
- * Revision 1.2  2005/04/28 23:54:48  rickd
- * Add RCS tracking header.
- *
- *-----------------------------------------------------------------------------
  */
 
-char        OSSIid_pmcc4_linuxc[] =
-"@(#)linux.c - $Revision: 2.11 $   (c) Copyright 2008 One Stop Systems";
-
-
 #include <linux/types.h>
-#include "pmcc4_sysdep.h"
 #include <linux/netdevice.h>
 #include <linux/hdlc.h>
 #include <linux/if_arp.h>
 #include <linux/init.h>
-#include <asm/uaccess.h>
 #include <linux/rtnetlink.h>
 #include <linux/skbuff.h>
-
+#include <asm/uaccess.h>
+#include "pmcc4_sysdep.h"
 #include "sbecom_inline_linux.h"
 #include "libsbew.h"
 #include "pmcc4.h"
@@ -139,7 +63,6 @@ status_t    c4_chan_work_init (mpi_t *, mch_t *);
 void        musycc_wq_chan_restart (void *);
 status_t __init c4_init (ci_t *, u_char *, u_char *);
 status_t __init c4_init2 (ci_t *);
-ci_t       *__init c4_new (void *);
 int __init  c4hw_attach_all (void);
 void __init hdw_sn_get (hdw_info_t *, int);
 
@@ -160,7 +83,7 @@ status_t    musycc_chan_down (ci_t *, int);
 irqreturn_t musycc_intr_th_handler (void *);
 int         musycc_start_xmit (ci_t *, int, void *);
 
-extern char pmcc4_OSSI_release[];
+static const char pmcc4_OSSI_release[] = "based on PMCC4_3_1B";
 extern ci_t *CI;
 extern struct s_hdw_info hdw_info[];
 
@@ -185,24 +108,23 @@ extern int  unregister_hdlc_device_v7 (hdlc_device *);
 int         error_flag;         /* module load error reporting */
 int         log_level = LOG_ERROR;
 int         log_level_default = LOG_ERROR;
+module_param(log_level, int, 0444);
 
-MODULE_PARM (log_level, "i");
 int         max_mru = MUSYCC_MRU;
 int         max_mru_default = MUSYCC_MRU;
+module_param(max_mru, int, 0444);
 
-MODULE_PARM (max_mru, "i");
 int         max_mtu = MUSYCC_MTU;
 int         max_mtu_default = MUSYCC_MTU;
+module_param(max_mtu, int, 0444);
 
-MODULE_PARM (max_mtu, "i");
 int         max_txdesc_used = MUSYCC_TXDESC_MIN;
 int         max_txdesc_default = MUSYCC_TXDESC_MIN;
+module_param(max_txdesc_used, int, 0444);
 
-MODULE_PARM (max_txdesc_used, "i");
 int         max_rxdesc_used = MUSYCC_RXDESC_MIN;
 int         max_rxdesc_default = MUSYCC_RXDESC_MIN;
-
-MODULE_PARM (max_rxdesc_used, "i");
+module_param(max_rxdesc_used, int, 0444);
 
 /****************************************************************************/
 /****************************************************************************/
@@ -218,10 +140,6 @@ getuserbychan (int channum)
 }
 
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-#define DEV_TO_PRIV(dev) ( * (struct c4_priv **) ((hdlc_device*)(dev)+1))
-#else
-
 char       *
 get_hdlc_name (hdlc_device * hdlc)
 {
@@ -230,7 +148,6 @@ get_hdlc_name (hdlc_device * hdlc)
 
     return dev->name;
 }
-#endif
 
 
 static      status_t
@@ -282,19 +199,11 @@ c4_wk_chan_restart (mch_t * ch)
     queue_work (pi->wq_port, &ch->ch_work);
 }
 
-status_t
-c4_wk_chan_init (mpi_t * pi, mch_t * ch)
+status_t c4_wk_chan_init(mpi_t * pi, mch_t * ch)
 {
-    /*
-     * this will be used to restart a stopped channel
-     */
-
-    /** INIT_WORK (struct work_struct *work,
-     **            void (*function)(void *),
-     **            void *data);
-     **/
-    INIT_WORK (&ch->ch_work, musycc_wq_chan_restart, ch);
-    return 0;                       /* success */
+	/* this will be used to restart a stopped channel */
+	INIT_WORK (&ch->ch_work, musycc_wq_chan_restart);
+	return 0;
 }
 
 status_t
@@ -337,14 +246,11 @@ c4_wq_port_cleanup (mpi_t * pi)
 
 /***************************************************************************/
 
-irqreturn_t
-c4_linux_interrupt (int irq, void *dev_instance, struct pt_regs * regs)
+irqreturn_t c4_linux_interrupt(int irq, void *dev_instance)
 {
-    struct net_device *ndev = dev_instance;
+	struct net_device *ndev = dev_instance;
 
-    if (!ndev->priv)
-        return IRQ_NONE;
-    return musycc_intr_th_handler (ndev->priv);
+	return musycc_intr_th_handler(netdev_priv(ndev));
 }
 
 
@@ -362,12 +268,6 @@ c4_ebus_interrupt (int irq, void *dev_instance, struct pt_regs * regs)
 
 
 static int
-void_init (struct net_device * ndev)
-{
-    return 0;
-}
-
-static int
 void_open (struct net_device * ndev)
 {
     printk ("%s: trying to open master device !\n", ndev->name);
@@ -375,161 +275,50 @@ void_open (struct net_device * ndev)
 }
 
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-#if !defined(GENERIC_HDLC_VERSION) || (GENERIC_HDLC_VERSION < 4)
-
-/** Linux 2.4.18-19 **/
-STATIC int
-chan_open (hdlc_device * hdlc)
-{
-    status_t    ret;
-
-    if ((ret = c4_chan_up (DEV_TO_PRIV (hdlc)->ci, DEV_TO_PRIV (hdlc)->channum)))
-        return -ret;
-    MOD_INC_USE_COUNT;
-    netif_start_queue (hdlc_to_dev (hdlc));
-    return 0;                       /* no error = success */
-}
-
-#else
-
-/** Linux 2.4.20 and higher **/
-STATIC int
-chan_open (struct net_device * ndev)
+STATIC int chan_open(struct net_device *ndev)
 {
-    hdlc_device *hdlc = dev_to_hdlc (ndev);
-    status_t    ret;
-
-    hdlc->proto = IF_PROTO_HDLC;
-    if ((ret = hdlc_open (hdlc)))
-    {
-        printk ("%s: hdlc_open failure, err %d.\n", THIS_MODULE->name, ret);
-        return ret;
-    }
-    if ((ret = c4_chan_up (DEV_TO_PRIV (hdlc)->ci, DEV_TO_PRIV (hdlc)->channum)))
-        return -ret;
-    MOD_INC_USE_COUNT;
-    netif_start_queue (hdlc_to_dev (hdlc));
-    return 0;                       /* no error = success */
-}
-#endif
-
-#else
-
-/** Linux 2.6 **/
-STATIC int
-chan_open (struct net_device * ndev)
-{
-    hdlc_device *hdlc = dev_to_hdlc (ndev);
-    const struct c4_priv *priv = hdlc->priv;
-    int         ret;
-
-    hdlc->proto.id = IF_PROTO_HDLC;
-    if ((ret = hdlc_open (ndev)))
-    {
-        printk ("%s: hdlc_open failure, err %d.\n", THIS_MODULE->name, ret);
-        return ret;
-    }
-    if ((ret = c4_chan_up (priv->ci, priv->channum)))
-        return -ret;
-    try_module_get (THIS_MODULE);
-    netif_start_queue (ndev);
-    return 0;                       /* no error = success */
+	hdlc_device *hdlc = dev_to_hdlc (ndev);
+	const struct c4_priv *priv = hdlc->priv;
+	int ret;
+
+	if ((ret = hdlc_open (ndev))) {
+		printk ("%s: hdlc_open failure, err %d.\n",
+			THIS_MODULE->name, ret);
+		return ret;
+	}
+	if ((ret = c4_chan_up (priv->ci, priv->channum)))
+		return -ret;
+	try_module_get(THIS_MODULE);
+	netif_start_queue(ndev);
+	return 0;
 }
-#endif
 
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-#if !defined(GENERIC_HDLC_VERSION) || (GENERIC_HDLC_VERSION < 4)
-
-/** Linux 2.4.18-19 **/
-STATIC void
-chan_close (hdlc_device * hdlc)
+STATIC int chan_close(struct net_device *ndev)
 {
-    netif_stop_queue (hdlc_to_dev (hdlc));
-    musycc_chan_down ((ci_t *) 0, DEV_TO_PRIV (hdlc)->channum);
-    MOD_DEC_USE_COUNT;
+	hdlc_device *hdlc = dev_to_hdlc (ndev);
+	const struct c4_priv *priv = hdlc->priv;
+
+	netif_stop_queue (ndev);
+	musycc_chan_down ((ci_t *) 0, priv->channum);
+	hdlc_close (ndev);
+	module_put (THIS_MODULE);
+	return 0;
 }
-#else
 
-/** Linux 2.4.20 and higher **/
-STATIC int
-chan_close (struct net_device * ndev)
-{
-    hdlc_device *hdlc = dev_to_hdlc (ndev);
-
-    netif_stop_queue (hdlc_to_dev (hdlc));
-    musycc_chan_down ((ci_t *) 0, DEV_TO_PRIV (hdlc)->channum);
-    hdlc_close (hdlc);
-    MOD_DEC_USE_COUNT;
-    return 0;
-}
-#endif
 
-#else
-
-/** Linux 2.6 **/
-STATIC int
-chan_close (struct net_device * ndev)
+STATIC int chan_dev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 {
-    hdlc_device *hdlc = dev_to_hdlc (ndev);
-    const struct c4_priv *priv = hdlc->priv;
-
-    netif_stop_queue (ndev);
-    musycc_chan_down ((ci_t *) 0, priv->channum);
-    hdlc_close (ndev);
-    module_put (THIS_MODULE);
-    return 0;
+    return hdlc_ioctl(dev, ifr, cmd);
 }
-#endif
-
 
-#if !defined(GENERIC_HDLC_VERSION) || (GENERIC_HDLC_VERSION < 4)
 
-/** Linux 2.4.18-19 **/
-STATIC int
-chan_ioctl (hdlc_device * hdlc, struct ifreq * ifr, int cmd)
-{
-    if (cmd == HDLCSCLOCK)
-    {
-        ifr->ifr_ifru.ifru_ivalue = LINE_DEFAULT;
-        return 0;
-    }
-    return -EINVAL;
-}
-#endif
-
-
-#if !defined(GENERIC_HDLC_VERSION) || (GENERIC_HDLC_VERSION < 4)
-STATIC int
-chan_dev_ioctl (struct net_device * hdlc, struct ifreq * ifr, int cmd)
-{
-    if (cmd == HDLCSCLOCK)
-    {
-        ifr->ifr_ifru.ifru_ivalue = LINE_DEFAULT;
-        return 0;
-    }
-    return -EINVAL;
-}
-#else
-STATIC int
-chan_dev_ioctl (struct net_device * dev, struct ifreq * ifr, int cmd)
-{
-    return hdlc_ioctl (dev, ifr, cmd);
-}
-
-
-STATIC int
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-chan_attach_noop (hdlc_device * hdlc, unsigned short foo_1, unsigned short foo_2)
-#else
-chan_attach_noop (struct net_device * ndev, unsigned short foo_1, unsigned short foo_2)
-#endif
+STATIC int chan_attach_noop(struct net_device *ndev, unsigned short foo_1,
+			    unsigned short foo_2)
 {
     return 0;                   /* our driver has nothing to do here, show's
                                  * over, go home */
 }
-#endif
 
 
 STATIC struct net_device_stats *
@@ -539,23 +328,16 @@ chan_get_stats (struct net_device * ndev)
     struct net_device_stats *nstats;
     struct sbecom_chan_stats *stats;
     int         channum;
+    struct c4_priv *priv;
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-    channum = DEV_TO_PRIV (ndev)->channum;
-#else
-    {
-        struct c4_priv *priv;
-
-        priv = (struct c4_priv *) dev_to_hdlc (ndev)->priv;
-        channum = priv->channum;
-    }
-#endif
+    priv = (struct c4_priv *)dev_to_hdlc(ndev)->priv;
+    channum = priv->channum;
 
     ch = c4_find_chan (channum);
     if (ch == NULL)
         return NULL;
 
-    nstats = &dev_to_hdlc (ndev)->stats;
+    nstats = &ndev->stats;
     stats = &ch->s;
 
     memset (nstats, 0, sizeof (struct net_device_stats));
@@ -589,46 +371,34 @@ chan_get_stats (struct net_device * ndev)
 }
 
 
-static ci_t *
-get_ci_by_dev (struct net_device * ndev)
+static ci_t* get_ci_by_dev(struct net_device *ndev)
 {
-    return (ci_t *) ndev->priv;
+	return (ci_t *)netdev_priv(ndev);
 }
 
 
-#if !defined(GENERIC_HDLC_VERSION) || (GENERIC_HDLC_VERSION < 4)
-STATIC int
-c4_linux_xmit (hdlc_device * hdlc, struct sk_buff * skb)
+STATIC int c4_linux_xmit(struct sk_buff *skb, struct net_device *ndev)
 {
-    int         rval;
+	const struct c4_priv *priv;
+	int rval;
+	hdlc_device *hdlc = dev_to_hdlc(ndev);
 
-    rval = musycc_start_xmit (DEV_TO_PRIV (hdlc)->ci, DEV_TO_PRIV (hdlc)->channum, skb);
-    return -rval;
+	priv = hdlc->priv;
+	rval = musycc_start_xmit (priv->ci, priv->channum, skb);
+	return -rval;
 }
-#else                           /* new */
-STATIC int
-c4_linux_xmit (struct sk_buff * skb, struct net_device * ndev)
-{
-    const struct c4_priv *priv;
-    int         rval;
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-    priv = DEV_TO_PRIV (ndev);
-#else
-    hdlc_device *hdlc = dev_to_hdlc (ndev);
-
-    priv = hdlc->priv;
-#endif
 
-    rval = musycc_start_xmit (priv->ci, priv->channum, skb);
-    return -rval;
-}
-#endif                          /* GENERIC_HDLC_VERSION */
 
+static const struct net_device_ops chan_ops = {
+	.ndo_open       = chan_open,
+	.ndo_stop       = chan_close,
+	.ndo_start_xmit = c4_linux_xmit,
+	.ndo_do_ioctl   = chan_dev_ioctl,
+	.ndo_get_stats  = chan_get_stats,
+};
 
-STATIC struct net_device *
-create_chan (struct net_device * ndev, ci_t * ci,
-             struct sbecom_chan_param * cp)
+STATIC struct net_device* create_chan(struct net_device *ndev, ci_t *ci,
+				      struct sbecom_chan_param *cp)
 {
     hdlc_device *hdlc;
     struct net_device *dev;
@@ -638,27 +408,6 @@ create_chan (struct net_device * ndev, ci_t * ci,
     if (c4_find_chan (cp->channum))
         return 0;                   /* channel already exists */
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-    hdlc = (hdlc_device *) OS_kmalloc (sizeof (hdlc_device) + sizeof (void *));
-    if (!hdlc)
-    {
-        printk (KERN_WARNING "%s: no memory for hdlc_device !\n", ci->devname);
-        return 0;
-    }
-    dev = hdlc_to_dev (hdlc);
-
-    /* allocate and fill in private data structure */
-    DEV_TO_PRIV (dev) = kmalloc (sizeof (struct c4_priv), GFP_KERNEL);
-    if (!DEV_TO_PRIV (dev))
-    {
-        printk (KERN_WARNING "%s: no memory for c4_priv !\n", ci->devname);
-        OS_kfree (hdlc);
-        return 0;
-    }
-    DEV_TO_PRIV (dev)->ci = ci;
-    DEV_TO_PRIV (dev)->channum = cp->channum;
-
-#else
     {
         struct c4_priv *priv;
 
@@ -681,13 +430,10 @@ create_chan (struct net_device * ndev, ci_t * ci,
     }
 
     hdlc = dev_to_hdlc (dev);
-#endif
 
     dev->base_addr = 0;             /* not I/O mapped */
     dev->irq = ndev->irq;
-    dev->init = void_init;
     dev->type = ARPHRD_RAWHDLC;
-    dev->do_ioctl = chan_dev_ioctl;
     *dev->name = 0;                 /* default ifconfig name = "hdlc" */
 
     hi = (hdw_info_t *) ci->hdw_info;
@@ -711,15 +457,7 @@ create_chan (struct net_device * ndev, ci_t * ci,
     }
 
     hdlc->xmit = c4_linux_xmit;
-
-#if !defined(GENERIC_HDLC_VERSION) || (GENERIC_HDLC_VERSION < 4)
-    hdlc->open = chan_open;
-    hdlc->close = chan_close;
-    hdlc->ioctl = chan_ioctl;
-#else                               /* new */
-    dev->hard_start_xmit = c4_linux_xmit;
-    dev->open = chan_open;
-    dev->stop = chan_close;
+    dev->netdev_ops = &chan_ops;
     /*
      * The native hdlc stack calls this 'attach' routine during
      * hdlc_raw_ioctl(), passing parameters for line encoding and parity.
@@ -730,16 +468,10 @@ create_chan (struct net_device * ndev, ci_t * ci,
      */
 
     hdlc->attach = chan_attach_noop;
-#endif                              /* GENERIC_HDLC_VERSION */
 
     rtnl_unlock ();                 /* needed due to Ioctl calling sequence */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-    ret = V7 (register_hdlc_device) (hdlc);
-#else
     ret = register_hdlc_device (dev);
-#endif
     /* NOTE: <stats> setting must occur AFTER registration in order to "take" */
-    dev->get_stats = chan_get_stats;
     dev->tx_queue_len = MAX_DEFAULT_IFQLEN;
 
     rtnl_lock ();                   /* needed due to Ioctl calling sequence */
@@ -748,12 +480,7 @@ create_chan (struct net_device * ndev, ci_t * ci,
         if (log_level >= LOG_WARN)
             printk ("%s: create_chan[%d] registration error = %d.\n",
                     ci->devname, cp->channum, ret);
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-        OS_kfree (DEV_TO_PRIV (dev));   /* cleanup */
-        OS_kfree (hdlc);            /* cleanup */
-#else
         free_netdev (dev);          /* cleanup */
-#endif
         return 0;                   /* failed to register */
     }
     return dev;
@@ -1036,26 +763,26 @@ do_deluser (struct net_device * ndev, int lockit)
     return 0;
 }
 
-int
-do_del_chan (struct net_device * musycc_dev, void *data)
+int do_del_chan(struct net_device *musycc_dev, void *data)
 {
     struct sbecom_chan_param cp;
-    char        buf[sizeof (CHANNAME) + 3];
+    char buf[sizeof(CHANNAME) + 3];
     struct net_device *dev;
-    int         ret;
-
-    if (copy_from_user (&cp, data,
-                        sizeof (struct sbecom_chan_param)))
-        return -EFAULT;
-    sprintf (buf, CHANNAME "%d", cp.channum);
-    if (!(dev = dev_get_by_name (buf)))
-        return -ENOENT;
-    dev_put (dev);
-    ret = do_deluser (dev, 1);
+    int ret;
+
+    if (copy_from_user(&cp, data,
+		       sizeof(struct sbecom_chan_param)))
+	    return -EFAULT;
+    sprintf(buf, CHANNAME "%d", cp.channum);
+    if (!(dev = dev_get_by_name(&init_net, buf)))
+	    return -ENOENT;
+    dev_put(dev);
+    ret = do_deluser(dev, 1);
     if (ret)
-        return ret;
-    return c4_del_chan (cp.channum);
+	    return ret;
+    return c4_del_chan(cp.channum);
 }
+
 int         c4_reset_board (void *);
 
 int
@@ -1070,20 +797,16 @@ do_reset (struct net_device * musycc_dev, void *data)
         char        buf[sizeof (CHANNAME) + 3];
 
         sprintf (buf, CHANNAME "%d", i);
-        if (!(ndev = dev_get_by_name (buf)))
+        if (!(ndev = dev_get_by_name (&init_net, buf)))
             continue;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-        priv = DEV_TO_PRIV (ndev);
-#else
         priv = dev_to_hdlc (ndev)->priv;
-#endif
 
 #if 0
         if ((unsigned long) (DEV_TO_PRIV (ndev)->ci) ==
             (unsigned long) (musycc_dev->priv))
 #else
         if ((unsigned long) (priv->ci) ==
-            (unsigned long) (musycc_dev->priv))
+            (unsigned long) (netdev_priv(musycc_dev)))
 #endif
         {
             ndev->flags &= ~IFF_UP;
@@ -1227,107 +950,108 @@ c4_ioctl (struct net_device * ndev, struct ifreq * ifr, int cmd)
 }
 
 
-struct net_device *__init
-c4_add_dev (hdw_info_t * hi, int brdno, unsigned long f0, unsigned long f1,
-            int irq0, int irq1)
-{
-    struct net_device *ndev;
-    ci_t       *ci;
+static const struct net_device_ops c4_ops = {
+	.ndo_open       = void_open,
+	.ndo_start_xmit = c4_linux_xmit,
+	.ndo_do_ioctl   = c4_ioctl,
+};
 
-    ndev = (struct net_device *) OS_kmalloc (sizeof (struct net_device));
-    if (!ndev)
-    {
-        printk (KERN_WARNING "%s: no memory for struct net_device !\n", hi->devname);
-        error_flag = ENOMEM;
-        return 0;
-    }
-    ndev->base_addr = 0;            /* not I/O mapped */
-    ndev->irq = irq0;
-    ndev->init = void_init;
-    ndev->type = ARPHRD_VOID;
-    ndev->open = void_open;
-    ndev->do_ioctl = c4_ioctl;
-    dev_alloc_name (ndev, SBE_IFACETMPL);
-
-    ndev->priv = c4_new ((void *) hi);
-    if (!ndev->priv)
-    {
-        printk (KERN_WARNING "%s: no memory for struct card_info !\n", hi->devname);
-        OS_kfree (ndev);
-        error_flag = ENOMEM;
-        return 0;
-    }
-    ci = (ci_t *) ndev->priv;
-    strcpy (ci->devname, hi->devname);
-    ci->release = &pmcc4_OSSI_release[0];
 
-    /* tasklet */
+static void c4_setup(struct net_device *dev)
+{
+	dev->type = ARPHRD_VOID;
+	dev->netdev_ops = &c4_ops;
+}
+
+struct net_device *__init c4_add_dev(hdw_info_t *hi, int brdno,
+				     unsigned long f0, unsigned long f1,
+				     int irq0, int irq1)
+{
+	struct net_device *ndev;
+	ci_t *ci;
+
+	ndev = alloc_netdev(sizeof(ci_t), SBE_IFACETMPL, c4_setup);
+	if (!ndev) {
+		printk(KERN_WARNING "%s: no memory for struct net_device !\n",
+		       hi->devname);
+		error_flag = ENOMEM;
+		return 0;
+	}
+	ci = netdev_priv(ndev);
+	ndev->irq = irq0;
+
+	ci->hdw_info = hi;
+	ci->state = C_INIT;         /* mark as hardware not available */
+	ci->next = c4_list;
+	c4_list = ci;
+	ci->brdno = ci->next ? ci->next->brdno + 1 : 0;
+
+	if (CI == 0)
+		CI = ci;                    /* DEBUG, only board 0 usage */
+
+	strcpy (ci->devname, hi->devname);
+	ci->release = &pmcc4_OSSI_release[0];
+
+	/* tasklet */
 #if defined(SBE_ISR_TASKLET)
-    tasklet_init (&ci->ci_musycc_isr_tasklet,
-                  (void (*) (unsigned long)) musycc_intr_bh_tasklet,
-                  (unsigned long) ci);
+	tasklet_init (&ci->ci_musycc_isr_tasklet,
+		      (void (*) (unsigned long)) musycc_intr_bh_tasklet,
+		      (unsigned long) ci);
 
-    if (atomic_read (&ci->ci_musycc_isr_tasklet.count) == 0)
-        tasklet_disable_nosync (&ci->ci_musycc_isr_tasklet);
+	if (atomic_read (&ci->ci_musycc_isr_tasklet.count) == 0)
+		tasklet_disable_nosync (&ci->ci_musycc_isr_tasklet);
 #elif defined(SBE_ISR_IMMEDIATE)
-    ci->ci_musycc_isr_tq.routine = (void *) (unsigned long) musycc_intr_bh_tasklet;
-    ci->ci_musycc_isr_tq.data = ci;
+	ci->ci_musycc_isr_tq.routine = (void *) (unsigned long) musycc_intr_bh_tasklet;
+	ci->ci_musycc_isr_tq.data = ci;
 #endif
 
 
-    if (register_netdev (ndev) ||
-        (c4_init (ci, (u_char *) f0, (u_char *) f1) != SBE_DRVR_SUCCESS))
-    {
-        OS_kfree (ndev->priv);
-        OS_kfree (ndev);
-        error_flag = ENODEV;
-        return 0;
-    }
-    /*************************************************************
-     *  int request_irq(unsigned int irq,
-     *                  void (*handler)(int, void *, struct pt_regs *),
-     *                  unsigned long flags, const char *dev_name, void *dev_id);
-     *  wherein:
-     *  irq      -> The interrupt number that is being requested.
-     *  handler  -> Pointer to handling function being installed.
-     *  flags    -> A bit mask of options related to interrupt management.
-     *  dev_name -> String used in /proc/interrupts to show owner of interrupt.
-     *  dev_id   -> Pointer (for shared interrupt lines) to point to its own
-     *              private data area (to identify which device is interrupting).
-     *
-     *  extern void free_irq(unsigned int irq, void *dev_id);
-     **************************************************************/
-
-    if (request_irq (irq0, &c4_linux_interrupt,
-#if defined(SBE_ISR_TASKLET)
-                     SA_INTERRUPT | SA_SHIRQ,
-#elif defined(SBE_ISR_IMMEDIATE)
-                     SA_INTERRUPT | SA_SHIRQ,
+	if (register_netdev (ndev) ||
+	    (c4_init (ci, (u_char *) f0, (u_char *) f1) != SBE_DRVR_SUCCESS)) {
+		free_netdev(ndev);
+		error_flag = ENODEV;
+		return 0;
+	}
+	/*************************************************************
+	 *  int request_irq(unsigned int irq,
+	 *                  void (*handler)(int, void *, struct pt_regs *),
+	 *                  unsigned long flags, const char *dev_name, void *dev_id);
+	 *  wherein:
+	 *  irq      -> The interrupt number that is being requested.
+	 *  handler  -> Pointer to handling function being installed.
+	 *  flags    -> A bit mask of options related to interrupt management.
+	 *  dev_name -> String used in /proc/interrupts to show owner of interrupt.
+	 *  dev_id   -> Pointer (for shared interrupt lines) to point to its own
+	 *              private data area (to identify which device is interrupting).
+	 *
+	 *  extern void free_irq(unsigned int irq, void *dev_id);
+	 **************************************************************/
+
+	if (request_irq(irq0, &c4_linux_interrupt,
+#if defined(SBE_ISR_TASKLET) || defined(SBE_ISR_IMMEDIATE)
+			 IRQF_DISABLED | IRQF_SHARED,
 #elif defined(SBE_ISR_INLINE)
-                     SA_SHIRQ,
+			 IRQF_SHARED,
 #endif
-                     ndev->name, ndev))
-    {
-        printk (KERN_WARNING "%s: MUSYCC could not get irq: %d\n",
-                ndev->name, irq0);
-        unregister_netdev (ndev);
-        OS_kfree (ndev->priv);
-        OS_kfree (ndev);
-        error_flag = EIO;
-        return 0;
-    }
+			 ndev->name, ndev)) {
+		printk(KERN_WARNING "%s: MUSYCC could not get irq: %d\n",
+			ndev->name, irq0);
+		unregister_netdev(ndev);
+		free_netdev(ndev);
+		error_flag = EIO;
+		return 0;
+	}
 #ifdef CONFIG_SBE_PMCC4_NCOMM
-    if (request_irq (irq1, &c4_ebus_interrupt, SA_SHIRQ, ndev->name, ndev))
-    {
-        printk (KERN_WARNING "%s: EBUS could not get irq: %d\n",
-                hi->devname, irq1);
-        unregister_netdev (ndev);
-        free_irq (irq0, ndev);
-        OS_kfree (ndev->priv);
-        OS_kfree (ndev);
-        error_flag = EIO;
-        return 0;
-    }
+	if (request_irq(irq1, &c4_ebus_interrupt, IRQF_SHARED, ndev->name, ndev))
+	{
+		printk (KERN_WARNING "%s: EBUS could not get irq: %d\n",
+			hi->devname, irq1);
+		unregister_netdev(ndev);
+		free_irq(irq0, ndev);
+		free_netdev(ndev);
+		error_flag = EIO;
+		return 0;
+	}
 #endif
 
     /* setup board identification information */
@@ -1382,8 +1106,7 @@ c4_add_dev (hdw_info_t * hi, int brdno, unsigned long f0, unsigned long f1,
         unregister_netdev (ndev);
         free_irq (irq1, ndev);
         free_irq (irq0, ndev);
-        OS_kfree (ndev->priv);
-        OS_kfree (ndev);
+	free_netdev(ndev);
         return 0;                   /* failure, error_flag is set */
     }
     return ndev;
@@ -1443,7 +1166,7 @@ cleanup_hdlc (void)
     {
         if (hi->ndev)               /* a board has been attached */
         {
-            ci = (ci_t *) hi->ndev->priv;
+	    ci = (ci_t *) netdev_priv(hi->ndev);
             for (j = 0; j < ci->max_port; j++)
                 for (k = 0; k < MUSYCC_NCHANS; k++)
                     if ((ndev = ci->port[j].chan[k]->user))
diff --git a/drivers/net/wan/cxt1e1/musycc.c b/drivers/net/wan/cxt1e1/musycc.c
index 8fc42dd..d72f610 100644
--- a/drivers/net/wan/cxt1e1/musycc.c
+++ b/drivers/net/wan/cxt1e1/musycc.c
@@ -1,14 +1,7 @@
-/*
- * $Id: musycc.c,v 2.1 2007/08/15 23:32:17 rickd PMCC4_3_1B $
- */
-
 unsigned int max_intcnt = 0;
 unsigned int max_bh = 0;
 
-/*-----------------------------------------------------------------------------
- * musycc.c -
- *
- * Copyright (C) 2007  One Stop Systems, Inc.
+/* Copyright (C) 2007  One Stop Systems, Inc.
  * Copyright (C) 2003-2006  SBE, Inc.
  *
  *   This program is free software; you can redistribute it and/or modify
@@ -20,63 +13,12 @@ unsigned int max_bh = 0;
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *
- * For further information, contact via email: support@onestopsystems.com
- * One Stop Systems, Inc.  Escondido, California  U.S.A.
- *-----------------------------------------------------------------------------
- * RCS info:
- * RCS revision: $Revision: 2.1 $
- * Last changed on $Date: 2007/08/15 23:32:17 $
- * Changed by $Author: rickd $
- *-----------------------------------------------------------------------------
- * $Log: musycc.c,v $
- * Revision 2.1  2007/08/15 23:32:17  rickd
- * Use 'if 0' instead of GNU comment delimeter to avoid line wrap induced compiler errors.
- *
- * Revision 2.0  2007/08/15 22:13:20  rickd
- * Update to printf pointer %p usage and correct some UINT to ULONG for
- * 64bit comptibility.
- *
- * Revision 1.7  2006/04/21 00:56:40  rickd
- * workqueue files now prefixed with <sbecom> prefix.
- *
- * Revision 1.6  2005/10/27 18:54:19  rickd
- * Clean out old code.  Default to HDLC_FCS16, not TRANS.
- *
- * Revision 1.5  2005/10/17 23:55:28  rickd
- * Initial port of NCOMM support patches from original work found
- * in pmc_c4t1e1 as updated by NCOMM.  Ref: CONFIG_SBE_PMCC4_NCOMM.
- *
- * Revision 1.4  2005/10/13 20:35:25  rickd
- * Cleanup warning for unused <flags> variable.
- *
- * Revision 1.3  2005/10/13 19:19:22  rickd
- * Disable redundant driver removal cleanup code.
- *
- * Revision 1.2  2005/10/11 18:36:16  rickd
- * Clean up warning messages caused by de-implemented some <flags> associated
- * with spin_lock() removals.
- *
- * Revision 1.1  2005/10/05 00:45:28  rickd
- * Re-enable xmit on flow-controlled and full channel to fix restart hang.
- * Add some temp spin-lock debug code (rld_spin_owner).
- *
- * Revision 1.0  2005/09/28 00:10:06  rickd
- * Initial release for C4T1E1 support. Lots of transparent
- * mode updates.
- *
- *-----------------------------------------------------------------------------
  */
-
-char        SBEid_pmcc4_musyccc[] =
-"@(#)musycc.c - $Revision: 2.1 $      (c) Copyright 2004-2006 SBE, Inc.";
-
-
 #include <linux/types.h>
-#include "pmcc4_sysdep.h"
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/init.h>
+#include "pmcc4_sysdep.h"
 #include "sbecom_inline_linux.h"
 #include "libsbew.h"
 #include "pmcc4_private.h"
@@ -706,9 +648,7 @@ rewrite:
 }
 
 
-#ifdef  SBE_PMCC4_ENABLE
-void
-musycc_update_timeslots (mpi_t * pi)
+void musycc_update_timeslots(mpi_t *pi)
 {
     int         i, ch;
     char        e1mode = IS_FRAME_ANY_E1 (pi->p.port_mode);
@@ -773,43 +713,6 @@ musycc_update_timeslots (mpi_t * pi)
     musycc_serv_req (pi, SR_SUBCHANNEL_MAP | SR_RX_DIRECTION);
     musycc_serv_req (pi, SR_SUBCHANNEL_MAP | SR_TX_DIRECTION);
 }
-#endif
-
-
-#ifdef SBE_WAN256T3_ENABLE
-void
-musycc_update_timeslots (mpi_t * pi)
-{
-    mch_t      *ch;
-
-    u_int8_t    ts, hmask, tsen;
-    int         gchan;
-    int         i;
-
-#ifdef SBE_PMCC4_ENABLE
-    hmask = (0x1f << pi->up->p.hypersize) & 0x1f;
-#endif
-#ifdef SBE_WAN256T3_ENABLE
-    hmask = (0x1f << hyperdummy) & 0x1f;
-#endif
-    for (i = 0; i < 128; i++)
-    {
-        gchan = ((pi->portnum * MUSYCC_NCHANS) + (i & hmask)) % MUSYCC_NCHANS;
-        ch = pi->chan[gchan];
-        if (ch->p.mode_56k)
-            tsen = MODE_56KBPS;
-        else
-            tsen = MODE_64KBPS;     /* also the default */
-        ts = ((pi->portnum % 4) == (i / 32)) ? (tsen << 5) | (i & hmask) : 0;
-        pi->regram->rtsm[i] = ts;
-        pi->regram->ttsm[i] = ts;
-    }
-    FLUSH_MEM_WRITE ();
-    musycc_serv_req (pi, SR_TIMESLOT_MAP | SR_RX_DIRECTION);
-    musycc_serv_req (pi, SR_TIMESLOT_MAP | SR_TX_DIRECTION);
-}
-#endif
-
 
  /*
   * This routine converts a generic library channel configuration parameter
@@ -841,41 +744,6 @@ musycc_chan_proto (int proto)
     return reg;
 }
 
-#ifdef SBE_WAN256T3_ENABLE
-STATIC void __init
-musycc_init_port (mpi_t * pi)
-{
-    pci_write_32 ((u_int32_t *) &pi->reg->gbp, OS_vtophys (pi->regram));
-
-    pi->regram->grcd =
-        __constant_cpu_to_le32 (MUSYCC_GRCD_RX_ENABLE |
-                                MUSYCC_GRCD_TX_ENABLE |
-                                MUSYCC_GRCD_SF_ALIGN |
-                                MUSYCC_GRCD_SUBCHAN_DISABLE |
-                                MUSYCC_GRCD_OOFMP_DISABLE |
-                                MUSYCC_GRCD_COFAIRQ_DISABLE |
-                                MUSYCC_GRCD_MC_ENABLE |
-                       (MUSYCC_GRCD_POLLTH_32 << MUSYCC_GRCD_POLLTH_SHIFT));
-
-    pi->regram->pcd =
-        __constant_cpu_to_le32 (MUSYCC_PCD_E1X4_MODE |
-                                MUSYCC_PCD_TXDATA_RISING |
-                                MUSYCC_PCD_TX_DRIVEN);
-
-    /* Message length descriptor */
-    pi->regram->mld = __constant_cpu_to_le32 (max_mru | (max_mru << 16));
-    FLUSH_MEM_WRITE ();
-
-    musycc_serv_req (pi, SR_GROUP_INIT | SR_RX_DIRECTION);
-    musycc_serv_req (pi, SR_GROUP_INIT | SR_TX_DIRECTION);
-
-    musycc_init_mdt (pi);
-
-    musycc_update_timeslots (pi);
-}
-#endif
-
-
 status_t    __init
 musycc_init (ci_t * ci)
 {
@@ -969,10 +837,6 @@ musycc_init (ci_t * ci)
                 THIS_MODULE->name, max_mtu, 0xffe);
         max_mtu = 0xffe;
     }
-#ifdef SBE_WAN256T3_ENABLE
-    for (i = 0; i < MUSYCC_NPORTS; i++)
-        musycc_init_port (&ci->port[i]);
-#endif
 
     return SBE_DRVR_SUCCESS;        /* no error */
 }
@@ -1072,24 +936,6 @@ musycc_bh_tx_eom (mpi_t * pi, int gchan)
             atomic_sub (OS_mem_token_tlen (md->mem_token), &ch->tx_pending);
             /* upcount card */
             atomic_sub (OS_mem_token_tlen (md->mem_token), &pi->up->tx_pending);
-#ifdef SBE_WAN256T3_ENABLE
-            if (!atomic_read (&pi->up->tx_pending))
-                wan256t3_led (pi->up, LED_TX, 0);
-#endif
-
-#ifdef CONFIG_SBE_WAN256T3_NCOMM
-            /* callback that our packet was sent */
-            {
-                int         hdlcnum = (pi->portnum * 32 + gchan);
-
-                if (hdlcnum >= 228)
-                {
-                    if (nciProcess_TX_complete)
-                        (*nciProcess_TX_complete) (hdlcnum,
-                                                   getuserbychan (gchan));
-                }
-            }
-#endif                              /*** CONFIG_SBE_WAN256T3_NCOMM ***/
 
             OS_mem_token_free_irq (md->mem_token);
             md->mem_token = 0;
@@ -1197,21 +1043,6 @@ musycc_bh_rx_eom (mpi_t * pi, int gchan)
         error = (status >> 16) & 0xf;
         if (error == 0)
         {
-#ifdef CONFIG_SBE_WAN256T3_NCOMM
-            int         hdlcnum = (pi->portnum * 32 + gchan);
-
-            /*
-             * if the packet number belongs to NCOMM, then send it to the TMS
-             * driver
-             */
-            if (hdlcnum >= 228)
-            {
-                if (nciProcess_RX_packet)
-                    (*nciProcess_RX_packet) (hdlcnum, status & 0x3fff, m, ch->user);
-            } else
-#endif                              /*** CONFIG_SBE_WAN256T3_NCOMM ***/
-
-            {
                 if ((m2 = OS_mem_token_alloc (max_mru)))
                 {
                     /* substitute the mbuf+cluster */
@@ -1226,7 +1057,6 @@ musycc_bh_rx_eom (mpi_t * pi, int gchan)
                 {
                     ch->s.rx_dropped++;
                 }
-            }
         } else if (error == ERR_FCS)
         {
             ch->s.rx_crc_errors++;
@@ -1750,9 +1580,7 @@ musycc_new_chan (ci_t * ci, int channum, void *user)
 #endif
 
 
-#ifdef SBE_PMCC4_ENABLE
-status_t
-musycc_chan_down (ci_t * dummy, int channum)
+status_t musycc_chan_down(ci_t *dummy, int channum)
 {
     mpi_t      *pi;
     mch_t      *ch;
@@ -1803,7 +1631,6 @@ musycc_chan_down (ci_t * dummy, int channum)
     pi->openchans--;
     return 0;
 }
-#endif
 
 
 int
@@ -2035,9 +1862,6 @@ musycc_start_xmit (ci_t * ci, int channum, void *mem_token)
         musycc_chan_restart (ch);
 #endif
     }
-#ifdef SBE_WAN256T3_ENABLE
-    wan256t3_led (ci, LED_TX, LEDV_G);
-#endif
     return 0;
 }
 
@@ -2125,56 +1949,3 @@ musycc_get_chan_stats (ci_t * ci, int channum, struct sbecom_chan_stats * p)
     p->tx_pending = atomic_read (&ch->tx_pending);
     return 0;
 }
-
-
-
-#ifdef SBE_WAN256T3_ENABLE
-int
-musycc_chan_down (ci_t * ci, int channum)
-{
-    mch_t      *ch;
-    mpi_t      *pi;
-    int         i, gchan;
-
-    if (!(ch = sd_find_chan (ci, channum)))
-        return EINVAL;
-    pi = ch->up;
-    gchan = ch->gchan;
-
-    /* Deactivate the channel */
-    musycc_serv_req (pi, SR_CHANNEL_DEACTIVATE | SR_RX_DIRECTION | gchan);
-    ch->ch_start_rx = 0;
-    musycc_serv_req (pi, SR_CHANNEL_DEACTIVATE | SR_TX_DIRECTION | gchan);
-    ch->ch_start_tx = 0;
-
-    if (ch->state == DOWN)
-        return 0;
-    ch->state = DOWN;
-
-    pi->regram->thp[gchan] = 0;
-    pi->regram->tmp[gchan] = 0;
-    pi->regram->rhp[gchan] = 0;
-    pi->regram->rmp[gchan] = 0;
-    FLUSH_MEM_WRITE ();
-    for (i = 0; i < ch->txd_num; i++)
-    {
-        if (ch->mdt[i].mem_token != 0)
-            OS_mem_token_free (ch->mdt[i].mem_token);
-    }
-
-    for (i = 0; i < ch->rxd_num; i++)
-    {
-        if (ch->mdr[i].mem_token != 0)
-            OS_mem_token_free (ch->mdr[i].mem_token);
-    }
-
-    OS_kfree (ch->mdt);
-    ch->mdt = 0;
-    OS_kfree (ch->mdr);
-    ch->mdr = 0;
-
-    return 0;
-}
-#endif
-
-/*** End-of-File ***/
diff --git a/drivers/net/wan/cxt1e1/musycc.h b/drivers/net/wan/cxt1e1/musycc.h
index d2c91ef..c4c074c 100644
--- a/drivers/net/wan/cxt1e1/musycc.h
+++ b/drivers/net/wan/cxt1e1/musycc.h
@@ -1,12 +1,7 @@
-/*
- * $Id: musycc.h,v 1.3 2005/09/28 00:10:08 rickd PMCC4_3_1B $
- */
-
 #ifndef _INC_MUSYCC_H_
 #define _INC_MUSYCC_H_
 
-/*-----------------------------------------------------------------------------
- * musycc.h - Multichannel Synchronous Communications Controller
+/* musycc.h - Multichannel Synchronous Communications Controller
  *            CN8778/8474A/8472A/8471A
  *
  * Copyright (C) 2002-2005  SBE, Inc.
@@ -20,40 +15,13 @@
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *
- * For further information, contact via email: support@sbei.com
- * SBE, Inc.  San Ramon, California  U.S.A.
- *-----------------------------------------------------------------------------
- * RCS info:
- * RCS revision: $Revision: 1.3 $
- * Last changed on $Date: 2005/09/28 00:10:08 $
- * Changed by $Author: rickd $
- *-----------------------------------------------------------------------------
- * $Log: musycc.h,v $
- * Revision 1.3  2005/09/28 00:10:08  rickd
- * Add GNU license info. Add PMCC4 PCI/DevIDs.  Implement new
- * musycc reg&bits namings. Use PORTMAP_0 GCD grouping.
- *
- * Revision 1.2  2005/04/28 23:43:04  rickd
- * Add RCS tracking heading.
- *
- *-----------------------------------------------------------------------------
  */
 
-#if defined (__FreeBSD__) || defined (__NetBSD__)
-#include <sys/types.h>
-#else
 #include <linux/types.h>
-#endif
 
 #define VINT8   volatile u_int8_t
 #define VINT32  volatile u_int32_t
 
-#ifdef __cplusplus
-extern      "C"
-{
-#endif
-
 #include "pmcc4_defs.h"
 
 
@@ -149,19 +117,10 @@ extern      "C"
                                          * etc... */
 
 /* and board specific assignments... */
-#ifdef SBE_WAN256T3_ENABLE
-#define BLAPSE_VAL      0
-#define ALAPSE_VAL      0
-#define ELAPSE_VAL      7
-#define PORTMAP_VAL     MUSYCC_GCD_PORTMAP_2
-#endif
-
-#ifdef SBE_PMCC4_ENABLE
 #define BLAPSE_VAL      7
 #define ALAPSE_VAL      3
 #define ELAPSE_VAL      7
 #define PORTMAP_VAL     MUSYCC_GCD_PORTMAP_0
-#endif
 
 #define GCD_MAGIC   (((BLAPSE_VAL)<<(MUSYCC_GCD_BLAPSE)) | \
                      ((ALAPSE_VAL)<<(MUSYCC_GCD_ALAPSE)) | \
@@ -448,13 +407,7 @@ extern      "C"
 /*  This must be defined on an entire channel group (Port) basis */
 #define SUERM_THRESHOLD     0x1f
 
-#ifdef __cplusplus
-}
-#endif
-
 #undef VINT32
 #undef VINT8
 
-#endif                          /*** _INC_MUSYCC_H_ ***/
-
-/*** End-of-File ***/
+#endif
diff --git a/drivers/net/wan/cxt1e1/pmcc4_defs.h b/drivers/net/wan/cxt1e1/pmcc4_defs.h
index 186347b..2c6e95c 100644
--- a/drivers/net/wan/cxt1e1/pmcc4_defs.h
+++ b/drivers/net/wan/cxt1e1/pmcc4_defs.h
@@ -1,14 +1,7 @@
-/*
- * $Id: pmcc4_defs.h,v 1.0 2005/09/28 00:10:09 rickd PMCC4_3_1B $
- */
-
 #ifndef _INC_PMCC4_DEFS_H_
 #define _INC_PMCC4_DEFS_H_
 
-/*-----------------------------------------------------------------------------
- * c4_defs.h -
- *
- *   Implementation elements of the wanPMC-C4T1E1 device driver
+/*   Implementation elements of the wanPMC-C4T1E1 device driver
  *
  * Copyright (C) 2005  SBE, Inc.
  *
@@ -21,32 +14,13 @@
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *
- * For further information, contact via email: support@sbei.com
- * SBE, Inc.  San Ramon, California  U.S.A.
- *-----------------------------------------------------------------------------
- * RCS info:
- * RCS revision: $Revision: 1.0 $
- * Last changed on $Date: 2005/09/28 00:10:09 $
- * Changed by $Author: rickd $
- *-----------------------------------------------------------------------------
- * $Log: pmcc4_defs.h,v $
- * Revision 1.0  2005/09/28 00:10:09  rickd
- * Initial revision
- *
- *-----------------------------------------------------------------------------
  */
 
 
 #define MAX_BOARDS          8
 #define MAX_CHANS_USED      128
 
-#ifdef  SBE_PMCC4_ENABLE
 #define MUSYCC_NPORTS       4     /* CN8474 */
-#endif
-#ifdef SBE_WAN256T3_ENABLE
-#define MUSYCC_NPORTS       8     /* CN8478 */
-#endif
 #define MUSYCC_NCHANS       32    /* actually, chans per port */
 
 #define MUSYCC_NIQD         0x1000    /* power of 2 */
diff --git a/drivers/net/wan/cxt1e1/pmcc4_drv.c b/drivers/net/wan/cxt1e1/pmcc4_drv.c
index 27f2a74..8647cac 100644
--- a/drivers/net/wan/cxt1e1/pmcc4_drv.c
+++ b/drivers/net/wan/cxt1e1/pmcc4_drv.c
@@ -1,12 +1,4 @@
-/*
- * $Id: pmcc4_drv.c,v 3.1 2007/08/15 23:32:17 rickd PMCC4_3_1B $
- */
-
-
-/*-----------------------------------------------------------------------------
- * pmcc4_drv.c -
- *
- * Copyright (C) 2007  One Stop Systems, Inc.
+/* Copyright (C) 2007  One Stop Systems, Inc.
  * Copyright (C) 2002-2006  SBE, Inc.
  *
  *   This program is free software; you can redistribute it and/or modify
@@ -18,87 +10,16 @@
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *
- * For further information, contact via email: support@onestopsystems.com
- * One Stop Systems, Inc.  Escondido, California  U.S.A.
- *-----------------------------------------------------------------------------
- * RCS info:
- * RCS revision: $Revision: 3.1 $
- * Last changed on $Date: 2007/08/15 23:32:17 $
- * Changed by $Author: rickd $
- *-----------------------------------------------------------------------------
- * $Log: pmcc4_drv.c,v $
- * Revision 3.1  2007/08/15 23:32:17  rickd
- * Use 'if 0' instead of GNU comment delimeter to avoid line wrap induced compiler errors.
- *
- * Revision 3.0  2007/08/15 22:19:55  rickd
- * Correct sizeof() castings and pi->regram to support 64bit compatibility.
- *
- * Revision 2.10  2006/04/21 00:56:40  rickd
- * workqueue files now prefixed with <sbecom> prefix.
- *
- * Revision 2.9  2005/11/01 19:22:49  rickd
- * Add sanity checks against max_port for ioctl functions.
- *
- * Revision 2.8  2005/10/27 18:59:25  rickd
- * Code cleanup.  Default channel config to HDLC_FCS16.
- *
- * Revision 2.7  2005/10/18 18:16:30  rickd
- * Further NCOMM code repairs - (1) interrupt matrix usage inconsistant
- * for indexing into nciInterrupt[][], code missing double parameters.
- * (2) check input of ncomm interrupt registration cardID for correct
- * boundary values.
- *
- * Revision 2.6  2005/10/17 23:55:28  rickd
- * Initial port of NCOMM support patches from original work found
- * in pmc_c4t1e1 as updated by NCOMM.  Ref: CONFIG_SBE_PMCC4_NCOMM.
- * Corrected NCOMMs wanpmcC4T1E1_getBaseAddress() to correctly handle
- * multiple boards.
- *
- * Revision 2.5  2005/10/13 23:01:28  rickd
- * Correct panic for illegal address reference w/in get_brdinfo on
- * first_if/last_if name acquistion under Linux 2.6
- *
- * Revision 2.4  2005/10/13 21:20:19  rickd
- * Correction of c4_cleanup() wherein next should be acquired before
- * ci_t structure is free'd.
- *
- * Revision 2.3  2005/10/13 19:20:10  rickd
- * Correct driver removal cleanup code for multiple boards.
- *
- * Revision 2.2  2005/10/11 18:34:04  rickd
- * New routine added to determine number of ports (comets) on board.
- *
- * Revision 2.1  2005/10/05 00:48:13  rickd
- * Add some RX activation trace code.
- *
- * Revision 2.0  2005/09/28 00:10:06  rickd
- * Implement 2.6 workqueue for TX/RX restart.  Correction to
- * hardware register boundary checks allows expanded access of MUSYCC.
- * Implement new musycc reg&bits namings.
- *
- *-----------------------------------------------------------------------------
  */
 
-char        OSSIid_pmcc4_drvc[] =
-"@(#)pmcc4_drv.c - $Revision: 3.1 $   (c) Copyright 2002-2007 One Stop Systems, Inc.";
-
-
-#if defined (__FreeBSD__) || defined (__NetBSD__)
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/errno.h>
-#else
 #include <linux/types.h>
-#include "pmcc4_sysdep.h"
 #include <linux/errno.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>        /* include for timer */
 #include <linux/timer.h>        /* include for timer */
 #include <linux/hdlc.h>
 #include <asm/io.h>
-#endif
-
+#include "pmcc4_sysdep.h"
 #include "sbecom_inline_linux.h"
 #include "libsbew.h"
 #include "pmcc4_private.h"
@@ -118,12 +39,9 @@ char        OSSIid_pmcc4_drvc[] =
 #define KERN_WARN KERN_WARNING
 
 /* forward references */
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,41)
 status_t    c4_wk_chan_init (mpi_t *, mch_t *);
 void        c4_wq_port_cleanup (mpi_t *);
 status_t    c4_wq_port_init (mpi_t *);
-
-#endif
 int         c4_loop_port (ci_t *, int, u_int8_t);
 status_t    c4_set_port (ci_t *, int);
 status_t    musycc_chan_down (ci_t *, int);
@@ -201,34 +119,6 @@ c4_find_chan (int channum)
 }
 
 
-ci_t       *__init
-c4_new (void *hi)
-{
-    ci_t       *ci;
-
-#ifdef SBE_MAP_DEBUG
-    printk (KERN_WARNING "%s: c4_new() entered, ci needs %u.\n",
-            THIS_MODULE->name, (unsigned int) sizeof (ci_t));
-#endif
-
-    ci = (ci_t *) OS_kmalloc (sizeof (ci_t));
-    if (ci)
-    {
-        ci->hdw_info = hi;
-        ci->state = C_INIT;         /* mark as hardware not available */
-        ci->next = c4_list;
-        c4_list = ci;
-        ci->brdno = ci->next ? ci->next->brdno + 1 : 0;
-    } else
-        printk (KERN_WARNING "%s: failed CI malloc, size %u.\n",
-                THIS_MODULE->name, (unsigned int) sizeof (ci_t));
-
-    if (CI == 0)
-        CI = ci;                    /* DEBUG, only board 0 usage */
-    return ci;
-}
-
-
 /***
  * Check port state and set LED states using watchdog or ioctl...
  * also check for in-band SF loopback commands (& cause results if they are there)
diff --git a/drivers/net/wan/cxt1e1/pmcc4_private.h b/drivers/net/wan/cxt1e1/pmcc4_private.h
index 4ee424f..431a718 100644
--- a/drivers/net/wan/cxt1e1/pmcc4_private.h
+++ b/drivers/net/wan/cxt1e1/pmcc4_private.h
@@ -1,14 +1,7 @@
-/*
- * $Id: pmcc4_private.h,v 1.4 2005/10/27 18:54:19 rickd PMCC4_3_1B $
- */
-
 #ifndef _INC_PMCC4_PRIVATE_H_
 #define _INC_PMCC4_PRIVATE_H_
 
-/*-----------------------------------------------------------------------------
- * pmcc4_private.h -
- *
- * Copyright (C) 2005  SBE, Inc.
+/* Copyright (C) 2005  SBE, Inc.
  *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License as published by
@@ -19,40 +12,15 @@
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *
- * For further information, contact via email: support@sbei.com
- * SBE, Inc.  San Ramon, California  U.S.A.
- *-----------------------------------------------------------------------------
- * RCS info:
- * RCS revision: $Revision: 1.4 $
- * Last changed on $Date: 2005/10/27 18:54:19 $
- * Changed by $Author: rickd $
- *-----------------------------------------------------------------------------
- * $Log: pmcc4_private.h,v $
- * Revision 1.4  2005/10/27 18:54:19  rickd
- * Clean out old watchdog_copy code.  Msg Desc <status> to volatile.
- *
- * Revision 1.3  2005/09/28 00:10:09  rickd
- * Add GNU License info.  Name changed from c4_private.h.
- *
- * Revision 1.2  2005/04/28 23:43:03  rickd
- * Add RCS tracking heading.
- *
- *-----------------------------------------------------------------------------
  */
 
 
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/spinlock.h>
-#include <asm/semaphore.h>
 #include <linux/interrupt.h>    /* support for tasklets */
 #include <linux/timer.h>        /* support for timer */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-#include <linux/tqueue.h>       /* support for tq_struct */
-#else
 #include <linux/workqueue.h>
-#endif
 #include <linux/hdlc.h>
 
 #include "libsbew.h"
diff --git a/drivers/net/wan/cxt1e1/pmcc4_sysdep.h b/drivers/net/wan/cxt1e1/pmcc4_sysdep.h
index 9e71a8b..bde7f0a 100644
--- a/drivers/net/wan/cxt1e1/pmcc4_sysdep.h
+++ b/drivers/net/wan/cxt1e1/pmcc4_sysdep.h
@@ -1,12 +1,9 @@
-/*
- * $Id: pmcc4_sysdep.h,v 1.1 2005/09/28 00:10:09 rickd PMCC4_3_1B $
- */
-
 #ifndef _INC_PMCC4_SYSDEP_H_
 #define _INC_PMCC4_SYSDEP_H_
 
-/*-----------------------------------------------------------------------------
- * pmcc4_sysdep.h -
+#include <linux/kernel.h>
+
+/*
  *
  * Copyright (C) 2005  SBE, Inc.
  *
@@ -20,55 +17,8 @@
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
  *
- * For further information, contact via email: support@sbei.com
- * SBE, Inc.  San Ramon, California  U.S.A.
- *-----------------------------------------------------------------------------
- * RCS info:
- * RCS revision: $Revision: 1.1 $
- * Last changed on $Date: 2005/09/28 00:10:09 $
- * Changed by $Author: rickd $
- *-----------------------------------------------------------------------------
- * $Log: pmcc4_sysdep.h,v $
- * Revision 1.1  2005/09/28 00:10:09  rickd
- * Add GNU License info.
- *
- * Revision 1.0  2005/05/04 17:19:25  rickd
- * Initial revision
- *
- *-----------------------------------------------------------------------------
  */
 
-
-#if defined (__FreeBSD__) || defined (__NetBSD__)
-#   include <sys/types.h>
-#else
-#   include <linux/types.h>
-#   include <linux/config.h>
-#   if defined(CONFIG_SMP) && ! defined(__SMP__)
-#      define __SMP__
-#   endif
-#   if defined(CONFIG_MODVERSIONS) && defined(MODULE) && ! defined(MODVERSIONS)
-#      define MODVERSIONS
-#   endif
-#
-#   include <linux/version.h>
-#   ifdef MODULE
-#      ifdef MODVERSIONS
-#         if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-#            include <linux/modversions.h>
-#         else
-#            include <config/modversions.h>
-#         endif
-#      endif
-#      include <linux/module.h>
-#   else
-#      define MOD_INC_USE_COUNT
-#      define MOD_DEC_USE_COUNT
-#      define SET_MODULE_OWNER(dev)
-#      define MODULE_DEVICE_TABLE(pci, pci_tbl)
-#   endif
-#endif
-
 /* reduce multiple autoconf entries to a single definition */
 
 #ifdef CONFIG_SBE_PMCC4_HDLC_V7_MODULE
@@ -86,39 +36,22 @@
  * otherwise a memory barrier needs to be inserted.
  */
 
-#if defined (__FreeBSD__) || defined (__NetBSD__)
-#else
-#define IO_CACHE_COHERENT      1
-#define MEM_CACHE_COHERENT     0
-#if IO_CACHE_COHERENT
-#define FLUSH_PCI_READ()
-#define FLUSH_PCI_WRITE()
-#else
 #define FLUSH_PCI_READ()     rmb()
 #define FLUSH_PCI_WRITE()    wmb()
-#endif
-#if MEM_CACHE_COHERENT
-#define FLUSH_MEM_READ()
-#define FLUSH_MEM_WRITE()
-#else
 #define FLUSH_MEM_READ()     rmb()
 #define FLUSH_MEM_WRITE()    wmb()
-#endif
-#endif
-
 
 /*
  * System dependent callbacks routines, not inlined...
  * For inlined system dependent routines, see include/sbecom_inlinux_linux.h
  */
-                                                                                
+
 /*
  * passes received memory token back to the system, <user> is parameter from
  * sd_new_chan() used to create the channel which the data arrived on
  */
 
 void        sd_recv_consume (void *token, size_t len, void *user);
-
 void        sd_disable_xmit (void *user);
 void        sd_enable_xmit (void *user);
 int         sd_line_is_ok (void *user);
@@ -126,4 +59,4 @@ void        sd_line_is_up (void *user);
 void        sd_line_is_down (void *user);
 int         sd_queue_stopped (void *user);
 
-#endif                          /*** _INC_PMCC4_SYSDEP_H_ ***/
+#endif
diff --git a/drivers/net/wan/cxt1e1/sbecom_inline_linux.h b/drivers/net/wan/cxt1e1/sbecom_inline_linux.h
index c1d8cba..d2a2b95 100644
--- a/drivers/net/wan/cxt1e1/sbecom_inline_linux.h
+++ b/drivers/net/wan/cxt1e1/sbecom_inline_linux.h
@@ -1,14 +1,7 @@
-/*
- * $Id: sbecom_inline_linux.h,v 1.2 2007/08/15 22:51:35 rickd PMCC4_3_1B $
- */
-
 #ifndef _INC_SBECOM_INLNX_H_
 #define _INC_SBECOM_INLNX_H_
 
-/*-----------------------------------------------------------------------------
- * sbecom_inline_linux.h - SBE common Linux inlined routines
- *
- * Copyright (C) 2007  One Stop Systems, Inc.
+/* Copyright (C) 2007  One Stop Systems, Inc.
  * Copyright (C) 2005  SBE, Inc.
  *
  *   This program is free software; you can redistribute it and/or modify
@@ -20,57 +13,12 @@
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *
- * For further information, contact via email: support@onestopsystems.com
- * One Stop Systems, Inc.  Escondido, California  U.S.A.
- *-----------------------------------------------------------------------------
- * RCS info:
- * RCS revision: $Revision: 1.2 $
- * Last changed on $Date: 2007/08/15 22:51:35 $
- * Changed by $Author: rickd $
- *-----------------------------------------------------------------------------
- * $Log: sbecom_inline_linux.h,v $
- * Revision 1.2  2007/08/15 22:51:35  rickd
- * Remove duplicate version.h entry.
- *
- * Revision 1.1  2007/08/15 22:50:29  rickd
- * Update linux/config for 2.6.18 and later.
- *
- * Revision 1.0  2005/09/28 00:10:09  rickd
- * Initial revision
- *
- *-----------------------------------------------------------------------------
  */
 
 
-#if defined (__FreeBSD__) || defined (__NetBSD__)
-#include <sys/types.h>
-#else
+#include <linux/kernel.h>       /* resolves kmalloc references */
 #include <linux/types.h>
 #include <linux/version.h>
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
-#include <linux/config.h>
-#endif
-#if defined(CONFIG_SMP) && ! defined(__SMP__)
-#define __SMP__
-#endif
-#if defined(CONFIG_MODVERSIONS) && defined(MODULE) && ! defined(MODVERSIONS)
-#define MODVERSIONS
-#endif
-
-#ifdef MODULE
-#ifdef MODVERSIONS
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-#include <linux/modversions.h>
-#else
-#include <config/modversions.h>
-#endif
-#endif
-#include <linux/module.h>
-#endif
-#endif
-
-#include <linux/kernel.h>       /* resolves kmalloc references */
 #include <linux/skbuff.h>       /* resolves skb references */
 #include <linux/netdevice.h>    /* resolves dev_kree_skb_any */
 #include <asm/byteorder.h>      /* resolves cpu_to_le32 */
@@ -260,13 +208,9 @@ OS_sem_free (void *sem)
 struct watchdog
 {
     struct timer_list h;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-    struct tq_struct tq;
-#else
     struct work_struct work;
-#endif
     void       *softc;
-    void        (*func) (void *softc);
+    void        (*func)(struct work_struct *softc);
     int         ticks;
     int         init_tq;
 };
@@ -304,7 +248,8 @@ void        OS_uwait_dummy (void);
 
 
 /* watchdog functions */
-int         OS_init_watchdog (struct watchdog * wdp, void (*f) (void *), void *ci, int usec);
+int OS_init_watchdog (struct watchdog * wdp, void (*f) (struct work_struct *),
+		      void *ci, int usec);
 
 
 #endif                          /*** _INC_SBECOM_INLNX_H_ ***/
diff --git a/drivers/net/wan/cxt1e1/sbeid.c b/drivers/net/wan/cxt1e1/sbeid.c
index 37c7629..7a1c66a 100644
--- a/drivers/net/wan/cxt1e1/sbeid.c
+++ b/drivers/net/wan/cxt1e1/sbeid.c
@@ -1,11 +1,4 @@
-/*
- * $Id: sbeid.c,v 1.2 2005/10/13 19:13:23 rickd PMCC4_3_1B $
- */
-
-/*-----------------------------------------------------------------------------
- * sbeid.c - generic board identification routines
- *
- * Copyright (C) 2005  SBE, Inc.
+/* Copyright (C) 2005  SBE, Inc.
  *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License as published by
@@ -16,36 +9,9 @@
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *
- * For further information, contact via email: support@sbei.com
- * SBE, Inc.  San Ramon, California  U.S.A.
- *-----------------------------------------------------------------------------
- * RCS info:
- * RCS revision: $Revision: 1.2 $
- * Last changed on $Date: 2005/10/13 19:13:23 $
- * Changed by $Author: rickd $
- *-----------------------------------------------------------------------------
- * $Log: sbeid.c,v $
- * Revision 1.2  2005/10/13 19:13:23  rickd
- * Fix PMCC4 enabling by correction of "ifdef" flag usage.
- *
- * Revision 1.1  2005/10/11 18:32:21  rickd
- * Maximum ports setting set elsewhere during module initialization.
- * C4T1E1 PCI BID appears to be global, now further parse this setting
- * and reassign number based upon number of found ports.
- *
- * Revision 1.0  2005/09/28 00:10:07  rickd
- * Initial revision
- *
- *-----------------------------------------------------------------------------
  */
 
-char        SBEid_sbeid[] =
-"@(#)sbeid.c - $Revision: 1.2 $      (c) Copyright 2005 SBE, Inc.";
-
-
 #include "pmcc4_sysdep.h"
-
 #include "sbecom_inline_linux.h"
 #include "libsbew.h"
 #include "pmcc4_private.h"
@@ -154,7 +120,6 @@ sbeid_set_hdwbid (ci_t * ci)
     case SBE_BOARD_ID (PCI_VENDOR_ID_SBE, PCI_DEVICE_ID_WANPMC_C1T1E1_L):
         ci->hdw_bid = SBE_BID_PMC_C1T1E1;       /* 0xC1 - SBE wanPMC-C1T1E1 */
         break;
-#ifdef SBE_PMCC4_ENABLE
         /*
          * This case is entered as a result of the inability to obtain the
          * <bid> from the board's EEPROM.  Assume a PCI board and set
@@ -164,7 +129,6 @@ sbeid_set_hdwbid (ci_t * ci)
         /* start by assuming 4-port for ZERO casing */
         ci->brd_id = SBE_BOARD_ID (PCI_VENDOR_ID_SBE, PCI_DEVICE_ID_WANPCI_C4T1E1);
         /* drop thru to set hdw_bid and alternate PCI CxT1E1 settings */
-#endif
     case SBE_BOARD_ID (PCI_VENDOR_ID_SBE, PCI_DEVICE_ID_WANPCI_C4T1E1):
         /*
          * This Board ID is a generic identification.  Use the number of
diff --git a/drivers/net/wan/cxt1e1/sbeproc.c b/drivers/net/wan/cxt1e1/sbeproc.c
index d9ccb19..c435639 100644
--- a/drivers/net/wan/cxt1e1/sbeproc.c
+++ b/drivers/net/wan/cxt1e1/sbeproc.c
@@ -1,11 +1,4 @@
-/*
- * $Id: sbeproc.c,v 1.5 2005/10/31 20:26:37 rickd PMCC4_3_1B $
- */
-
-/*-----------------------------------------------------------------------------
- * sbeproc.c -
- *
- * Copyright (C) 2004-2005  SBE, Inc.
+/* Copyright (C) 2004-2005  SBE, Inc.
  *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License as published by
@@ -16,50 +9,8 @@
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *
- * For further information, contact via email: support@sbei.com
- * SBE, Inc.  San Ramon, California  U.S.A.
- *-----------------------------------------------------------------------------
- * RCS info:
- * RCS revision: $Revision: 1.5 $
- * Last changed on $Date: 2005/10/31 20:26:37 $
- * Changed by $Author: rickd $
- *-----------------------------------------------------------------------------
- * $Log: sbeproc.c,v $
- * Revision 1.5  2005/10/31 20:26:37  rickd
- * Fix for compilation warning re: declaration w/in ...get_sge_info().
- *
- * Revision 1.4  2005/10/27 18:54:19  rickd
- * Display driver tuning variable settings.
- *
- * Revision 1.3  2005/10/11 18:31:22  rickd
- * Add number of physical ports to displayed board info.
- *
- * Revision 1.2  2005/09/28 00:10:07  rickd
- * Add EEPROM Type 2 info.  Switch from os_ to OS_ named functions.
- *
- * Revision 1.3  2005/06/06 23:47:51  rickd
- * OS support routine names changed from sd_ to OS_.  Implement
- * in-line OS function support via inclusion of sbecom_inline_linux.h
- *
- * Revision 1.2  2005/04/18 21:23:20  rickd
- * Make directory within /proc/driver using proc_root_driver because
- * trying w/in /proc failed for multiple cards/drivers.
- *
- * Revision 1.1  2005/04/01 00:17:52  rickd
- * Use alternate proc_mkdir() to create driver/board directory.
- *
- * Revision 1.0  2004/12/03 23:32:07  rickd
- * Initial CI.
- *
- *-----------------------------------------------------------------------------
  */
 
-
-char        SBEid_sbeproc_c[] =
-"@(#)sbeproc.c        $Revision: 1.5 $      (c) Copyright 2004-2005 SBE, Inc.";
-
-
 #include "pmcc4_sysdep.h"
 #include <linux/types.h>
 #include <linux/module.h>
@@ -73,8 +24,7 @@ char        SBEid_sbeproc_c[] =
 #include "pmcc4_private.h"
 #include "sbeproc.h"
 
-/* forwards */
-void        sbecom_get_brdinfo (ci_t *, struct sbe_brd_info *, u_int8_t *);
+void sbecom_get_brdinfo (ci_t *, struct sbe_brd_info *, u_int8_t *);
 extern struct s_hdw_info hdw_info[MAX_BOARDS];
 
 #ifdef CONFIG_PROC_FS
@@ -83,14 +33,15 @@ extern struct s_hdw_info hdw_info[MAX_BOARDS];
 /* procfs stuff                                                     */
 /********************************************************************/
 
-
 void
 sbecom_proc_brd_cleanup (ci_t * ci)
 {
     if (ci->dir_dev)
     {
+	char dir[7 + SBE_IFACETMPL_SIZE + 1];
+	snprintf(dir, sizeof(dir), "driver/%s", ci->devname);
         remove_proc_entry ("info", ci->dir_dev);
-        remove_proc_entry (ci->devname, proc_root_driver);
+        remove_proc_entry (dir, NULL);
         ci->dir_dev = NULL;
     }
 }
@@ -214,9 +165,7 @@ sbecom_proc_get_sbe_info (char *buffer, char **start, off_t offset,
     }
     len += sprintf (buffer + len, "PCI Bus Speed: %s\n", spd);
     len += sprintf (buffer + len, "Release:       %s\n", ci->release);
-    len += sprintf (buffer + len, "Module Name:   %s\n", ci->dir_dev->owner->name);
 
-#ifdef SBE_PMCC4_ENABLE
     {
         extern int max_mru;
 #if 0
@@ -224,7 +173,7 @@ sbecom_proc_get_sbe_info (char *buffer, char **start, off_t offset,
         extern int max_mtu;
 #endif
         extern int max_rxdesc_used, max_txdesc_used;
-                                                                                                        
+
         len += sprintf (buffer + len, "\nmax_mru:         %d\n", max_mru);
 #if 0
         len += sprintf (buffer + len, "\nmax_chans_used:  %d\n", max_chans_used);
@@ -233,7 +182,6 @@ sbecom_proc_get_sbe_info (char *buffer, char **start, off_t offset,
         len += sprintf (buffer + len, "max_rxdesc_used: %d\n", max_rxdesc_used);
         len += sprintf (buffer + len, "max_txdesc_used: %d\n", max_txdesc_used);
     }
-#endif
 
     OS_kfree (bip);                 /* cleanup */
 
@@ -359,16 +307,17 @@ int         __init
 sbecom_proc_brd_init (ci_t * ci)
 {
     struct proc_dir_entry *e;
+    char dir[7 + SBE_IFACETMPL_SIZE + 1];
 
     /* create a directory in the root procfs */
-    ci->dir_dev = proc_mkdir (ci->devname, proc_root_driver);
+    snprintf(dir, sizeof(dir), "driver/%s", ci->devname);
+    ci->dir_dev = proc_mkdir(dir, NULL);
     if (!ci->dir_dev)
     {
         printk (KERN_ERR "%s: Unable to create directory /proc/driver/%s\n",
                 THIS_MODULE->name, ci->devname);
         goto fail;
     }
-    ci->dir_dev->owner = THIS_MODULE;
     e = create_proc_read_entry ("info", S_IFREG | S_IRUGO,
                                 ci->dir_dev, sbecom_proc_get_sbe_info, ci);
     if (!e)
@@ -377,7 +326,6 @@ sbecom_proc_brd_init (ci_t * ci)
                 THIS_MODULE->name, ci->devname);
         goto fail;
     }
-    e->owner = THIS_MODULE;
     return 0;
 
 fail:
diff --git a/drivers/net/wan/cxt1e1/sbeproc.h b/drivers/net/wan/cxt1e1/sbeproc.h
index 4aa53f4..f8025f7 100644
--- a/drivers/net/wan/cxt1e1/sbeproc.h
+++ b/drivers/net/wan/cxt1e1/sbeproc.h
@@ -1,14 +1,7 @@
-/*
- * $Id: sbeproc.h,v 1.2 2005/10/17 23:55:28 rickd PMCC4_3_1B $
- */
-
 #ifndef _INC_SBEPROC_H_
 #define _INC_SBEPROC_H_
 
-/*-----------------------------------------------------------------------------
- * sbeproc.h -
- *
- * Copyright (C) 2004-2005  SBE, Inc.
+/* Copyright (C) 2004-2005  SBE, Inc.
  *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License as published by
@@ -19,34 +12,14 @@
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *   GNU General Public License for more details.
- *
- * For further information, contact via email: support@sbei.com
- * SBE, Inc.  San Ramon, California  U.S.A.
- *-----------------------------------------------------------------------------
- * RCS info:
- * RCS revision: $Revision: 1.2 $
- * Last changed on $Date: 2005/10/17 23:55:28 $
- * Changed by $Author: rickd $
- *-----------------------------------------------------------------------------
- * $Log: sbeproc.h,v $
- * Revision 1.2  2005/10/17 23:55:28  rickd
- * sbecom_proc_brd_init() is an declared an __init function.
- *
- * Revision 1.1  2005/09/28 00:10:09  rickd
- * Remove unneeded inclusion of c4_private.h.
- *
- * Revision 1.0  2005/05/10 22:21:46  rickd
- * Initial check-in.
- *
- *-----------------------------------------------------------------------------
  */
 
 
 #ifdef CONFIG_PROC_FS
 #ifdef __KERNEL__
-void        sbecom_proc_brd_cleanup (ci_t *);
-int __init  sbecom_proc_brd_init (ci_t *);
+void sbecom_proc_brd_cleanup(ci_t *);
+int __init sbecom_proc_brd_init(ci_t *);
 
-#endif                          /*** __KERNEL__ ***/
-#endif                          /*** CONFIG_PROC_FS ***/
-#endif                          /*** _INC_SBEPROC_H_ ***/
+#endif
+#endif
+#endif

-- 
Krzysztof Halasa

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2009-10-30  1:52     ` wanPMC-CxT1E1 Krzysztof Halasa
@ 2009-11-02 20:41       ` Bob Beers
  2009-11-02 20:59         ` wanPMC-CxT1E1 Greg KH
  0 siblings, 1 reply; 22+ messages in thread
From: Bob Beers @ 2009-11-02 20:41 UTC (permalink / raw)
  To: netdev; +Cc: Greg KH, Krzysztof Halasa

On Thu, Oct 29, 2009 at 8:52 PM, Krzysztof Halasa <khc@pm.waw.pl> wrote:
> Bob Beers <bob.beers@gmail.com> writes:
>
>> ok, so where do I start, I have a system ready to start
>>  git cloning, and creating patches. I googled for a while
>>  but didn't find a nice recipe for participating in the -staging
>>  process.
>
> I gave it a try. At least compiles with few warnings. Not sure about the
> WORK_INIT() change.
>
> Created drivers/net/wan/cxt1e1, moved all relevant SBE's .c and .h
> there, added a simple Makefile/Kconfig. Quick and dirty. There is a
> _lot_ of work to be done before it meets the usual kernel standards.
>
> It's not in staging/ so the paths need to be corrected but I can't work
> further on it at this time. Hand-edited but I tried to be careful.
>
<snip Krzysztof's diff file>

Ok, I took a shot at it too, It compiles for me and generates the
cxt1e1.ko file.
I have made a git clone of kernel, added the directory cxt1e1 under staging,
 added a Kconfig, Makefile, and all the *.[ch] from the tarball's driver/ and
 include/ directories, called git add on cxt1e1 directory and the files
 mentioned above.  In the cxt1e1 directory I modified the *.[ch] files as I saw
 fit, and using many hints from Krzysztof
   (I'm also not sure about the changes to INIT_WORK).
 I modified Makefile in staging/ and ran 'git -a commit'.

Here is top part of output from 'git log --stat':

commit d54e08030785153c8c0f4eb4f1cf320d60fff286
Author: Bob Beers <bob.beers@gmail.com>
Date:   Mon Nov 2 15:06:19 2009 -0500

    Add CXT1E1 [1,2,4] channel wan card driver.

 drivers/net/wan/Makefile                     |    1 +
 drivers/staging/Kconfig                      |    2 +
 drivers/staging/Makefile                     |    1 +
 drivers/staging/cxt1e1/Kconfig               |   22 +
 drivers/staging/cxt1e1/Makefile              |   20 +
 drivers/staging/cxt1e1/comet.c               |  566 +++++++
 drivers/staging/cxt1e1/comet.h               |  366 +++++
 drivers/staging/cxt1e1/comet_tables.c        |  561 +++++++
 drivers/staging/cxt1e1/comet_tables.h        |   85 +
 drivers/staging/cxt1e1/functions.c           |  366 +++++
 drivers/staging/cxt1e1/hwprobe.c             |  400 +++++
 drivers/staging/cxt1e1/libsbew.h             |  581 +++++++
 drivers/staging/cxt1e1/linux.c               | 1354 ++++++++++++++++
 drivers/staging/cxt1e1/musycc.c              | 2180 ++++++++++++++++++++++++++
 drivers/staging/cxt1e1/musycc.h              |  460 ++++++
 drivers/staging/cxt1e1/ossiRelease.c         |   39 +
 drivers/staging/cxt1e1/pmc93x6_eeprom.c      |  559 +++++++
 drivers/staging/cxt1e1/pmc93x6_eeprom.h      |   60 +
 drivers/staging/cxt1e1/pmcc4.h               |  155 ++
 drivers/staging/cxt1e1/pmcc4_cpld.h          |  124 ++
 drivers/staging/cxt1e1/pmcc4_defs.h          |   82 +
 drivers/staging/cxt1e1/pmcc4_drv.c           | 1855 ++++++++++++++++++++++
 drivers/staging/cxt1e1/pmcc4_ioctls.h        |   81 +
 drivers/staging/cxt1e1/pmcc4_private.h       |  295 ++++
 drivers/staging/cxt1e1/pmcc4_sysdep.h        |   62 +
 drivers/staging/cxt1e1/sbe_bid.h             |   61 +
 drivers/staging/cxt1e1/sbe_promformat.h      |  157 ++
 drivers/staging/cxt1e1/sbecom_inline_linux.h |  310 ++++
 drivers/staging/cxt1e1/sbecrc.c              |  137 ++
 drivers/staging/cxt1e1/sbeid.c               |  217 +++
 drivers/staging/cxt1e1/sbeproc.c             |  358 +++++
 drivers/staging/cxt1e1/sbeproc.h             |   52 +
 drivers/staging/cxt1e1/sbew_ioc.h            |  136 ++
 33 files changed, 11705 insertions(+), 0 deletions(-)

How do I generate the patch file?

thanks,
-- 
-Bob Beers

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2009-11-02 20:41       ` wanPMC-CxT1E1 Bob Beers
@ 2009-11-02 20:59         ` Greg KH
       [not found]           ` <4f6ba3b0911021316v16ff7431s4dfa939743541df6@mail.gmail.com>
  0 siblings, 1 reply; 22+ messages in thread
From: Greg KH @ 2009-11-02 20:59 UTC (permalink / raw)
  To: Bob Beers; +Cc: netdev, Krzysztof Halasa

On Mon, Nov 02, 2009 at 03:41:44PM -0500, Bob Beers wrote:
> On Thu, Oct 29, 2009 at 8:52 PM, Krzysztof Halasa <khc@pm.waw.pl> wrote:
> > Bob Beers <bob.beers@gmail.com> writes:
> >
> >> ok, so where do I start, I have a system ready to start
> >>  git cloning, and creating patches. I googled for a while
> >>  but didn't find a nice recipe for participating in the -staging
> >>  process.
> >
> > I gave it a try. At least compiles with few warnings. Not sure about the
> > WORK_INIT() change.
> >
> > Created drivers/net/wan/cxt1e1, moved all relevant SBE's .c and .h
> > there, added a simple Makefile/Kconfig. Quick and dirty. There is a
> > _lot_ of work to be done before it meets the usual kernel standards.
> >
> > It's not in staging/ so the paths need to be corrected but I can't work
> > further on it at this time. Hand-edited but I tried to be careful.
> >
> <snip Krzysztof's diff file>
> 
> Ok, I took a shot at it too, It compiles for me and generates the
> cxt1e1.ko file.
> I have made a git clone of kernel, added the directory cxt1e1 under staging,
>  added a Kconfig, Makefile, and all the *.[ch] from the tarball's driver/ and
>  include/ directories, called git add on cxt1e1 directory and the files
>  mentioned above.  In the cxt1e1 directory I modified the *.[ch] files as I saw
>  fit, and using many hints from Krzysztof
>    (I'm also not sure about the changes to INIT_WORK).
>  I modified Makefile in staging/ and ran 'git -a commit'.
> 
> Here is top part of output from 'git log --stat':
> 
> commit d54e08030785153c8c0f4eb4f1cf320d60fff286
> Author: Bob Beers <bob.beers@gmail.com>
> Date:   Mon Nov 2 15:06:19 2009 -0500
> 
>     Add CXT1E1 [1,2,4] channel wan card driver.
> 
>  drivers/net/wan/Makefile                     |    1 +

This file shouldn't need to be modified.  But I can fix that up by hand.

>  drivers/staging/Kconfig                      |    2 +
>  drivers/staging/Makefile                     |    1 +
>  drivers/staging/cxt1e1/Kconfig               |   22 +
>  drivers/staging/cxt1e1/Makefile              |   20 +
>  drivers/staging/cxt1e1/comet.c               |  566 +++++++
>  drivers/staging/cxt1e1/comet.h               |  366 +++++
>  drivers/staging/cxt1e1/comet_tables.c        |  561 +++++++
>  drivers/staging/cxt1e1/comet_tables.h        |   85 +
>  drivers/staging/cxt1e1/functions.c           |  366 +++++
>  drivers/staging/cxt1e1/hwprobe.c             |  400 +++++
>  drivers/staging/cxt1e1/libsbew.h             |  581 +++++++
>  drivers/staging/cxt1e1/linux.c               | 1354 ++++++++++++++++
>  drivers/staging/cxt1e1/musycc.c              | 2180 ++++++++++++++++++++++++++
>  drivers/staging/cxt1e1/musycc.h              |  460 ++++++
>  drivers/staging/cxt1e1/ossiRelease.c         |   39 +
>  drivers/staging/cxt1e1/pmc93x6_eeprom.c      |  559 +++++++
>  drivers/staging/cxt1e1/pmc93x6_eeprom.h      |   60 +
>  drivers/staging/cxt1e1/pmcc4.h               |  155 ++
>  drivers/staging/cxt1e1/pmcc4_cpld.h          |  124 ++
>  drivers/staging/cxt1e1/pmcc4_defs.h          |   82 +
>  drivers/staging/cxt1e1/pmcc4_drv.c           | 1855 ++++++++++++++++++++++
>  drivers/staging/cxt1e1/pmcc4_ioctls.h        |   81 +
>  drivers/staging/cxt1e1/pmcc4_private.h       |  295 ++++
>  drivers/staging/cxt1e1/pmcc4_sysdep.h        |   62 +
>  drivers/staging/cxt1e1/sbe_bid.h             |   61 +
>  drivers/staging/cxt1e1/sbe_promformat.h      |  157 ++
>  drivers/staging/cxt1e1/sbecom_inline_linux.h |  310 ++++
>  drivers/staging/cxt1e1/sbecrc.c              |  137 ++
>  drivers/staging/cxt1e1/sbeid.c               |  217 +++
>  drivers/staging/cxt1e1/sbeproc.c             |  358 +++++
>  drivers/staging/cxt1e1/sbeproc.h             |   52 +
>  drivers/staging/cxt1e1/sbew_ioc.h            |  136 ++
>  33 files changed, 11705 insertions(+), 0 deletions(-)
> 
> How do I generate the patch file?

git show --pretty=email d54e08030785153c8c0f4eb4f1cf320d60fff286 > my_patch.patch

will do it.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
       [not found]           ` <4f6ba3b0911021316v16ff7431s4dfa939743541df6@mail.gmail.com>
@ 2009-11-02 21:35             ` Bob Beers
  2009-11-02 21:39               ` wanPMC-CxT1E1 Bob Beers
  2009-11-19 22:25             ` wanPMC-CxT1E1 Greg KH
  1 sibling, 1 reply; 22+ messages in thread
From: Bob Beers @ 2009-11-02 21:35 UTC (permalink / raw)
  To: Greg KH; +Cc: netdev, Krzysztof Halasa

I just remembered that I have another mistake in the patch that I'd
 like to confess:  I put a 'CONFIG_CXT1E1 = m" at the top
 of the staging/cxt1e1/Makefile.

I should be able to fix those things an generate another patch file,
 but my git skills are very weak, so I guess you have the options:
 fix it up by hand, or teach me a little more git, so I can submit
 a better patch.

thanks,
-- 
-Bob Beers

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2009-11-02 21:35             ` wanPMC-CxT1E1 Bob Beers
@ 2009-11-02 21:39               ` Bob Beers
  2009-11-06 15:25                 ` wanPMC-CxT1E1 Bob Beers
  0 siblings, 1 reply; 22+ messages in thread
From: Bob Beers @ 2009-11-02 21:39 UTC (permalink / raw)
  To: Greg KH; +Cc: netdev, Krzysztof Halasa

On Mon, Nov 2, 2009 at 4:35 PM, Bob Beers <bob.beers@gmail.com> wrote:

> I should be able to fix those things an generate another patch file,
>  but my git skills are very weak, so I guess you have the options:
>  fix it up by hand, or teach me a little more git, so I can submit
>  a better patch.

Here is patch on top of previous patch to fix the two mistakes:

diff --git a/drivers/net/wan/Makefile b/drivers/net/wan/Makefile
index ebc96c7..19d14bc 100644
--- a/drivers/net/wan/Makefile
+++ b/drivers/net/wan/Makefile
@@ -29,7 +29,6 @@ obj-$(CONFIG_DSCC4)             += dscc4.o
 obj-$(CONFIG_X25_ASY)          += x25_asy.o

 obj-$(CONFIG_LANMEDIA)         += lmc/
-obj-$(CONFIG_CXT1E1)           += cxt1e1/

 obj-$(CONFIG_DLCI)             += dlci.o
 obj-$(CONFIG_SDLA)             += sdla.o
diff --git a/drivers/staging/cxt1e1/Makefile b/drivers/staging/cxt1e1/Makefile
index edfad71..10020d7 100644
--- a/drivers/staging/cxt1e1/Makefile
+++ b/drivers/staging/cxt1e1/Makefile
@@ -1,4 +1,3 @@
-CONFIG_CXT1E1 = m
 obj-$(CONFIG_CXT1E1)   += cxt1e1.o

 EXTRA_CFLAGS += -DSBE_PMCC4_ENABLE

thanks,
-- 
-Bob Beers

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2009-11-02 21:39               ` wanPMC-CxT1E1 Bob Beers
@ 2009-11-06 15:25                 ` Bob Beers
  2009-11-06 22:05                   ` wanPMC-CxT1E1 Greg KH
  0 siblings, 1 reply; 22+ messages in thread
From: Bob Beers @ 2009-11-06 15:25 UTC (permalink / raw)
  To: Greg KH; +Cc: netdev, Krzysztof Halasa

Hi Greg,

I don't mean to seem impatient, but is cxt1e1 in staging yet?

When it is, do I 'git pull' or re-baseline, or what? I don't mean
 to cause you too much extra work, but once I get the hang of
 this, I should be giving more than I'm taking.

I started over with a git clone of 2.6.31.y (vs 2.6.32.rcX) and
 could submit a new patch that does not have the two Makefile
 errors.  It compiles and I can modprobe the driver, but on
 modprobe -r, or attempting to use the pmcc4cfg util, my
 system locks up, maybe due to the incomplete port of the
 2 INIT_WORK() calls.

I want to first fix the unload problem, then remove all the
 kernel version checking stuff.  After that, I thought would be
 a good time to start fixing coding style issues, so that it will
 not be too painful for others to look at.

BTW, where should the pmcc4cfg source code go?  It needs a
 change in the Makefile before it compiles correctly.

thanks,
-- 
-Bob Beers

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2009-11-06 15:25                 ` wanPMC-CxT1E1 Bob Beers
@ 2009-11-06 22:05                   ` Greg KH
  0 siblings, 0 replies; 22+ messages in thread
From: Greg KH @ 2009-11-06 22:05 UTC (permalink / raw)
  To: Bob Beers; +Cc: netdev, Krzysztof Halasa

On Fri, Nov 06, 2009 at 10:25:36AM -0500, Bob Beers wrote:
> Hi Greg,
> 
> I don't mean to seem impatient, but is cxt1e1 in staging yet?

Sorry, no, been swamped with -stable updates.  I should get to it later
today, I'll email you then if I have any problems.  If not, you'll get
an email saying the patch was added to the tree.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
       [not found]           ` <4f6ba3b0911021316v16ff7431s4dfa939743541df6@mail.gmail.com>
  2009-11-02 21:35             ` wanPMC-CxT1E1 Bob Beers
@ 2009-11-19 22:25             ` Greg KH
  2009-12-02 14:57               ` wanPMC-CxT1E1 Bob Beers
  1 sibling, 1 reply; 22+ messages in thread
From: Greg KH @ 2009-11-19 22:25 UTC (permalink / raw)
  To: Bob Beers; +Cc: netdev, Krzysztof Halasa

On Mon, Nov 02, 2009 at 04:16:25PM -0500, Bob Beers wrote:
> >>
> >> commit d54e08030785153c8c0f4eb4f1cf320d60fff286
> >> Author: Bob Beers <bob.beers@gmail.com>
> >> Date:   Mon Nov 2 15:06:19 2009 -0500
> >>
> >>     Add CXT1E1 [1,2,4] channel wan card driver.
> >>
> >>  drivers/net/wan/Makefile                     |    1 +
> >
> > This file shouldn't need to be modified.  But I can fix that up by hand.
> >
> 
> Yeah, sorry about that.

Sorry for the long delay, my fault :(

Anyway, I need a "Signed-off-by:" line for the patch so that I can apply
it.  Also, who is the original author of the driver, any ideas?  We
should at least credit them with this, right?

Can you resend with a signed-off-by: line, and the other fixes all
rolled up into one patch?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2009-11-19 22:25             ` wanPMC-CxT1E1 Greg KH
@ 2009-12-02 14:57               ` Bob Beers
       [not found]                 ` <4f6ba3b1003040540v4619afa8v7f28ef5d75514c47@mail.gmail.com>
  0 siblings, 1 reply; 22+ messages in thread
From: Bob Beers @ 2009-12-02 14:57 UTC (permalink / raw)
  To: Greg KH; +Cc: netdev, Krzysztof Halasa

On Thu, Nov 19, 2009 at 5:25 PM, Greg KH <greg@kroah.com> wrote:
> Anyway, I need a "Signed-off-by:" line for the patch so that I can apply
> it.  Also, who is the original author of the driver, any ideas?  We
> should at least credit them with this, right?
>
> Can you resend with a signed-off-by: line, and the other fixes all
> rolled up into one patch?

Yes, but probably not for a couple of weeks.  Other priorities
 have taken my available time.  Meanwhile, I will ask my OSS poc
 who to list as original author.

thanks,

-- 
-Bob Beers

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
       [not found]                 ` <4f6ba3b1003040540v4619afa8v7f28ef5d75514c47@mail.gmail.com>
@ 2010-03-04 15:47                   ` Greg KH
  2010-03-04 16:06                     ` wanPMC-CxT1E1 Bob Beers
  0 siblings, 1 reply; 22+ messages in thread
From: Greg KH @ 2010-03-04 15:47 UTC (permalink / raw)
  To: Bob Beers; +Cc: netdev, Krzysztof Halasa

On Thu, Mar 04, 2010 at 08:40:46AM -0500, Bob Beers wrote:
> Obviously still needs serious attention, but it compiles.

Great, this looks wonderful, I'll queue it up.

> Original author: Rick Dobbs

Hm, do we have an email address for Rick anywhere?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2010-03-04 15:47                   ` wanPMC-CxT1E1 Greg KH
@ 2010-03-04 16:06                     ` Bob Beers
  2010-03-04 16:18                       ` wanPMC-CxT1E1 Greg KH
  0 siblings, 1 reply; 22+ messages in thread
From: Bob Beers @ 2010-03-04 16:06 UTC (permalink / raw)
  To: Greg KH; +Cc: netdev, Krzysztof Halasa

On Thu, Mar 4, 2010 at 10:47 AM, Greg KH <greg@kroah.com> wrote:
> On Thu, Mar 04, 2010 at 08:40:46AM -0500, Bob Beers wrote:
>> Obviously still needs serious attention, but it compiles.
>
> Great, this looks wonderful, I'll queue it up.
>
>> Original author: Rick Dobbs
>
> Hm, do we have an email address for Rick anywhere?

I knew you were going to ask that, and I asked at OSS.
They said, "Rick has asked me not to give out his e-mail."

-- 
thanks,
-Bob Beers

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: wanPMC-CxT1E1
  2010-03-04 16:06                     ` wanPMC-CxT1E1 Bob Beers
@ 2010-03-04 16:18                       ` Greg KH
  0 siblings, 0 replies; 22+ messages in thread
From: Greg KH @ 2010-03-04 16:18 UTC (permalink / raw)
  To: Bob Beers; +Cc: netdev, Krzysztof Halasa

On Thu, Mar 04, 2010 at 11:06:59AM -0500, Bob Beers wrote:
> On Thu, Mar 4, 2010 at 10:47 AM, Greg KH <greg@kroah.com> wrote:
> > On Thu, Mar 04, 2010 at 08:40:46AM -0500, Bob Beers wrote:
> >> Obviously still needs serious attention, but it compiles.
> >
> > Great, this looks wonderful, I'll queue it up.
> >
> >> Original author: Rick Dobbs
> >
> > Hm, do we have an email address for Rick anywhere?
> 
> I knew you were going to ask that, and I asked at OSS.
> They said, "Rick has asked me not to give out his e-mail."

Heh, ok, I guess "pride of ownership" is not something that he has for
this body of code :)

I'll take it as-is.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2010-03-04 16:19 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-10-26 20:22 wanPMC-CxT1E1 Bob Beers
2009-10-26 20:41 ` wanPMC-CxT1E1 Greg KH
2009-10-26 20:57   ` wanPMC-CxT1E1 Bob Beers
2009-10-26 21:20     ` wanPMC-CxT1E1 Greg KH
2009-10-27 17:48   ` wanPMC-CxT1E1 Bob Beers
2009-10-28 18:11     ` wanPMC-CxT1E1 Greg KH
2009-10-29  1:05     ` wanPMC-CxT1E1 Greg KH
2009-10-29  1:43       ` wanPMC-CxT1E1 Bob Beers
2009-10-29  2:54         ` wanPMC-CxT1E1 Greg KH
2009-10-29 13:54     ` wanPMC-CxT1E1 Krzysztof Halasa
2009-10-30  1:52     ` wanPMC-CxT1E1 Krzysztof Halasa
2009-11-02 20:41       ` wanPMC-CxT1E1 Bob Beers
2009-11-02 20:59         ` wanPMC-CxT1E1 Greg KH
     [not found]           ` <4f6ba3b0911021316v16ff7431s4dfa939743541df6@mail.gmail.com>
2009-11-02 21:35             ` wanPMC-CxT1E1 Bob Beers
2009-11-02 21:39               ` wanPMC-CxT1E1 Bob Beers
2009-11-06 15:25                 ` wanPMC-CxT1E1 Bob Beers
2009-11-06 22:05                   ` wanPMC-CxT1E1 Greg KH
2009-11-19 22:25             ` wanPMC-CxT1E1 Greg KH
2009-12-02 14:57               ` wanPMC-CxT1E1 Bob Beers
     [not found]                 ` <4f6ba3b1003040540v4619afa8v7f28ef5d75514c47@mail.gmail.com>
2010-03-04 15:47                   ` wanPMC-CxT1E1 Greg KH
2010-03-04 16:06                     ` wanPMC-CxT1E1 Bob Beers
2010-03-04 16:18                       ` wanPMC-CxT1E1 Greg KH

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.