Netdev List
 help / color / mirror / Atom feed
* Re: [REGRESSION] e1000e stopped working [MANUALLY BISECTED]
From: Jeff Kirsher @ 2010-08-01  2:08 UTC (permalink / raw)
  To: Maxim Levitsky
  Cc: Tantilov, Emil S, netdev@vger.kernel.org, Allan, Bruce W,
	Pieper, Jeffrey E
In-Reply-To: <AANLkTinSOUcAxnqCo9YVVonhZ4sdC8iUK4r6F1+ayKef@mail.gmail.com>

On Wed, Jul 28, 2010 at 18:10, Jeff Kirsher <jeffrey.t.kirsher@intel.com> wrote:
> On Wed, Jul 28, 2010 at 00:04, Maxim Levitsky <maximlevitsky@gmail.com> wrote:
>> On Mon, 2010-07-26 at 03:25 +0300, Maxim Levitsky wrote:
>>>
>>> This commit, present in net-next, solves the problem:
>>>
>>> commit 1286950690f0f82ffa504e1e149ee3fdb4c51478
>>> Author: Bruce Allan <bruce.w.allan@intel.com>
>>> Date:   Mon Jul 26 03:19:38 2010 +0300
>>>
>>>     e1000e: cleanup e1000_sw_lcd_config_ich8lan()
>>>
>>>     Do not acquire and release the PHY unnecessarily for parts that return
>>>     from this workaround without actually accessing the PHY registers.
>>>
>>>     Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
>>>     Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
>>>     Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
>>>     Signed-off-by: David S. Miller <davem@davemloft.net>
>>>
>>>
>>>
>>>
>>> Also, the above patch is part of whole series of patches with scary descriptions (that is these fix bugs).
>>> If I were you I would send them to Linus for 2.6.35 inclusion too.
>>>
>>> Best regards,
>>>       Maxim Levitsky
>>>
>>>
>>>
>> ping
>>
>
> Sorry for the delayed response.  I am working on the issue.  Here is
> the problem I am having, the patch that fixes the issue you are seeing
> is fairly large and is a cleanup to the ich8 function, which as it
> stands now, would not be accepted into net-2.6 tree this late into the
> -rc cycle.  So, what I looking at is, what specifically fixed the
> issue you are seeing that resides in that patch, and come up with a
> smaller (acceptable) patch that I can submit to net-2.6 now to resolve
> your issue.
>
> I have dedicated most of this evening to finding a resolution to your
> issue that will be acceptable for the net-2.6 tree.  As you noted,
> there were several patches before this particular commit that may play
> some part in the resolution as well, and that is what I will be
> looking into.  I greatly appreciate the hard work you have done to
> help us resolve this issue, and will make sure you get credit for any
> solution I put together to resolve this issue.
>
> --
> Cheers,
> Jeff
>

To keep everyone informed...

We have found the root cause for this issue with the help of Maxim,
and will have a patch to fix the issue in the next couple of days.

-- 
Cheers,
Jeff

^ permalink raw reply

* Re: [PATCH staging] Add SBE 2T3E3 WAN driver
From: Greg KH @ 2010-08-01  0:27 UTC (permalink / raw)
  To: Krzysztof Halasa; +Cc: netdev
In-Reply-To: <m362zv5oet.fsf@intrepid.localdomain>

On Sat, Jul 31, 2010 at 11:31:22PM +0200, Krzysztof Halasa wrote:
> Greg KH <greg@kroah.com> writes:
> 
> >>  include/linux/pci_ids.h              |    3 +
> >
> > First off, read the top of the pci_ids.h file, which says to not add new
> > entries that are only used in a single driver.
> 
> These entries are also needed for the tulip Ethernet driver, to avoid
> initializing these ports (they are using Tulip DECchips with custom FPGA
> for HDLC). I posted a patch on netdev list.

Then make the patch part of that submission, I can't add non-staging
patches to the drivers/staging/ tree if at all possible.

> > Secondly, why have this as a staging driver?  What is lacking in it to
> > get it merged into the main kernel tree as a "normal" driver?
> 
> The main reason is the interface ("PRIVATE" netdev ioctls) for
> controlling the hdlcX devices is not stable. The plan is to write a new
> user-kernel interface for generic HDLC, this driver (and other ones)
> will then use it. For now, there is a separate utility from SBE for this
> card.

Ah, ick.  Is this going to be fixed up anytime soon?

> > Hint, you
> > need a TODO file in the driver directory that lists the things left to
> > be done to it to get it merged, and a name/email address to send the
> > patches to.
> 
> Ok.

Care to respin this with the TODO file?`

> >> + * This code is based on a driver written by SBE Inc.
> >
> > What driver would that have been?  If it's based on someone else's work,
> > it's nice to mention the copyright holders of that work you based yours
> > on.
> 
> I don't have any details, I'm only told the driver is open-source and
> the file name starts with SBE. No copyright notices except this one:
> 
> $ grep LIC *
> linux_sbe2t3e3.c:MODULE_LICENSE("GPL");

Wait, you wrote this driver, yet you don't have any details about the
driver you based it on?  That makes absolutely no sense.  Please
clarify.

And look, you do have a copy of the file, right there.  Care to post it
somewhere?  We need to see the license and other markings on it to know
about this driver, right?  Where did you get it from?

> BTW SBE Inc. (division?) has been acquired by One Stop Systems, they
> seem to still sell this hw, but I can't see any drivers available for
> downloading (though they mention "open source Linux drivers").

Any links would be appreciated.

> >> +#define DRV_NAME "SBE 2T3E3"
> >
> > spaces and all caps isn't the nicest thing for linux drivers, it does
> > odd things in sysfs for some scripts (the space thing, not the
> > uppercase.)
> 
> It seems the DRV_NAME is only used for various printk() and for
> pci_request_regions(). Does it still cause problems?

It's not nice, hopefully you can fix it up.  Well, remove it entirely
would be good, but you can add that to the TODO file :)

thanks,

greg k-h

^ permalink raw reply

* shape traffic on tun interfaces
From: Franchoze Eric @ 2010-07-31 22:09 UTC (permalink / raw)
  To: lartc; +Cc: netdev

Do we have any interface to shape traffic per destination IP? The standrad HTB shapes it per device, which is not suitable for case if limitation required per destination IP. For example openvpn server which servers about 3000 clients and has 10 internal tun interfases (tun0-tun9). Of course it is possible to do it on application level (vpn), but I would prefer any system solution for this.  iptables with --limit does not work in this case because it will simple drop packets. Did somebody work on such task?

Eric.

^ permalink raw reply

* Re: [PATCH staging] Add SBE 2T3E3 WAN driver
From: Krzysztof Halasa @ 2010-07-31 21:31 UTC (permalink / raw)
  To: Greg KH; +Cc: netdev
In-Reply-To: <20100731195335.GB4644@kroah.com>

Greg KH <greg@kroah.com> writes:

>>  include/linux/pci_ids.h              |    3 +
>
> First off, read the top of the pci_ids.h file, which says to not add new
> entries that are only used in a single driver.

These entries are also needed for the tulip Ethernet driver, to avoid
initializing these ports (they are using Tulip DECchips with custom FPGA
for HDLC). I posted a patch on netdev list.

> Secondly, why have this as a staging driver?  What is lacking in it to
> get it merged into the main kernel tree as a "normal" driver?

The main reason is the interface ("PRIVATE" netdev ioctls) for
controlling the hdlcX devices is not stable. The plan is to write a new
user-kernel interface for generic HDLC, this driver (and other ones)
will then use it. For now, there is a separate utility from SBE for this
card.

> Hint, you
> need a TODO file in the driver directory that lists the things left to
> be done to it to get it merged, and a name/email address to send the
> patches to.

Ok.

>> + * This code is based on a driver written by SBE Inc.
>
> What driver would that have been?  If it's based on someone else's work,
> it's nice to mention the copyright holders of that work you based yours
> on.

I don't have any details, I'm only told the driver is open-source and
the file name starts with SBE. No copyright notices except this one:

$ grep LIC *
linux_sbe2t3e3.c:MODULE_LICENSE("GPL");

BTW SBE Inc. (division?) has been acquired by One Stop Systems, they
seem to still sell this hw, but I can't see any drivers available for
downloading (though they mention "open source Linux drivers").

>> +#define DRV_NAME "SBE 2T3E3"
>
> spaces and all caps isn't the nicest thing for linux drivers, it does
> odd things in sysfs for some scripts (the space thing, not the
> uppercase.)

It seems the DRV_NAME is only used for various printk() and for
pci_request_regions(). Does it still cause problems?
-- 
Krzysztof Halasa

^ permalink raw reply

* Re: iw reg set does not work because udev and crda do not respond to boot-time request.
From: Luis R. Rodriguez @ 2010-07-31 21:05 UTC (permalink / raw)
  To: Daniel Haid; +Cc: linux-wireless, linux-kernel, netdev, Kay Sievers
In-Reply-To: <201007311448.06959.d.haid@gogi.tv>

Netlink / udev folks, please review.

On Sat, Jul 31, 2010 at 5:48 AM, Daniel Haid <d.haid@gogi.tv> wrote:
> Hello,
>
> the driver of my wireless card seems to ask for "US"
> regulatory data during boot, but since udev is not
> running at that point (I think not even the root filesystem
> is mounted) crda does not respond.

CRDA is not the only thing called by the kernel where there would be
an issue due to a delay with udev during bootup to react to a message.
The kernel calls CRDA for udev through kobject_uevent_env(). Uevent
messages are now broadcasted through
netlinknetlink_broadcast_filtered() since the old method of using a
direct call to /sbin/hotplug would lead to many processes being
spawned and in some cases OOM. You can still use this though through
CONFIG_UEVENT_HELPER_PATH which will issue call_usermodehelper()
during early boot on an initramfs for example, if you so need it.

I am not sure though if netlink broadcast messages would be reissued
by the kernel during early boot if no one replied back to the send
message but it is worth looking into. As far as I can tell you would
be the first to notice this. In fact we actually had reports of two
consecutive messages being being sent to userspace when only one was
being sent to userspace so it may indeed be in fact true that messages
are rebroadcasted somehow, I am just not sure so Cc'ing netdev and
lkml.

> The effect is that "iw reg set" does not work, because
> the kernel seems to be still waiting for the "US"
> regulatory data. Running
> COUNTRY="US" crda
> manually once fixes the problem (until the next reboot).

iw reg set will be ignored by net/wireless/reg.c as it is still
waiting for last_request to be processed. It seems in your case the
assumption that the request will be reissued in case udev is running
at early boot is incorrect and we need to further understand exactly
how these messages get queued and perhaps reissued or not.

I considered recently changing the way we handle requests to userspace
to use a completion handler but that would sit idle there for a while
blocking on the reg_mutex... so decided against it. But could take a
look again.

> What is the correct way of solving this? Should udev not
> pick up the request later when it is started?

We need a better understanding of how netlink broadcast messages get
processed during early boot. Right now cfg80211 will drop duplicate
requests or any request while we're still pending for the last one.
Once we find out more details about how netlink broadcast messages get
processed during early boot we can then rework things a bit. In the
meantime can you try using CONFIG_UEVENT_HELPER_PATH during the
initramfs?

  Luis

^ permalink raw reply

* Re: [PATCH staging] Add SBE 2T3E3 WAN driver
From: Greg KH @ 2010-07-31 19:53 UTC (permalink / raw)
  To: Krzysztof Halasa; +Cc: netdev
In-Reply-To: <m3ocdoasen.fsf@intrepid.localdomain>

On Sat, Jul 31, 2010 at 11:53:52AM +0200, Krzysztof Halasa wrote:
> This is a driver for SBE Inc.'s dual port T3/E3 WAN cards. Based on
> their original GPLed driver.
> It needs at least a new generic HDLC setup code (not yet written) before
> moving to drivers/net/wan.
> 
> Signed-off-by: Krzysztof Ha??asa <khc@pm.waw.pl>
> 
> ---
> I have generated the patch against v2.6.35-rc6. Compiles cleanly.
> Please let me know if it needs extra changes for e.g. staging tree.
> Thanks.
> 
>  drivers/staging/Kconfig              |    2 +
>  drivers/staging/Makefile             |    1 +
>  drivers/staging/sbe-2t3e3/2t3e3.h    |  896 ++++++++++++++++++++++++++++++++++
>  drivers/staging/sbe-2t3e3/Kconfig    |   13 +
>  drivers/staging/sbe-2t3e3/Makefile   |    4 +
>  drivers/staging/sbe-2t3e3/cpld.c     |  366 ++++++++++++++
>  drivers/staging/sbe-2t3e3/ctrl.c     |  363 ++++++++++++++
>  drivers/staging/sbe-2t3e3/ctrl.h     |  131 +++++
>  drivers/staging/sbe-2t3e3/dc.c       |  507 +++++++++++++++++++
>  drivers/staging/sbe-2t3e3/exar7250.c |  217 ++++++++
>  drivers/staging/sbe-2t3e3/exar7300.c |  182 +++++++
>  drivers/staging/sbe-2t3e3/intr.c     |  651 ++++++++++++++++++++++++
>  drivers/staging/sbe-2t3e3/io.c       |  352 +++++++++++++
>  drivers/staging/sbe-2t3e3/main.c     |  171 +++++++
>  drivers/staging/sbe-2t3e3/maps.c     |  104 ++++
>  drivers/staging/sbe-2t3e3/module.c   |  210 ++++++++
>  drivers/staging/sbe-2t3e3/netdev.c   |  142 ++++++
>  include/linux/pci_ids.h              |    3 +

First off, read the top of the pci_ids.h file, which says to not add new
entries that are only used in a single driver.

Secondly, why have this as a staging driver?  What is lacking in it to
get it merged into the main kernel tree as a "normal" driver?  Hint, you
need a TODO file in the driver directory that lists the things left to
be done to it to get it merged, and a name/email address to send the
patches to.

> +++ b/drivers/staging/sbe-2t3e3/2t3e3.h
> @@ -0,0 +1,896 @@
> +/*
> + * SBE 2T3E3 synchronous serial card driver for Linux
> + *
> + * Copyright (C) 2009-2010 Krzysztof Halasa <khc@pm.waw.pl>
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of version 2 of the GNU General Public License
> + * as published by the Free Software Foundation.
> + *
> + * This code is based on a driver written by SBE Inc.

What driver would that have been?  If it's based on someone else's work,
it's nice to mention the copyright holders of that work you based yours
on.

> + */
> +
> +#ifndef T3E3_H
> +#define T3E3_H
> +
> +#include <linux/hdlc.h>
> +#include <linux/interrupt.h>
> +#include <linux/netdevice.h>
> +#include <linux/pci.h>
> +#include <linux/io.h>
> +#include "ctrl.h"
> +
> +#define DRV_NAME "SBE 2T3E3"

spaces and all caps isn't the nicest thing for linux drivers, it does
odd things in sysfs for some scripts (the space thing, not the
uppercase.)


thanks,

greg k-h

^ permalink raw reply

* Re: [PATCH v4] can: Add driver for esd CAN-USB/2 device
From: Wolfgang Grandegger @ 2010-07-31 19:27 UTC (permalink / raw)
  To: Matthias Fuchs
  Cc: Socketcan-core-0fE9KPoRgkgATYTw5x5z8w,
	netdev-u79uwXL29TY76Z2rM5mHXA, linux-usb-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <201007271542.40997.matthias.fuchs-iOnpLzIbIdM@public.gmane.org>

On 07/27/2010 03:42 PM, Matthias Fuchs wrote:
> This patch adds a driver for esd's USB high speed
> CAN interface. The driver supports devices with
> multiple CAN interfaces.
> 
> Signed-off-by: Matthias Fuchs <matthias.fuchs-iOnpLzIbIdM@public.gmane.org>

Acked-by: Wolfgang Grandegger <wg-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org>

Thanks for your contribution.

Wolfgang,

^ permalink raw reply

* Re: [PATCH] Multiqueue macvtap driver
From: Ben Hutchings @ 2010-07-31 19:18 UTC (permalink / raw)
  To: Krishna Kumar; +Cc: davem, arnd, netdev, mst
In-Reply-To: <20100731135743.3072.99933.sendpatchset@krkumar2.in.ibm.com>

On Sat, 2010-07-31 at 19:27 +0530, Krishna Kumar wrote:
[...]
> @@ -136,39 +158,68 @@ static void macvtap_put_queue(struct mac
>  }
>  
>  /*
> - * Since we only support one queue, just dereference the pointer.
> + * Select a queue based on the rxq of the device on which this packet
> + * arrived. If the incoming device is not mq, then use our cpu number
> + * to select a queue. vlan->numvtaps is cached in case it changes
> + * during the execution of this function.
>   */
[...]

This can result in reordering if a single-queue device's RX interrupt's
CPU affinity is changed.  We generally try to avoid that.  You should
really use or generate a flow hash.  There is code for this in
net/core/dev.c:get_rps_cpu() which could be factored out into a separate
function.

Ben.

-- 
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.


^ permalink raw reply

* [PATCH] net: ingress filter message limit
From: Stephen Hemminger @ 2010-07-31 19:13 UTC (permalink / raw)
  To: David Miller, jamal; +Cc: netdev

If user misconfigures ingress and causes a redirection loop, don't
overwhelm the log.  This is also a error case so make it unlikely.
Found by inspection, luckily not in real system.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>


--- a/net/core/dev.c	2010-07-31 12:08:00.808476717 -0700
+++ b/net/core/dev.c	2010-07-31 12:09:32.488882593 -0700
@@ -2646,10 +2646,10 @@ static int ing_filter(struct sk_buff *sk
 	int result = TC_ACT_OK;
 	struct Qdisc *q;
 
-	if (MAX_RED_LOOP < ttl++) {
-		printk(KERN_WARNING
-		       "Redir loop detected Dropping packet (%d->%d)\n",
-		       skb->skb_iif, dev->ifindex);
+	if (unlikely(MAX_RED_LOOP < ttl++)) {
+		if (net_ratelimit())
+			pr_warning( "Redir loop detected Dropping packet (%d->%d)\n",
+			       skb->skb_iif, dev->ifindex);
 		return TC_ACT_SHOT;
 	}
 

^ permalink raw reply

* [PATCH] nf_nat: no IP_NAT_RANGE_MAP_IPS flags when alloc_null_binding()
From: Changli Gao @ 2010-07-31 18:15 UTC (permalink / raw)
  To: Patrick McHardy; +Cc: David S. Miller, netfilter-devel, netdev, Changli Gao

when alloc_null_binding(), no IP_NAT_RNAGE_MAP_IPS in flags means no IP address
translation is needed. It isn't necessary to specify the address explicitly.

Signed-off-by: Changli Gao <xiaosuo@gmail.com>
----
 net/ipv4/netfilter/nf_nat_rule.c |   14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/net/ipv4/netfilter/nf_nat_rule.c b/net/ipv4/netfilter/nf_nat_rule.c
index ebbd319..fe8c90e 100644
--- a/net/ipv4/netfilter/nf_nat_rule.c
+++ b/net/ipv4/netfilter/nf_nat_rule.c
@@ -108,14 +108,12 @@ alloc_null_binding(struct nf_conn *ct, unsigned int hooknum)
 	   per-proto parts (hence not IP_NAT_RANGE_PROTO_SPECIFIED).
 	   Use reply in case it's already been mangled (eg local packet).
 	*/
-	__be32 ip
-		= (HOOK2MANIP(hooknum) == IP_NAT_MANIP_SRC
-		   ? ct->tuplehash[IP_CT_DIR_REPLY].tuple.dst.u3.ip
-		   : ct->tuplehash[IP_CT_DIR_REPLY].tuple.src.u3.ip);
-	struct nf_nat_range range
-		= { IP_NAT_RANGE_MAP_IPS, ip, ip, { 0 }, { 0 } };
-
-	pr_debug("Allocating NULL binding for %p (%pI4)\n", ct, &ip);
+	struct nf_nat_range range = { 0 };
+
+	pr_debug("Allocating NULL binding for %p (%pI4)\n", ct,
+		 HOOK2MANIP(hooknum) == IP_NAT_MANIP_SRC ?
+		 &ct->tuplehash[IP_CT_DIR_REPLY].tuple.dst.u3.ip :
+		 &ct->tuplehash[IP_CT_DIR_REPLY].tuple.src.u3.ip);
 	return nf_nat_setup_info(ct, &range, HOOK2MANIP(hooknum));
 }
 

^ permalink raw reply related

* [PATCH] net: wl12xx: do not use kfree'd memory
From: Kulikov Vasiliy @ 2010-07-31 16:33 UTC (permalink / raw)
  To: kernel-janitors
  Cc: Luciano Coelho, John W. Linville, Juuso Oikarinen,
	Teemu Paasikivi, linux-wireless, netdev

wl1271_dump() uses cmd after kfree(cmd). Move kfree() just after
wl1271_dump().

Signed-off-by: Kulikov Vasiliy <segooon@gmail.com>
---
 drivers/net/wireless/wl12xx/wl1271_spi.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/wl12xx/wl1271_spi.c b/drivers/net/wireless/wl12xx/wl1271_spi.c
index 96d25fb..4cb99c5 100644
--- a/drivers/net/wireless/wl12xx/wl1271_spi.c
+++ b/drivers/net/wireless/wl12xx/wl1271_spi.c
@@ -160,9 +160,8 @@ static void wl1271_spi_init(struct wl1271 *wl)
 	spi_message_add_tail(&t, &m);
 
 	spi_sync(wl_to_spi(wl), &m);
-	kfree(cmd);
-
 	wl1271_dump(DEBUG_SPI, "spi init -> ", cmd, WSPI_INIT_CMD_LEN);
+	kfree(cmd);
 }
 
 #define WL1271_BUSY_WORD_TIMEOUT 1000
-- 
1.7.0.4


^ permalink raw reply related

* [PATCH 29/29] LMC: Report proper card type before the first dev->open().
From: Krzysztof Halasa @ 2010-07-31 15:05 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <m3fwyzzpjf.fsf@intrepid.localdomain>

From: Krzysztof Hałasa <khc@pm.waw.pl>

 Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
---
 drivers/net/wan/lmc/main.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wan/lmc/main.c b/drivers/net/wan/lmc/main.c
index 6635afc..14b60ce 100644
--- a/drivers/net/wan/lmc/main.c
+++ b/drivers/net/wan/lmc/main.c
@@ -777,6 +777,7 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
 	lmc_gpio_mkinput(sc, 0xff);
 	sc->gpio = 0;		/* drive no signals yet */
 
+	sc->media->init(sc);
 	sc->media->defaults(sc);
 
 	if (sc->media->set_link_status)
-- 
1.7.1.1


^ permalink raw reply related

* [PATCH 28/29] LMC: Simplify and fix CSR names and logic.
From: Krzysztof Halasa @ 2010-07-31 15:05 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <m3fwyzzpjf.fsf@intrepid.localdomain>

From: Krzysztof Hałasa <khc@pm.waw.pl>

Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
---
 drivers/net/wan/lmc/main.c  |  155 ++++++++++++++++++-------------------------
 drivers/net/wan/lmc/media.c |   24 ++++----
 drivers/net/wan/lmc/var.h   |   93 ++++++++++++--------------
 3 files changed, 118 insertions(+), 154 deletions(-)

diff --git a/drivers/net/wan/lmc/main.c b/drivers/net/wan/lmc/main.c
index 13383a5..6635afc 100644
--- a/drivers/net/wan/lmc/main.c
+++ b/drivers/net/wan/lmc/main.c
@@ -26,8 +26,7 @@
  * arround.
  *
  * The initialization portion of this driver (the lmc_reset() and the
- * lmc_dec_reset() functions, as well as the led controls and the
- * lmc_initcsrs() functions.
+ * lmc_dec_reset() functions, as well as the led controls.
  *
  * The watchdog function runs every second and checks to see if
  * we still have link, and that the timing source is what we expected
@@ -96,8 +95,6 @@ static int lmc_open(struct net_device *dev);
 static int lmc_close(struct net_device *dev);
 static struct net_device_stats *lmc_get_stats(struct net_device *dev);
 static irqreturn_t lmc_interrupt(int irq, void *dev_instance);
-static void lmc_initcsrs(struct card * const sc, lmc_csrptr_t csr_base,
-			 size_t csr_size);
 static void lmc_softreset(struct card * const);
 static void lmc_running_reset(struct net_device *dev);
 static int lmc_ifdown(struct net_device * const);
@@ -329,13 +326,13 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 			   to reset that later anyway. */
 
 			sc->gpio &= ~LMC_GEP_RESET;
-			LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+			csr_write(sc, CSR_GPIO, sc->gpio);
 
 			/* hold for more than 10 microseconds */
 			udelay(50);
 
 			sc->gpio |= LMC_GEP_RESET;
-			LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+			csr_write(sc, CSR_GPIO, sc->gpio);
 
 			/* stop driving Xilinx-related signals */
 			lmc_gpio_mkinput(sc, 0xff);
@@ -386,16 +383,16 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 			   to reset that later anyway. */
 
 			sc->gpio &= ~(LMC_GEP_RESET | LMC_GEP_DP);
-			LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+			csr_write(sc, CSR_GPIO, sc->gpio);
 
 			/* hold for more than 10 microseconds */
 			udelay(50);
 
 			sc->gpio |= LMC_GEP_DP | LMC_GEP_RESET;
-			LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+			csr_write(sc, CSR_GPIO, sc->gpio);
 
 			/* busy wait for the chip to reset */
-			while ((LMC_CSR_READ(sc, csr_gp) & LMC_GEP_INIT) == 0 &&
+			while ((csr_read(sc, CSR_GPIO) & LMC_GEP_INIT) == 0 &&
 			       (timeout-- > 0))
 				cpu_relax();
 
@@ -450,7 +447,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 			sc->gpio &= ~LMC_GEP_DP;
 			sc->gpio &= ~LMC_GEP_RESET;
 			sc->gpio |=  LMC_GEP_MODE;
-			LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+			csr_write(sc, CSR_GPIO, sc->gpio);
 
 			lmc_gpio_mkoutput(sc, LMC_GEP_MODE | LMC_GEP_DP |
 					  LMC_GEP_RESET);
@@ -477,13 +474,13 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 			sc->gpio |= LMC_GEP_MODE;
 			sc->gpio |= LMC_GEP_DATA;
 			sc->gpio |= LMC_GEP_CLK;
-			LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+			csr_write(sc, CSR_GPIO, sc->gpio);
 
 			lmc_gpio_mkoutput(sc, LMC_GEP_DATA | LMC_GEP_CLK |
 					  LMC_GEP_MODE);
 
 			/* busy wait for the chip to reset */
-			while ((LMC_CSR_READ(sc, csr_gp) & LMC_GEP_INIT) == 0 &&
+			while ((csr_read(sc, CSR_GPIO) & LMC_GEP_INIT) == 0 &&
 			       (timeout-- > 0))
 				cpu_relax();
 
@@ -511,24 +508,25 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 				/* Clock to zero */
 				sc->gpio &= ~LMC_GEP_CLK;
 				sc->gpio |= LMC_GEP_MODE;
-				LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+				csr_write(sc, CSR_GPIO, sc->gpio);
 				udelay(1);
 
 				/* Put the clack back to one */
 				sc->gpio |= LMC_GEP_CLK;
 				sc->gpio |= LMC_GEP_MODE;
-				LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+				csr_write(sc, CSR_GPIO, sc->gpio);
 				udelay(1);
 			}
-			if ((LMC_CSR_READ(sc, csr_gp) & LMC_GEP_INIT) == 0) {
+
+			if ((csr_read(sc, CSR_GPIO) & LMC_GEP_INIT) == 0)
 				printk(KERN_WARNING
 				       "%s: Reprogramming FAILED. Needs to be reprogrammed. (corrupted data)\n",
 				       dev->name);
-			} else if ((LMC_CSR_READ(sc, csr_gp) &
-				    LMC_GEP_DP) == 0){
-				printk(KERN_WARNING "%s: Reprogramming FAILED. Needs to be reprogrammed. (done)\n",
+			else if ((csr_read(sc, CSR_GPIO) & LMC_GEP_DP) == 0)
+				printk(KERN_WARNING
+				       "%s: Reprogramming FAILED. Needs to be reprogrammed. (done)\n",
 				       dev->name);
-			} else
+			else
 				printk(KERN_DEBUG
 				       "%s: Done reprogramming Xilinx, %d bits, good luck!\n",
 				       dev->name, pos);
@@ -583,9 +581,9 @@ static void lmc_watchdog(unsigned long data)
 	 * and the transmit and receive processes are running.
 	 */
 
-	LMC_CSR_WRITE(sc, csr_15, 0x00000011);
+	csr_write(sc, CSR_WATCHDOG, 0x00000011);
 	sc->cmdmode |= TULIP_CMD_TXRUN | TULIP_CMD_RXRUN;
-	LMC_CSR_WRITE(sc, csr_command, sc->cmdmode);
+	csr_write(sc, CSR_COMMAND, sc->cmdmode);
 
 	if (sc->ok == 0)
 		goto kick_timer;
@@ -657,7 +655,7 @@ static void lmc_watchdog(unsigned long data)
 
 	/* Poke the transmitter to make sure it never stops, even if we run
 	   out of mem */
-	LMC_CSR_WRITE(sc, csr_rxpoll, 0);
+	csr_write(sc, CSR_RXPOLL, 0);
 
 	/* Check for code that failed and try and fix it as appropriate */
 	if (sc->failed_ring == 1) {
@@ -678,8 +676,8 @@ static void lmc_watchdog(unsigned long data)
 
 	/* remember the timer value */
 kick_timer:
-	ticks = LMC_CSR_READ(sc, csr_gp_timer);
-	LMC_CSR_WRITE(sc, csr_gp_timer, 0xffffffffUL);
+	ticks = csr_read(sc, CSR_GP_TIMER);
+	csr_write(sc, CSR_GP_TIMER, 0xffffffffUL);
 	sc->ictl.ticks = 0x0000ffff - (ticks & 0x0000ffff);
 
 	/* restart this timer. */
@@ -776,8 +774,6 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
 
 	dev_info(&pdev->dev, "%s = LMC %s\n", dev->name, sc->media->name);
 
-	lmc_initcsrs(sc, dev->base_addr, 8);
-
 	lmc_gpio_mkinput(sc, 0xff);
 	sc->gpio = 0;		/* drive no signals yet */
 
@@ -794,7 +790,7 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
 		dev_warn(&pdev->dev, "%s: Invalid model number (%d)",
 			 dev->name, model);
 
-	LMC_CSR_WRITE(sc, csr_gp_timer, 0xFFFFFFFFUL); /* reset clock */
+	csr_write(sc, CSR_GP_TIMER, 0xFFFFFFFFUL); /* reset clock */
 
 	sc->extra_stats.check = STATCHECK;
 	sc->extra_stats.version_size = (DRIVER_VERSION << 16) +
@@ -901,11 +897,11 @@ static int lmc_open(struct net_device *dev)
 			     TULIP_STS_SYSERROR | TULIP_STS_TXSTOPPED |
 			     TULIP_STS_TXUNDERFLOW | TULIP_STS_RXSTOPPED |
 			     TULIP_STS_RXNOBUF);
-	LMC_CSR_WRITE(sc, csr_intr, sc->intrmask);
+	csr_write(sc, CSR_INTR, sc->intrmask);
 
 	sc->cmdmode |= TULIP_CMD_TXRUN;
 	sc->cmdmode |= TULIP_CMD_RXRUN;
-	LMC_CSR_WRITE(sc, csr_command, sc->cmdmode);
+	csr_write(sc, CSR_COMMAND, sc->cmdmode);
 
 	sc->ok = 1; /* Run watchdog */
 
@@ -935,7 +931,7 @@ static void lmc_running_reset(struct net_device *dev)
 
 	/* stop interrupts */
 	/* Clear the interrupt mask */
-	LMC_CSR_WRITE(sc, csr_intr, 0x00000000);
+	csr_write(sc, CSR_INTR, 0x00000000);
 
 	lmc_dec_reset(sc);
 	lmc_reset(sc);
@@ -951,10 +947,10 @@ static void lmc_running_reset(struct net_device *dev)
 	sc->extra_stats.tx_tbusy0++;
 
 	sc->intrmask = TULIP_DEFAULT_INTR_MASK;
-	LMC_CSR_WRITE(sc, csr_intr, sc->intrmask);
+	csr_write(sc, CSR_INTR, sc->intrmask);
 
 	sc->cmdmode |= (TULIP_CMD_TXRUN | TULIP_CMD_RXRUN);
-	LMC_CSR_WRITE(sc, csr_command, sc->cmdmode);
+	csr_write(sc, CSR_COMMAND, sc->cmdmode);
 
 	lmc_trace(dev, "lmc_runnin_reset_out");
 }
@@ -998,16 +994,16 @@ static int lmc_ifdown(struct net_device *dev)
 
 	/* stop interrupts */
 	/* Clear the interrupt mask */
-	LMC_CSR_WRITE(sc, csr_intr, 0x00000000);
+	csr_write(sc, CSR_INTR, 0x00000000);
 
 	/* Stop Tx and Rx on the chip */
-	csr6 = LMC_CSR_READ(sc, csr_command);
+	csr6 = csr_read(sc, CSR_COMMAND);
 	csr6 &= ~LMC_DEC_ST;		/* Turn off the Transmission bit */
 	csr6 &= ~LMC_DEC_SR;		/* Turn off the Receive bit */
-	LMC_CSR_WRITE(sc, csr_command, csr6);
+	csr_write(sc, CSR_COMMAND, csr6);
 
 	sc->netdev->stats.rx_missed_errors +=
-		LMC_CSR_READ(sc, csr_missed_frames) & 0xffff;
+		csr_read(sc, CSR_MISSED_FRAMES) & 0xFFFF;
 
 	/* release the interrupt */
 	if (sc->got_irq == 1) {
@@ -1062,7 +1058,7 @@ static irqreturn_t lmc_interrupt(int irq, void *dev_instance)
 	spin_lock(&sc->lock);
 
 	/* Read the csr to find what interrupts we have (if any) */
-	csr = LMC_CSR_READ(sc, csr_status);
+	csr = csr_read(sc, CSR_STATUS);
 
 	/* Make sure this is our interrupt */
 	if (!(csr & sc->intrmask))
@@ -1075,7 +1071,7 @@ static irqreturn_t lmc_interrupt(int irq, void *dev_instance)
 		handled = 1;
 
 		/* Clear interrupt bits, we handle all case below */
-		LMC_CSR_WRITE(sc, csr_status, csr);
+		csr_write(sc, CSR_STATUS, csr);
 
 		/*
 		 * One of
@@ -1201,7 +1197,7 @@ static irqreturn_t lmc_interrupt(int irq, void *dev_instance)
 
 		/* Get current csr status to make sure we've cleared all
 		   interrupts */
-		csr = LMC_CSR_READ(sc, csr_status);
+		csr = csr_read(sc, CSR_STATUS);
 	} /* end interrupt loop */
 
 lmc_int_fail_out:
@@ -1282,7 +1278,7 @@ static netdev_tx_t lmc_start_xmit(struct sk_buff *skb,
 	sc->txring[entry].status = 0x80000000;
 
 	/* send now! */
-	LMC_CSR_WRITE(sc, csr_txpoll, 0);
+	csr_write(sc, CSR_TXPOLL, 0);
 
 	spin_unlock_irqrestore(&sc->lock, flags);
 
@@ -1486,7 +1482,7 @@ static struct net_device_stats *lmc_get_stats(struct net_device *dev)
 	spin_lock_irqsave(&sc->lock, flags);
 
 	sc->netdev->stats.rx_missed_errors +=
-		LMC_CSR_READ(sc, csr_missed_frames) & 0xffff;
+		csr_read(sc, CSR_MISSED_FRAMES) & 0xFFFF;
 
 	spin_unlock_irqrestore(&sc->lock, flags);
 
@@ -1530,10 +1526,10 @@ unsigned lmc_mii_readreg(struct card * const sc, unsigned devaddr,
 	for (i = 15; i >= 0; i--) {
 		int dataval = (command & (1 << i)) ? 0x20000 : 0;
 
-		LMC_CSR_WRITE(sc, csr_9, dataval);
+		csr_write(sc, CSR_SROM_MII, dataval);
 		lmc_delay();
 		/* __SLOW_DOWN_IO; */
-		LMC_CSR_WRITE(sc, csr_9, dataval | 0x10000);
+		csr_write(sc, CSR_SROM_MII, dataval | 0x10000);
 		lmc_delay();
 		/* __SLOW_DOWN_IO; */
 	}
@@ -1541,12 +1537,12 @@ unsigned lmc_mii_readreg(struct card * const sc, unsigned devaddr,
 	lmc_trace(sc->netdev, "lmc_mii_readreg: done1");
 
 	for (i = 19; i > 0; i--) {
-		LMC_CSR_WRITE(sc, csr_9, 0x40000);
+		csr_write(sc, CSR_SROM_MII, 0x40000);
 		lmc_delay();
 		/* __SLOW_DOWN_IO; */
-		retval = (retval << 1) |
-			((LMC_CSR_READ(sc, csr_9) & 0x80000) ? 1 : 0);
-		LMC_CSR_WRITE(sc, csr_9, 0x40000 | 0x10000);
+		retval <<= 1;
+		retval |= !!(csr_read(sc, CSR_SROM_MII) & 0x80000);
+		csr_write(sc, CSR_SROM_MII, 0x40000 | 0x10000);
 		lmc_delay();
 		/* __SLOW_DOWN_IO; */
 	}
@@ -1575,10 +1571,10 @@ void lmc_mii_writereg(struct card * const sc, unsigned devaddr, unsigned regno,
 		else
 			datav = 0x00000;
 
-		LMC_CSR_WRITE(sc, csr_9, datav);
+		csr_write(sc, CSR_SROM_MII, datav);
 		lmc_delay();
 		/* __SLOW_DOWN_IO; */
-		LMC_CSR_WRITE(sc, csr_9, (datav | 0x10000));
+		csr_write(sc, CSR_SROM_MII, (datav | 0x10000));
 		lmc_delay();
 		/* __SLOW_DOWN_IO; */
 		i--;
@@ -1586,10 +1582,10 @@ void lmc_mii_writereg(struct card * const sc, unsigned devaddr, unsigned regno,
 
 	i = 2;
 	while (i > 0) {
-		LMC_CSR_WRITE(sc, csr_9, 0x40000);
+		csr_write(sc, CSR_SROM_MII, 0x40000);
 		lmc_delay();
 		/* __SLOW_DOWN_IO; */
-		LMC_CSR_WRITE(sc, csr_9, 0x50000);
+		csr_write(sc, CSR_SROM_MII, 0x50000);
 		lmc_delay();
 		/* __SLOW_DOWN_IO; */
 		i--;
@@ -1658,7 +1654,7 @@ static void lmc_softreset(struct card * const sc)
 		sc->rxring[i - 1].buffer2 = virt_to_bus(&sc->rxring[0]);
 	}
 	/* write base address */
-	LMC_CSR_WRITE(sc, csr_rxlist, virt_to_bus(sc->rxring));
+	csr_write(sc, CSR_RXLIST, virt_to_bus(sc->rxring));
 
 	/* Initialize the transmit rings and buffers */
 	for (i = 0; i < LMC_TXDESCS; i++) {
@@ -1672,7 +1668,7 @@ static void lmc_softreset(struct card * const sc)
 		sc->txring[i].buffer2 = virt_to_bus(&sc->txring[i + 1]);
 	}
 	sc->txring[i - 1].buffer2 = virt_to_bus(&sc->txring[0]);
-	LMC_CSR_WRITE(sc, csr_txlist, virt_to_bus(sc->txring));
+	csr_write(sc, CSR_TXLIST, virt_to_bus(sc->txring));
 
 	lmc_trace(sc->netdev, "lmc_softreset out");
 }
@@ -1681,7 +1677,7 @@ void lmc_gpio_mkinput(struct card * const sc, u32 bits)
 {
 	lmc_trace(sc->netdev, "lmc_gpio_mkinput in");
 	sc->gpio_io &= ~bits;
-	LMC_CSR_WRITE(sc, csr_gp, TULIP_GP_PINSET | (sc->gpio_io));
+	csr_write(sc, CSR_GPIO, TULIP_GP_PINSET | (sc->gpio_io));
 	lmc_trace(sc->netdev, "lmc_gpio_mkinput out");
 }
 
@@ -1689,7 +1685,7 @@ void lmc_gpio_mkoutput(struct card * const sc, u32 bits)
 {
 	lmc_trace(sc->netdev, "lmc_gpio_mkoutput in");
 	sc->gpio_io |= bits;
-	LMC_CSR_WRITE(sc, csr_gp, TULIP_GP_PINSET | (sc->gpio_io));
+	csr_write(sc, CSR_GPIO, TULIP_GP_PINSET | (sc->gpio_io));
 	lmc_trace(sc->netdev, "lmc_gpio_mkoutput out");
 }
 
@@ -1734,7 +1730,7 @@ static void lmc_reset(struct card * const sc)
 	/* RESET low to force state reset.  This also forces the transmitter
 	   clock to be internal, but we expect to reset that later anyway. */
 	sc->gpio &= ~(LMC_GEP_RESET);
-	LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+	csr_write(sc, CSR_GPIO, sc->gpio);
 
 	/* hold for more than 10 microseconds */
 	udelay(50);
@@ -1756,20 +1752,20 @@ static void lmc_dec_reset(struct card * const sc)
 
 	/* disable all interrupts */
 	sc->intrmask = 0;
-	LMC_CSR_WRITE(sc, csr_intr, sc->intrmask);
+	csr_write(sc, CSR_INTR, sc->intrmask);
 
 	/* Reset the chip with a software reset command. Wait 10 microseconds
 	   (actually 50 PCI cycles but at 33MHz that comes to two microseconds
 	   but wait a bit longer anyways) */
-	LMC_CSR_WRITE(sc, csr_busmode, TULIP_BUSMODE_SWRESET);
+	csr_write(sc, CSR_BUSMODE, TULIP_BUSMODE_SWRESET);
 	udelay(25);
 #ifdef __sparc__
-	sc->busmode = LMC_CSR_READ(sc, csr_busmode);
+	sc->busmode = csr_read(sc, CSR_BUSMODE);
 	sc->busmode = 0x00100000;
 	sc->busmode &= ~TULIP_BUSMODE_SWRESET;
-	LMC_CSR_WRITE(sc, csr_busmode, sc->busmode);
+	csr_write(sc, CSR_BUSMODE, sc->busmode);
 #endif
-	sc->cmdmode = LMC_CSR_READ(sc, csr_command);
+	sc->cmdmode = csr_read(sc, CSR_COMMAND);
 
 	/*
 	 * We want:
@@ -1788,39 +1784,16 @@ static void lmc_dec_reset(struct card * const sc)
 	sc->cmdmode &= ~(TULIP_CMD_OPERMODE | TULIP_CMD_THRESHOLDCTL |
 			     TULIP_CMD_STOREFWD | TULIP_CMD_TXTHRSHLDCTL);
 
-	LMC_CSR_WRITE(sc, csr_command, sc->cmdmode);
+	csr_write(sc, CSR_COMMAND, sc->cmdmode);
 
 	/* disable receiver watchdog and transmit jabber */
-	val = LMC_CSR_READ(sc, csr_sia_general);
+	val = csr_read(sc, CSR_WATCHDOG);
 	val |= (TULIP_WATCHDOG_TXDISABLE | TULIP_WATCHDOG_RXDISABLE);
-	LMC_CSR_WRITE(sc, csr_sia_general, val);
+	csr_write(sc, CSR_WATCHDOG, val);
 
 	lmc_trace(sc->netdev, "lmc_dec_reset out");
 }
 
-static void lmc_initcsrs(struct card * const sc, lmc_csrptr_t csr_base,
-			 size_t csr_size)
-{
-	lmc_trace(sc->netdev, "lmc_initcsrs in");
-	sc->csrs.csr_busmode	= csr_base +  0 * csr_size;
-	sc->csrs.csr_txpoll		= csr_base +  1 * csr_size;
-	sc->csrs.csr_rxpoll		= csr_base +  2 * csr_size;
-	sc->csrs.csr_rxlist		= csr_base +  3 * csr_size;
-	sc->csrs.csr_txlist		= csr_base +  4 * csr_size;
-	sc->csrs.csr_status		= csr_base +  5 * csr_size;
-	sc->csrs.csr_command	= csr_base +  6 * csr_size;
-	sc->csrs.csr_intr		= csr_base +  7 * csr_size;
-	sc->csrs.csr_missed_frames	= csr_base +  8 * csr_size;
-	sc->csrs.csr_9		= csr_base +  9 * csr_size;
-	sc->csrs.csr_10		= csr_base + 10 * csr_size;
-	sc->csrs.csr_11		= csr_base + 11 * csr_size;
-	sc->csrs.csr_12		= csr_base + 12 * csr_size;
-	sc->csrs.csr_13		= csr_base + 13 * csr_size;
-	sc->csrs.csr_14		= csr_base + 14 * csr_size;
-	sc->csrs.csr_15		= csr_base + 15 * csr_size;
-	lmc_trace(sc->netdev, "lmc_initcsrs out");
-}
-
 static void lmc_driver_timeout(struct net_device *dev)
 {
 	struct card *sc = dev_to_sc(dev);
@@ -1843,12 +1816,12 @@ static void lmc_driver_timeout(struct net_device *dev)
 	lmc_running_reset(dev);
 
 	/* restart the tx processes */
-	csr6 = LMC_CSR_READ(sc, csr_command);
-	LMC_CSR_WRITE(sc, csr_command, csr6 | 0x0002);
-	LMC_CSR_WRITE(sc, csr_command, csr6 | 0x2002);
+	csr6 = csr_read(sc, CSR_COMMAND);
+	csr_write(sc, CSR_COMMAND, csr6 | 0x0002);
+	csr_write(sc, CSR_COMMAND, csr6 | 0x2002);
 
 	/* immediate transmit */
-	LMC_CSR_WRITE(sc, csr_txpoll, 0);
+	csr_write(sc, CSR_TXPOLL, 0);
 
 	sc->netdev->stats.tx_errors++;
 	sc->extra_stats.tx_ProcTimeout++;
diff --git a/drivers/net/wan/lmc/media.c b/drivers/net/wan/lmc/media.c
index b9fadb4..cad17be 100644
--- a/drivers/net/wan/lmc/media.c
+++ b/drivers/net/wan/lmc/media.c
@@ -46,15 +46,15 @@ static inline void write_av9110_bit(struct card *sc, int c)
 		sc->gpio |= LMC_GEP_DATA;
 	else
 		sc->gpio &= ~(LMC_GEP_DATA);
-	LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+	csr_write(sc, CSR_GPIO, sc->gpio);
 
 	/* set the clock to high */
 	sc->gpio |= LMC_GEP_CLK;
-	LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+	csr_write(sc, CSR_GPIO, sc->gpio);
 
 	/* set the clock to low again. */
 	sc->gpio &= ~(LMC_GEP_CLK);
-	LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+	csr_write(sc, CSR_GPIO, sc->gpio);
 }
 
 static void write_av9110(struct card *sc, u32 n, u32 m, u32 v, u32 x, u32 r)
@@ -68,14 +68,14 @@ static void write_av9110(struct card *sc, u32 n, u32 m, u32 v, u32 x, u32 r)
 
 	sc->gpio |= LMC_GEP_SSI_GENERATOR;
 	sc->gpio &= ~(LMC_GEP_DATA | LMC_GEP_CLK);
-	LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+	csr_write(sc, CSR_GPIO, sc->gpio);
 
 	/* Set the TXCLOCK, GENERATOR, SERIAL, and SERIALCLK as outputs. */
 	lmc_gpio_mkoutput(sc, (LMC_GEP_DATA | LMC_GEP_CLK
 				| LMC_GEP_SSI_GENERATOR));
 
 	sc->gpio &= ~(LMC_GEP_SSI_GENERATOR);
-	LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+	csr_write(sc, CSR_GPIO, sc->gpio);
 
 	/* a shifting we will go... */
 	for (i = 0; i < 7; i++)
@@ -118,14 +118,14 @@ static void lmc_ssi_set_clock(struct card * const sc, int ie)
 	old = ie;
 	if (ie == LMC_CTL_CLOCK_SOURCE_EXT) {
 		sc->gpio &= ~(LMC_GEP_SSI_TXCLOCK);
-		LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+		csr_write(sc, CSR_GPIO, sc->gpio);
 		sc->ictl.clock_source = LMC_CTL_CLOCK_SOURCE_EXT;
 		if (ie != old)
 			printk(LMC_PRINTF_FMT ": clock external\n",
 			       LMC_PRINTF_ARGS);
 	} else {
 		sc->gpio |= LMC_GEP_SSI_TXCLOCK;
-		LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+		csr_write(sc, CSR_GPIO, sc->gpio);
 		sc->ictl.clock_source = LMC_CTL_CLOCK_SOURCE_INT;
 		if (ie != old)
 			printk(LMC_PRINTF_FMT ": clock internal\n",
@@ -217,7 +217,7 @@ static int lmc_ssi_get_link_status(struct card * const sc)
 	link_status = lmc_mii_readreg(sc, 0, 16);
 
 	/* Is the transmit clock still available */
-	ticks = LMC_CSR_READ(sc, csr_gp_timer);
+	ticks = csr_read(sc, CSR_GP_TIMER);
 	ticks = 0x0000ffff - (ticks & 0x0000ffff);
 
 	lmc_led_on(sc, LMC_MII16_LED0);
@@ -347,14 +347,14 @@ static void lmc_hssi_set_clock(struct card * const sc, int ie)
 	old = sc->ictl.clock_source;
 	if (ie == LMC_CTL_CLOCK_SOURCE_EXT) {
 		sc->gpio |= LMC_GEP_HSSI_CLOCK;
-		LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+		csr_write(sc, CSR_GPIO, sc->gpio);
 		sc->ictl.clock_source = LMC_CTL_CLOCK_SOURCE_EXT;
 		if (old != ie)
 			printk(LMC_PRINTF_FMT ": clock external\n",
 			       LMC_PRINTF_ARGS);
 	} else {
 		sc->gpio &= ~LMC_GEP_HSSI_CLOCK;
-		LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+		csr_write(sc, CSR_GPIO, sc->gpio);
 		sc->ictl.clock_source = LMC_CTL_CLOCK_SOURCE_INT;
 		if (old != ie)
 			printk(LMC_PRINTF_FMT ": clock internal\n",
@@ -864,14 +864,14 @@ static void lmc_t1_set_clock(struct card * const sc, int ie)
 	old = ie;
 	if (ie == LMC_CTL_CLOCK_SOURCE_EXT) {
 		sc->gpio &= ~(LMC_GEP_SSI_TXCLOCK);
-		LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+		csr_write(sc, CSR_GPIO, sc->gpio);
 		sc->ictl.clock_source = LMC_CTL_CLOCK_SOURCE_EXT;
 		if (old != ie)
 			printk(LMC_PRINTF_FMT ": clock external\n",
 			       LMC_PRINTF_ARGS);
 	} else {
 		sc->gpio |= LMC_GEP_SSI_TXCLOCK;
-		LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
+		csr_write(sc, CSR_GPIO, sc->gpio);
 		sc->ictl.clock_source = LMC_CTL_CLOCK_SOURCE_INT;
 		if (old != ie)
 			printk(LMC_PRINTF_FMT ": clock internal\n",
diff --git a/drivers/net/wan/lmc/var.h b/drivers/net/wan/lmc/var.h
index f62f9a1..582f00e 100644
--- a/drivers/net/wan/lmc/var.h
+++ b/drivers/net/wan/lmc/var.h
@@ -32,56 +32,36 @@
 #define LMC_LINK_UP		1
 #define LMC_LINK_DOWN		0
 
-/* These macros for generic read and write to and from the dec chip */
-#define LMC_CSR_READ(sc, csr)		inl((sc)->csrs.csr)
-#define LMC_CSR_WRITE(sc, reg, val)	outl((val), (sc)->csrs.reg)
-
-#define lmc_delay()		inl(sc->csrs.csr_9)
-
 /* This macro sync's up with the mii so that reads and writes can take place */
-#define LMC_MII_SYNC(sc)					\
-	do {							\
-		int n = 32;					\
-		while (n >= 0) {				\
-			LMC_CSR_WRITE((sc), csr_9, 0x20000);	\
-			lmc_delay();				\
-			LMC_CSR_WRITE((sc), csr_9, 0x30000);	\
-			lmc_delay();				\
-			n--;					\
-		}						\
+#define LMC_MII_SYNC(sc)						\
+	do {								\
+		int n = 32;						\
+		while (n >= 0) {					\
+			csr_write((sc), CSR_SROM_MII, 0x20000);		\
+			lmc_delay();					\
+			csr_write((sc), CSR_SROM_MII, 0x30000);		\
+			lmc_delay();					\
+			n--;						\
+		}							\
 	} while (0)
 
-struct lmc_regfile_t {
-	lmc_csrptr_t csr_busmode;	/* CSR0 */
-	lmc_csrptr_t csr_txpoll;	/* CSR1 */
-	lmc_csrptr_t csr_rxpoll;	/* CSR2 */
-	lmc_csrptr_t csr_rxlist;	/* CSR3 */
-	lmc_csrptr_t csr_txlist;	/* CSR4 */
-	lmc_csrptr_t csr_status;	/* CSR5 */
-	lmc_csrptr_t csr_command;	/* CSR6 */
-	lmc_csrptr_t csr_intr;		/* CSR7 */
-	lmc_csrptr_t csr_missed_frames;	/* CSR8 */
-	lmc_csrptr_t csr_9;		/* CSR9 */
-	lmc_csrptr_t csr_10;		/* CSR10 */
-	lmc_csrptr_t csr_11;		/* CSR11 */
-	lmc_csrptr_t csr_12;		/* CSR12 */
-	lmc_csrptr_t csr_13;		/* CSR13 */
-	lmc_csrptr_t csr_14;		/* CSR14 */
-	lmc_csrptr_t csr_15;		/* CSR15 */
-};
-
-#define csr_enetrom		csr_9	/* 21040 */
-#define csr_reserved		csr_10	/* 21040 */
-#define csr_full_duplex		csr_11	/* 21040 */
-#define csr_bootrom		csr_10	/* 21041/21140A/?? */
-#define csr_gp			csr_12	/* 21140* */
-#define csr_watchdog		csr_15	/* 21140* */
-#define csr_gp_timer		csr_11	/* 21041/21140* */
-#define csr_srom_mii		csr_9	/* 21041/21140* */
-#define csr_sia_status		csr_12	/* 2104x */
-#define csr_sia_connectivity	csr_13	/* 2104x */
-#define csr_sia_tx_rx		csr_14	/* 2104x */
-#define csr_sia_general		csr_15	/* 2104x */
+/* DC21140 CSRs */
+#define CSR_BUSMODE		0
+#define CSR_TXPOLL		1
+#define CSR_RXPOLL		2
+#define CSR_RXLIST		3
+#define CSR_TXLIST		4
+#define CSR_STATUS		5
+#define CSR_COMMAND		6 /* operation mode */
+#define CSR_INTR		7
+#define CSR_MISSED_FRAMES	8
+#define CSR_SROM_MII		9
+/* #define CSR_RESERVED		10 */
+#define CSR_GP_TIMER		11
+#define CSR_GPIO		12
+/* #define CSR_RESERVED		13 */
+/* #define CSR_RESERVED		14 */
+#define CSR_WATCHDOG		15
 
 /* tulip length/control transmit descriptor definitions used to define bits
    in the second tulip_desc_t field (length) for the transmit descriptor */
@@ -270,10 +250,8 @@ typedef struct lmc_xinfo {
 struct card {
 	struct lmc_extra_statistics extra_stats;
 	struct net_device *netdev;
-
-	struct lmc_regfile_t csrs;
-	u32 intrmask;		/* our copy of csr_intr */
-	u32 cmdmode;		/* our copy of csr_cmdmode */
+	u32 intrmask;		/* our copy of CSR_INTR */
+	u32 cmdmode;		/* our copy of CSR_COMMAND */
 	u32 gpio_io;		/* state of in/out settings */
 	u32 gpio;		/* state of outputs */
 	struct sk_buff *txq[LMC_TXDESCS];
@@ -421,6 +399,19 @@ static inline void lmc_trace(struct net_device *dev, char *msg)
 #endif
 }
 
+/* These macros for generic read and write to and from the dec chip */
+static inline u32 csr_read(struct card *sc, int csr)
+{
+	return inl(sc->netdev->base_addr + 8 * csr);
+}
+
+static inline void csr_write(struct card *sc, int csr, u32 val)
+{
+	outl(val, sc->netdev->base_addr + 8 * csr);
+}
+
+#define lmc_delay()		csr_read(sc, CSR_SROM_MII);
+
 
 void lmc_led_on(struct card * const, u32);
 void lmc_led_off(struct card * const, u32);
-- 
1.7.1.1


^ permalink raw reply related

* [PATCH 27/29] LMC: Remove redundant card->name.
From: Krzysztof Halasa @ 2010-07-31 15:05 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <m3fwyzzpjf.fsf@intrepid.localdomain>

From: Krzysztof Hałasa <khc@pm.waw.pl>

Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
---
 drivers/net/wan/lmc/main.c  |    3 +--
 drivers/net/wan/lmc/media.c |   40 ++++++++++++++++++++++------------------
 drivers/net/wan/lmc/var.h   |    1 -
 3 files changed, 23 insertions(+), 21 deletions(-)

diff --git a/drivers/net/wan/lmc/main.c b/drivers/net/wan/lmc/main.c
index 133cc77..13383a5 100644
--- a/drivers/net/wan/lmc/main.c
+++ b/drivers/net/wan/lmc/main.c
@@ -754,7 +754,6 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
 	dev->watchdog_timeo = HZ; /* 1 second */
 	dev->tx_queue_len = 100;
 	sc->netdev = dev;
-	sc->name = dev->name;
 	dev->base_addr = pci_resource_start(pdev, 0);
 	dev->irq = pdev->irq;
 	pci_set_drvdata(pdev, dev);
@@ -1624,7 +1623,7 @@ static void lmc_softreset(struct card * const sc)
 			if (skb == NULL) {
 				printk(KERN_WARNING
 				       "%s: Failed to allocate receiver ring, will try again\n",
-				       sc->name);
+				       sc->netdev->name);
 				sc->failed_ring = 1;
 				break;
 			} else
diff --git a/drivers/net/wan/lmc/media.c b/drivers/net/wan/lmc/media.c
index ea5c2bc..b9fadb4 100644
--- a/drivers/net/wan/lmc/media.c
+++ b/drivers/net/wan/lmc/media.c
@@ -230,13 +230,14 @@ static int lmc_ssi_get_link_status(struct card * const sc)
 		if (sc->last_led_err[3] != 1) {
 			sc->extra_stats.tx_lossOfClockCnt++;
 			printk(KERN_WARNING "%s: Lost Clock, Link Down\n",
-			       sc->name);
+			       sc->netdev->name);
 		}
 		sc->last_led_err[3] = 1;
 		lmc_led_on(sc, LMC_MII16_LED3);	/* turn ON red LED */
 	} else {
 		if (sc->last_led_err[3] == 1)
-			printk(KERN_WARNING "%s: Clock Returned\n", sc->name);
+			printk(KERN_WARNING "%s: Clock Returned\n",
+			       sc->netdev->name);
 		sc->last_led_err[3] = 0;
 		lmc_led_off(sc, LMC_MII16_LED3); /* turn OFF red LED */
 	}
@@ -255,12 +256,14 @@ static int lmc_ssi_get_link_status(struct card * const sc)
 
 	if (hw_hdsk == 0) {
 		if (sc->last_led_err[1] != 1)
-			printk(KERN_WARNING "%s: DSR not asserted\n", sc->name);
+			printk(KERN_WARNING "%s: DSR not asserted\n",
+			       sc->netdev->name);
 		sc->last_led_err[1] = 1;
 		lmc_led_off(sc, LMC_MII16_LED1);
 	} else {
 		if (sc->last_led_err[1] != 0)
-			printk(KERN_WARNING "%s: DSR now asserted\n", sc->name);
+			printk(KERN_WARNING "%s: DSR now asserted\n",
+			       sc->netdev->name);
 		sc->last_led_err[1] = 0;
 		lmc_led_on(sc, LMC_MII16_LED1);
 	}
@@ -532,7 +535,7 @@ static int lmc_ds3_get_link_status(struct card * const sc)
 			lmc_mii_writereg(sc, 0, 18, r1);
 			printk(KERN_WARNING
 			       "%s: Red Alarm - Loss of Signal or Loss of Framing\n",
-			       sc->name);
+			       sc->netdev->name);
 		}
 		lmc_led_on(sc, LMC_DS3_LED3);	/* turn on red LED */
 		sc->last_led_err[3] = 1;
@@ -556,10 +559,11 @@ static int lmc_ds3_get_link_status(struct card * const sc)
 		ret = 0;
 		if (sc->last_led_err[0] != 1) {
 			printk(KERN_WARNING
-			       "%s: AIS Alarm or XBit Error\n", sc->name);
+			       "%s: AIS Alarm or XBit Error\n",
+			       sc->netdev->name);
 			printk(KERN_WARNING
 			       "%s: Remote end has loss of signal or framing\n",
-			       sc->name);
+			       sc->netdev->name);
 		}
 		lmc_led_on(sc, LMC_DS3_LED0);
 		sc->last_led_err[0] = 1;
@@ -576,7 +580,7 @@ static int lmc_ds3_get_link_status(struct card * const sc)
 		if (sc->last_led_err[1] != 1) {
 			printk(KERN_WARNING
 			       "%s: Blue Alarm - Receiving all 1's\n",
-			       sc->name);
+			       sc->netdev->name);
 		}
 		lmc_led_on(sc, LMC_DS3_LED1);
 		sc->last_led_err[1] = 1;
@@ -638,11 +642,11 @@ static void lmc_t1_set_circuit_type(struct card * const sc, int ie)
 	if (ie == LMC_CTL_CIRCUIT_TYPE_T1) {
 		sc->miireg16 |= LMC_MII16_T1_Z;
 		sc->ictl.circuit_type = LMC_CTL_CIRCUIT_TYPE_T1;
-		printk(KERN_INFO "%s: In T1 Mode\n", sc->name);
+		printk(KERN_INFO "%s: In T1 Mode\n", sc->netdev->name);
 	} else {
 		sc->miireg16 &= ~LMC_MII16_T1_Z;
 		sc->ictl.circuit_type = LMC_CTL_CIRCUIT_TYPE_E1;
-		printk(KERN_INFO "%s: In E1 Mode\n", sc->name);
+		printk(KERN_INFO "%s: In E1 Mode\n", sc->netdev->name);
 	}
 
 	lmc_mii_writereg(sc, 0, 16, sc->miireg16);
@@ -747,14 +751,14 @@ static int lmc_t1_get_link_status(struct card * const sc)
 		if (sc->last_led_err[1] != 1) {
 			printk(KERN_WARNING
 			       "%s: Receive AIS/Blue Alarm. Far end in RED alarm\n",
-			       sc->name);
+			       sc->netdev->name);
 		}
 		lmc_led_on(sc, LMC_DS3_LED1);
 		sc->last_led_err[1] = 1;
 	} else {
 		if (sc->last_led_err[1] != 0) {
 			printk(KERN_WARNING "%s: End AIS/Blue Alarm\n",
-			       sc->name);
+			       sc->netdev->name);
 		}
 		lmc_led_off(sc, LMC_DS3_LED1);
 		sc->last_led_err[1] = 0;
@@ -770,14 +774,14 @@ static int lmc_t1_get_link_status(struct card * const sc)
 		ret = 0;
 		if (sc->last_led_err[0] != 1) {
 			printk(KERN_WARNING "%s: Receive Yellow AIS Alarm\n",
-			       sc->name);
+			       sc->netdev->name);
 		}
 		lmc_led_on(sc, LMC_DS3_LED0);
 		sc->last_led_err[0] = 1;
 	} else {
 		if (sc->last_led_err[0] != 0) {
 			printk(KERN_WARNING "%s: End of Yellow AIS Alarm\n",
-			       sc->name);
+			       sc->netdev->name);
 		}
 		lmc_led_off(sc, LMC_DS3_LED0);
 		sc->last_led_err[0] = 0;
@@ -790,7 +794,7 @@ static int lmc_t1_get_link_status(struct card * const sc)
 		if (sc->last_led_err[3] != 1) {
 			printk(KERN_WARNING
 			       "%s: Local Red Alarm: Loss of Framing\n",
-			       sc->name);
+			       sc->netdev->name);
 		}
 		lmc_led_on(sc, LMC_DS3_LED3);
 		sc->last_led_err[3] = 1;
@@ -798,7 +802,7 @@ static int lmc_t1_get_link_status(struct card * const sc)
 	} else {
 		if (sc->last_led_err[3] != 0) {
 			printk(KERN_WARNING "%s: End Red Alarm (LOF)\n",
-			       sc->name);
+			       sc->netdev->name);
 		}
 		if (!(link_status & T1F_RLOS))
 			lmc_led_off(sc, LMC_DS3_LED3);
@@ -810,7 +814,7 @@ static int lmc_t1_get_link_status(struct card * const sc)
 		if (sc->last_led_err[2] != 1) {
 			printk(KERN_WARNING
 			       "%s: Local Red Alarm: Loss of Signal\n",
-			       sc->name);
+			       sc->netdev->name);
 		}
 		lmc_led_on(sc, LMC_DS3_LED3);
 		sc->last_led_err[2] = 1;
@@ -818,7 +822,7 @@ static int lmc_t1_get_link_status(struct card * const sc)
 	} else {
 		if (sc->last_led_err[2] != 0) {
 			printk(KERN_WARNING "%s: End Red Alarm (LOS)\n",
-			       sc->name);
+			       sc->netdev->name);
 		}
 		if (!(link_status & T1F_RLOF))
 			lmc_led_off(sc, LMC_DS3_LED3);
diff --git a/drivers/net/wan/lmc/var.h b/drivers/net/wan/lmc/var.h
index 54e9b0b..f62f9a1 100644
--- a/drivers/net/wan/lmc/var.h
+++ b/drivers/net/wan/lmc/var.h
@@ -268,7 +268,6 @@ typedef struct lmc_xinfo {
 
 /* forward decl */
 struct card {
-	char *name;
 	struct lmc_extra_statistics extra_stats;
 	struct net_device *netdev;
 
-- 
1.7.1.1


^ permalink raw reply related

* [PATCH 23/29] LMC: lmc_set_protocol() is effectively a NOP, remove it.
From: Krzysztof Halasa @ 2010-07-31 15:05 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <m3fwyzzpjf.fsf@intrepid.localdomain>

From: Krzysztof Hałasa <khc@pm.waw.pl>

Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
---
 drivers/net/wan/lmc/main.c  |    2 +-
 drivers/net/wan/lmc/media.c |   27 +++------------------------
 drivers/net/wan/lmc/var.h   |    2 +-
 3 files changed, 5 insertions(+), 26 deletions(-)

diff --git a/drivers/net/wan/lmc/main.c b/drivers/net/wan/lmc/main.c
index 1231d7c..133cc77 100644
--- a/drivers/net/wan/lmc/main.c
+++ b/drivers/net/wan/lmc/main.c
@@ -962,7 +962,7 @@ static void lmc_running_reset(struct net_device *dev)
 
 
 /* This is what is called when you ifconfig down a device. This disables
-   the timer for the watchdog and keepalives, and disables the irq for dev. */
+   the watchdog timer and the irq for dev. */
 static int lmc_close(struct net_device *dev)
 {
 	/* not calling release_region() as we should */
diff --git a/drivers/net/wan/lmc/media.c b/drivers/net/wan/lmc/media.c
index ecf0f2a..ea5c2bc 100644
--- a/drivers/net/wan/lmc/media.c
+++ b/drivers/net/wan/lmc/media.c
@@ -35,13 +35,6 @@
  * the GNU General Public License version 2, incorporated herein by reference.
  */
 
-static void lmc_set_protocol(struct card * const sc, struct control *ctl)
-{
-	if (!ctl)
-		sc->ictl.keepalive_onoff = LMC_CTL_ON;
-}
-
-
 /* SSI methods */
 
 /* These are bits to program the ssi frequency generator */
@@ -180,7 +173,6 @@ static void lmc_ssi_set_status(struct card * const sc, struct control *ctl)
 	if (ctl == NULL) {
 		lmc_ssi_set_clock(sc, sc->ictl.clock_source);
 		lmc_ssi_set_speed(sc, &sc->ictl);
-		lmc_set_protocol(sc, NULL);
 		return;
 	}
 
@@ -197,8 +189,6 @@ static void lmc_ssi_set_status(struct card * const sc, struct control *ctl)
 
 	if (ctl->clock_rate != sc->ictl.clock_rate)
 		lmc_ssi_set_speed(sc, ctl);
-
-	lmc_set_protocol(sc, ctl);
 }
 
 /* Return hardware link status. 0 == link is down, 1 == link is up. */
@@ -375,21 +365,15 @@ static void lmc_hssi_set_status(struct card * const sc, struct control *ctl)
 {
 	if (ctl == NULL) {
 		lmc_hssi_set_clock(sc, sc->ictl.clock_source);
-		lmc_set_protocol(sc, NULL);
-
 		return;
 	}
 
 	/* check for change in clock source */
-	if (ctl->clock_source && !sc->ictl.clock_source) {
-		lmc_hssi_set_clock(sc, LMC_CTL_CLOCK_SOURCE_INT);
+	if (ctl->clock_source && !sc->ictl.clock_source)
 		sc->timing = LMC_CTL_CLOCK_SOURCE_INT;
-	} else if (!ctl->clock_source && sc->ictl.clock_source) {
+	else if (!ctl->clock_source && sc->ictl.clock_source)
 		sc->timing = LMC_CTL_CLOCK_SOURCE_EXT;
-		lmc_hssi_set_clock(sc, LMC_CTL_CLOCK_SOURCE_EXT);
-	}
-
-	lmc_set_protocol(sc, ctl);
+	lmc_hssi_set_clock(sc, sc->timing);
 }
 
 /* Return hardware link status. 0 == link is down, 1 == link is up. */
@@ -470,7 +454,6 @@ static void lmc_ds3_set_status(struct card * const sc, struct control *ctl)
 	if (ctl == NULL) {
 		lmc_ds3_set_100ft(sc, sc->ictl.cable_length);
 		lmc_ds3_set_scram(sc, sc->ictl.scrambler_onoff);
-		lmc_set_protocol(sc, NULL);
 		return;
 	}
 
@@ -485,8 +468,6 @@ static void lmc_ds3_set_status(struct card * const sc, struct control *ctl)
 		lmc_ds3_set_scram(sc, LMC_CTL_ON);
 	else if (!ctl->scrambler_onoff && sc->ictl.scrambler_onoff)
 		lmc_ds3_set_scram(sc, LMC_CTL_OFF);
-
-	lmc_set_protocol(sc, ctl);
 }
 
 static void lmc_ds3_init(struct card * const sc)
@@ -732,7 +713,6 @@ static void lmc_t1_set_status(struct card * const sc, struct control *ctl)
 {
 	if (ctl == NULL) {
 		lmc_t1_set_circuit_type(sc, sc->ictl.circuit_type);
-		lmc_set_protocol(sc, NULL);
 		return;
 	}
 	/* check for change in circuit type */
@@ -742,7 +722,6 @@ static void lmc_t1_set_status(struct card * const sc, struct control *ctl)
 	else if (ctl->circuit_type == LMC_CTL_CIRCUIT_TYPE_E1
 		 && sc->ictl.circuit_type == LMC_CTL_CIRCUIT_TYPE_T1)
 		lmc_t1_set_circuit_type(sc, LMC_CTL_CIRCUIT_TYPE_T1);
-	lmc_set_protocol(sc, ctl);
 }
 
 /* Return hardware link status. 0 == link is down, 1 == link is up. */
diff --git a/drivers/net/wan/lmc/var.h b/drivers/net/wan/lmc/var.h
index 971f5d6..93c21fe 100644
--- a/drivers/net/wan/lmc/var.h
+++ b/drivers/net/wan/lmc/var.h
@@ -152,7 +152,7 @@ struct control {
 	u32 cable_length;		/* DS3 */
 	u32 scrambler_onoff;		/* DS3 */
 	u32 cable_type;			/* T1 */
-	u32 keepalive_onoff;		/* protocol */
+	u32 keepalive_onoff;		/* unused */
 	u32 ticks;			/* ticks/sec */
 	union {
 		lmc_av9110_t ssi;
-- 
1.7.1.1


^ permalink raw reply related

* [PATCH 18/29] LMC: strip "lmc_" prefix from field names in struct card.
From: Krzysztof Halasa @ 2010-07-31 15:05 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <m3fwyzzpjf.fsf@intrepid.localdomain>

From: Krzysztof Hałasa <khc@pm.waw.pl>

Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
---
 drivers/net/wan/lmc/main.c  |  629 +++++++++++++++++++++----------------------
 drivers/net/wan/lmc/media.c |  144 +++++-----
 drivers/net/wan/lmc/var.h   |   70 +++---
 3 files changed, 421 insertions(+), 422 deletions(-)

diff --git a/drivers/net/wan/lmc/main.c b/drivers/net/wan/lmc/main.c
index 64bd6d5..6698aa9 100644
--- a/drivers/net/wan/lmc/main.c
+++ b/drivers/net/wan/lmc/main.c
@@ -149,11 +149,11 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 			break;
 		}
 
-		spin_lock_irqsave(&sc->lmc_lock, flags);
-		sc->lmc_media->set_status(sc, &ctl);
+		spin_lock_irqsave(&sc->lock, flags);
+		sc->media->set_status(sc, &ctl);
 
 		if (ctl.crc_length != sc->ictl.crc_length) {
-			sc->lmc_media->set_crc_length(sc, ctl.crc_length);
+			sc->media->set_crc_length(sc, ctl.crc_length);
 			if (sc->ictl.crc_length == LMC_CTL_CRC_LENGTH_16)
 				sc->TxDescriptControlInit |=
 					LMC_TDES_ADD_CRC_DISABLE;
@@ -161,29 +161,29 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 				sc->TxDescriptControlInit &=
 					~LMC_TDES_ADD_CRC_DISABLE;
 		}
-		spin_unlock_irqrestore(&sc->lmc_lock, flags);
+		spin_unlock_irqrestore(&sc->lock, flags);
 		ret = 0;
 		break;
 
 	case LMCIOCGETXINFO:
-		spin_lock_irqsave(&sc->lmc_lock, flags);
-		sc->lmc_xinfo.Magic0 = 0xBEEFCAFE;
-
-		sc->lmc_xinfo.PciCardType = sc->lmc_cardtype;
-		sc->lmc_xinfo.PciSlotNumber = 0;
-		sc->lmc_xinfo.DriverMajorVersion = DRIVER_MAJOR_VERSION;
-		sc->lmc_xinfo.DriverMinorVersion = DRIVER_MINOR_VERSION;
-		sc->lmc_xinfo.DriverSubVersion = DRIVER_SUB_VERSION;
-		sc->lmc_xinfo.XilinxRevisionNumber =
+		spin_lock_irqsave(&sc->lock, flags);
+		sc->xinfo.Magic0 = 0xBEEFCAFE;
+
+		sc->xinfo.PciCardType = sc->cardtype;
+		sc->xinfo.PciSlotNumber = 0;
+		sc->xinfo.DriverMajorVersion = DRIVER_MAJOR_VERSION;
+		sc->xinfo.DriverMinorVersion = DRIVER_MINOR_VERSION;
+		sc->xinfo.DriverSubVersion = DRIVER_SUB_VERSION;
+		sc->xinfo.XilinxRevisionNumber =
 			lmc_mii_readreg(sc, 0, 3) & 0xf;
-		sc->lmc_xinfo.MaxFrameSize = LMC_PKT_BUF_SZ;
-		sc->lmc_xinfo.link_status = sc->lmc_media->get_link_status(sc);
-		sc->lmc_xinfo.mii_reg16 = lmc_mii_readreg(sc, 0, 16);
-		spin_unlock_irqrestore(&sc->lmc_lock, flags);
+		sc->xinfo.MaxFrameSize = LMC_PKT_BUF_SZ;
+		sc->xinfo.link_status = sc->media->get_link_status(sc);
+		sc->xinfo.mii_reg16 = lmc_mii_readreg(sc, 0, 16);
+		spin_unlock_irqrestore(&sc->lock, flags);
 
-		sc->lmc_xinfo.Magic1 = 0xDEADBEEF;
+		sc->xinfo.Magic1 = 0xDEADBEEF;
 
-		if (copy_to_user(ifr->ifr_data, &sc->lmc_xinfo,
+		if (copy_to_user(ifr->ifr_data, &sc->xinfo,
 				 sizeof(struct lmc_xinfo)))
 			ret = -EFAULT;
 		else
@@ -191,8 +191,8 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 		break;
 
 	case LMCIOCGETLMCSTATS:
-		spin_lock_irqsave(&sc->lmc_lock, flags);
-		if (sc->lmc_cardtype == LMC_CARDTYPE_T1) {
+		spin_lock_irqsave(&sc->lock, flags);
+		if (sc->cardtype == LMC_CARDTYPE_T1) {
 			lmc_mii_writereg(sc, 0, 17, T1FRAMER_FERR_LSB);
 			sc->extra_stats.framingBitErrorCount +=
 				lmc_mii_readreg(sc, 0, 18) & 0xff;
@@ -215,10 +215,10 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 			sc->extra_stats.severelyErroredFrameCount +=
 				regVal & T1FRAMER_SEF_MASK;
 		}
-		spin_unlock_irqrestore(&sc->lmc_lock, flags);
-		if (copy_to_user(ifr->ifr_data, &sc->lmc_device->stats,
-				 sizeof(sc->lmc_device->stats)) ||
-		    copy_to_user(ifr->ifr_data + sizeof(sc->lmc_device->stats),
+		spin_unlock_irqrestore(&sc->lock, flags);
+		if (copy_to_user(ifr->ifr_data, &sc->netdev->stats,
+				 sizeof(sc->netdev->stats)) ||
+		    copy_to_user(ifr->ifr_data + sizeof(sc->netdev->stats),
 				 &sc->extra_stats, sizeof(sc->extra_stats)))
 			ret = -EFAULT;
 		else
@@ -231,15 +231,14 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 			break;
 		}
 
-		spin_lock_irqsave(&sc->lmc_lock, flags);
-		memset(&sc->lmc_device->stats, 0,
-		       sizeof(sc->lmc_device->stats));
+		spin_lock_irqsave(&sc->lock, flags);
+		memset(&sc->netdev->stats, 0, sizeof(sc->netdev->stats));
 		memset(&sc->extra_stats, 0, sizeof(sc->extra_stats));
 		sc->extra_stats.check = STATCHECK;
 		sc->extra_stats.version_size = (DRIVER_VERSION << 16) +
-			sizeof(sc->lmc_device->stats) + sizeof(sc->extra_stats);
-		sc->extra_stats.lmc_cardtype = sc->lmc_cardtype;
-		spin_unlock_irqrestore(&sc->lmc_lock, flags);
+			sizeof(sc->netdev->stats) + sizeof(sc->extra_stats);
+		sc->extra_stats.cardtype = sc->cardtype;
+		spin_unlock_irqrestore(&sc->lock, flags);
 		ret = 0;
 		break;
 
@@ -259,11 +258,11 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 			ret = -EFAULT;
 			break;
 		}
-		spin_lock_irqsave(&sc->lmc_lock, flags);
-		if (sc->lmc_media->set_circuit_type)
-			sc->lmc_media->set_circuit_type(sc, ctl.circuit_type);
+		spin_lock_irqsave(&sc->lock, flags);
+		if (sc->media->set_circuit_type)
+			sc->media->set_circuit_type(sc, ctl.circuit_type);
 		sc->ictl.circuit_type = ctl.circuit_type;
-		spin_unlock_irqrestore(&sc->lmc_lock, flags);
+		spin_unlock_irqrestore(&sc->lock, flags);
 		ret = 0;
 		break;
 
@@ -273,7 +272,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 			break;
 		}
 
-		spin_lock_irqsave(&sc->lmc_lock, flags);
+		spin_lock_irqsave(&sc->lock, flags);
 		/* Reset driver and bring back to current state */
 		pr_debug("%s: REG16 before reset +%04x\n", dev->name,
 			 lmc_mii_readreg(sc, 0, 16));
@@ -281,12 +280,12 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 		pr_debug("%s: REG16 after reset +%04x\n", dev->name,
 			 lmc_mii_readreg(sc, 0, 16));
 
-		spin_unlock_irqrestore(&sc->lmc_lock, flags);
+		spin_unlock_irqrestore(&sc->lock, flags);
 		ret = 0;
 		break;
 
 	case LMCIOCT1CONTROL:
-		if (sc->lmc_cardtype != LMC_CARDTYPE_T1) {
+		if (sc->cardtype != LMC_CARDTYPE_T1) {
 			ret = -EOPNOTSUPP;
 			break;
 		}
@@ -312,7 +311,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 		case lmc_xilinx_reset:
 		{
 			u16 mii;
-			spin_lock_irqsave(&sc->lmc_lock, flags);
+			spin_lock_irqsave(&sc->lock, flags);
 			mii = lmc_mii_readreg(sc, 0, 16);
 
 			/* Make all of them 0 and make */
@@ -325,22 +324,22 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 			   the transmitter clock to be internal, but we expect
 			   to reset that later anyway. */
 
-			sc->lmc_gpio &= ~LMC_GEP_RESET;
-			LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+			sc->gpio &= ~LMC_GEP_RESET;
+			LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 
 			/* hold for more than 10 microseconds */
 			udelay(50);
 
-			sc->lmc_gpio |= LMC_GEP_RESET;
-			LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+			sc->gpio |= LMC_GEP_RESET;
+			LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 
 			/* stop driving Xilinx-related signals */
 			lmc_gpio_mkinput(sc, 0xff);
 
 			/* Reset the frammer hardware */
-			if (sc->lmc_media->set_link_status)
-				sc->lmc_media->set_link_status(sc, 1);
-			sc->lmc_media->set_status(sc, NULL);
+			if (sc->media->set_link_status)
+				sc->media->set_link_status(sc, 1);
+			sc->media->set_status(sc, NULL);
 			/* lmc_softreset(sc); */
 
 			{
@@ -360,7 +359,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 					lmc_led_off(sc, LMC_DS3_LED2);
 				}
 			}
-			spin_unlock_irqrestore(&sc->lmc_lock, flags);
+			spin_unlock_irqrestore(&sc->lock, flags);
 			ret = 0x0;
 		}
 		break;
@@ -369,7 +368,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 		{
 			u16 mii;
 			int timeout = 500000;
-			spin_lock_irqsave(&sc->lmc_lock, flags);
+			spin_lock_irqsave(&sc->lock, flags);
 			mii = lmc_mii_readreg(sc, 0, 16);
 
 			/* Make all of them 0 and make input */
@@ -382,14 +381,14 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 			   the transmitter clock to be internal, but we expect
 			   to reset that later anyway. */
 
-			sc->lmc_gpio &= ~(LMC_GEP_RESET | LMC_GEP_DP);
-			LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+			sc->gpio &= ~(LMC_GEP_RESET | LMC_GEP_DP);
+			LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 
 			/* hold for more than 10 microseconds */
 			udelay(50);
 
-			sc->lmc_gpio |= LMC_GEP_DP | LMC_GEP_RESET;
-			LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+			sc->gpio |= LMC_GEP_DP | LMC_GEP_RESET;
+			LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 
 			/* busy wait for the chip to reset */
 			while ((LMC_CSR_READ(sc, csr_gp) & LMC_GEP_INIT) == 0 &&
@@ -398,7 +397,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 
 			/* stop driving Xilinx-related signals */
 			lmc_gpio_mkinput(sc, 0xff);
-			spin_unlock_irqrestore(&sc->lmc_lock, flags);
+			spin_unlock_irqrestore(&sc->lock, flags);
 			ret = 0x0;
 			break;
 		}
@@ -433,7 +432,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 			       "%s: Starting load of data Len: %d at 0x%p == 0x%p\n",
 			       dev->name, xc.len, xc.data, data);
 
-			spin_lock_irqsave(&sc->lmc_lock, flags);
+			spin_lock_irqsave(&sc->lock, flags);
 			lmc_gpio_mkinput(sc, 0xff);
 
 			/* Clear the Xilinx and start programming from
@@ -443,11 +442,11 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 			   Reset: 0 (active)
 			   DP:    0 (active)
 			   Mode:  1 */
-			sc->lmc_gpio = 0x00;
-			sc->lmc_gpio &= ~LMC_GEP_DP;
-			sc->lmc_gpio &= ~LMC_GEP_RESET;
-			sc->lmc_gpio |=  LMC_GEP_MODE;
-			LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+			sc->gpio = 0x00;
+			sc->gpio &= ~LMC_GEP_DP;
+			sc->gpio &= ~LMC_GEP_RESET;
+			sc->gpio |=  LMC_GEP_MODE;
+			LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 
 			lmc_gpio_mkoutput(sc, LMC_GEP_MODE | LMC_GEP_DP |
 					  LMC_GEP_RESET);
@@ -470,11 +469,11 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 			/*
 			 * Set LOAD, DATA, Clock to 1
 			 */
-			sc->lmc_gpio = 0x00;
-			sc->lmc_gpio |= LMC_GEP_MODE;
-			sc->lmc_gpio |= LMC_GEP_DATA;
-			sc->lmc_gpio |= LMC_GEP_CLK;
-			LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+			sc->gpio = 0x00;
+			sc->gpio |= LMC_GEP_MODE;
+			sc->gpio |= LMC_GEP_DATA;
+			sc->gpio |= LMC_GEP_CLK;
+			LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 
 			lmc_gpio_mkoutput(sc, LMC_GEP_DATA | LMC_GEP_CLK |
 					  LMC_GEP_MODE);
@@ -492,29 +491,29 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 				switch (data[pos]) {
 				case 0:
 					/* Data is 0 */
-					sc->lmc_gpio &= ~LMC_GEP_DATA;
+					sc->gpio &= ~LMC_GEP_DATA;
 					break;
 				case 1:
 					/* Data is 1 */
-					sc->lmc_gpio |= LMC_GEP_DATA;
+					sc->gpio |= LMC_GEP_DATA;
 					break;
 				default:
 					printk(KERN_WARNING
 					       "%s Bad data in xilinx programming data at %d, got %d wanted 0 or 1\n",
 					       dev->name, pos, data[pos]);
 					/* Assume it's 1 */
-					sc->lmc_gpio |= LMC_GEP_DATA;
+					sc->gpio |= LMC_GEP_DATA;
 				}
 				/* Clock to zero */
-				sc->lmc_gpio &= ~LMC_GEP_CLK;
-				sc->lmc_gpio |= LMC_GEP_MODE;
-				LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+				sc->gpio &= ~LMC_GEP_CLK;
+				sc->gpio |= LMC_GEP_MODE;
+				LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 				udelay(1);
 
 				/* Put the clack back to one */
-				sc->lmc_gpio |= LMC_GEP_CLK;
-				sc->lmc_gpio |= LMC_GEP_MODE;
-				LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+				sc->gpio |= LMC_GEP_CLK;
+				sc->gpio |= LMC_GEP_MODE;
+				LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 				udelay(1);
 			}
 			if ((LMC_CSR_READ(sc, csr_gp) & LMC_GEP_INIT) == 0) {
@@ -532,12 +531,12 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 
 			lmc_gpio_mkinput(sc, 0xff);
 
-			sc->lmc_miireg16 |= LMC_MII16_FIFO_RESET;
-			lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
+			sc->miireg16 |= LMC_MII16_FIFO_RESET;
+			lmc_mii_writereg(sc, 0, 16, sc->miireg16);
 
-			sc->lmc_miireg16 &= ~LMC_MII16_FIFO_RESET;
-			lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
-			spin_unlock_irqrestore(&sc->lmc_lock, flags);
+			sc->miireg16 &= ~LMC_MII16_FIFO_RESET;
+			lmc_mii_writereg(sc, 0, 16, sc->miireg16);
+			spin_unlock_irqrestore(&sc->lock, flags);
 
 			kfree(data);
 			ret = 0;
@@ -549,12 +548,12 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 		}
 
 		netif_wake_queue(dev);
-		sc->lmc_txfull = 0;
+		sc->txfull = 0;
 	}
 	break;
 	default:
 		/* If we don't know what to do, give the protocol a shot. */
-		ret = hdlc_ioctl(sc->lmc_device, ifr, cmd);
+		ret = hdlc_ioctl(sc->netdev, ifr, cmd);
 		break;
 	}
 
@@ -574,12 +573,12 @@ static void lmc_watchdog(unsigned long data)
 
 	lmc_trace(dev, "lmc_watchdog in");
 
-	spin_lock_irqsave(&sc->lmc_lock, flags);
+	spin_lock_irqsave(&sc->lock, flags);
 
 	if (sc->check != 0xBEAFCAFE) {
 		printk(KERN_ERR
 		       "LMC: Corrupt net_device struct, breaking out\n");
-		spin_unlock_irqrestore(&sc->lmc_lock, flags);
+		spin_unlock_irqrestore(&sc->lock, flags);
 		return;
 	}
 
@@ -589,23 +588,23 @@ static void lmc_watchdog(unsigned long data)
 	 */
 
 	LMC_CSR_WRITE(sc, csr_15, 0x00000011);
-	sc->lmc_cmdmode |= TULIP_CMD_TXRUN | TULIP_CMD_RXRUN;
-	LMC_CSR_WRITE(sc, csr_command, sc->lmc_cmdmode);
+	sc->cmdmode |= TULIP_CMD_TXRUN | TULIP_CMD_RXRUN;
+	LMC_CSR_WRITE(sc, csr_command, sc->cmdmode);
 
-	if (sc->lmc_ok == 0)
+	if (sc->ok == 0)
 		goto kick_timer;
 
 	/* --- begin time out check -----------------------------------
 	 * check for a transmit interrupt timeout
 	 * Has the packet xmt vs xmt serviced threshold been exceeded */
-	if (sc->lmc_taint_tx == sc->lastlmc_taint_tx &&
-	    sc->lmc_device->stats.tx_packets > sc->lasttx_packets &&
+	if (sc->taint_tx == sc->last_taint_tx &&
+	    sc->netdev->stats.tx_packets > sc->lasttx_packets &&
 	    sc->tx_TimeoutInd == 0) {
 
 		/* wait for the watchdog to come around again */
 		sc->tx_TimeoutInd = 1;
-	} else if (sc->lmc_taint_tx == sc->lastlmc_taint_tx &&
-		   sc->lmc_device->stats.tx_packets > sc->lasttx_packets &&
+	} else if (sc->taint_tx == sc->last_taint_tx &&
+		   sc->netdev->stats.tx_packets > sc->lasttx_packets &&
 		   sc->tx_TimeoutInd) {
 
 		sc->tx_TimeoutDisplay = 1;
@@ -621,17 +620,17 @@ static void lmc_watchdog(unsigned long data)
 
 		/* reset the transmit timeout detection flag */
 		sc->tx_TimeoutInd = 0;
-		sc->lastlmc_taint_tx = sc->lmc_taint_tx;
-		sc->lasttx_packets = sc->lmc_device->stats.tx_packets;
+		sc->last_taint_tx = sc->taint_tx;
+		sc->lasttx_packets = sc->netdev->stats.tx_packets;
 	} else {
 		sc->tx_TimeoutInd = 0;
-		sc->lastlmc_taint_tx = sc->lmc_taint_tx;
-		sc->lasttx_packets = sc->lmc_device->stats.tx_packets;
+		sc->last_taint_tx = sc->taint_tx;
+		sc->lasttx_packets = sc->netdev->stats.tx_packets;
 	}
 
 	/* --- end time out check ----------------------------------- */
 
-	link_status = sc->lmc_media->get_link_status(sc);
+	link_status = sc->media->get_link_status(sc);
 
 	/* Hardware level link lost, but the interface is marked as up.
 	   Mark it as down. */
@@ -657,8 +656,8 @@ static void lmc_watchdog(unsigned long data)
 	}
 
 	/* Call media specific watchdog functions */
-	if (sc->lmc_media->watchdog)
-		sc->lmc_media->watchdog(sc);
+	if (sc->media->watchdog)
+		sc->media->watchdog(sc);
 
 	/* Poke the transmitter to make sure it never stops, even if we run
 	   out of mem */
@@ -691,7 +690,7 @@ kick_timer:
 	sc->timer.expires = jiffies + HZ;
 	add_timer(&sc->timer);
 
-	spin_unlock_irqrestore(&sc->lmc_lock, flags);
+	spin_unlock_irqrestore(&sc->lock, flags);
 
 	lmc_trace(dev, "lmc_watchdog out");
 }
@@ -760,7 +759,7 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
 	dev->netdev_ops = &lmc_ops;
 	dev->watchdog_timeo = HZ; /* 1 second */
 	dev->tx_queue_len = 100;
-	sc->lmc_device = dev;
+	sc->netdev = dev;
 	sc->name = dev->name;
 	sc->check = 0xBEAFCAFE;
 	dev->base_addr = pci_resource_start(pdev, 0);
@@ -770,7 +769,7 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
 
 	/* Init the spin lock so can call it latter */
 
-	spin_lock_init(&sc->lmc_lock);
+	spin_lock_init(&sc->lock);
 	pci_set_master(pdev);
 
 	err = register_hdlc_device(dev);
@@ -780,8 +779,8 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
 		goto err_hdlcdev;
 	}
 
-	sc->lmc_cardtype = LMC_CARDTYPE_UNKNOWN;
-	sc->lmc_timing = LMC_CTL_CLOCK_SOURCE_EXT;
+	sc->cardtype = LMC_CARDTYPE_UNKNOWN;
+	sc->timing = LMC_CTL_CLOCK_SOURCE_EXT;
 
 	/*
 	 * Check either the subvendor or the subdevice, some systems reverse
@@ -794,23 +793,23 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
 	switch (subdevice) {
 	case PCI_DEVICE_ID_LMC_HSSI:
 		dev_info(&pdev->dev, "%s = LMC HSSI\n", dev->name);
-		sc->lmc_cardtype = LMC_CARDTYPE_HSSI;
-		sc->lmc_media = &lmc_hssi_media;
+		sc->cardtype = LMC_CARDTYPE_HSSI;
+		sc->media = &lmc_hssi_media;
 		break;
 	case PCI_DEVICE_ID_LMC_DS3:
 		dev_info(&pdev->dev, "%s = LMC DS3\n", dev->name);
-		sc->lmc_cardtype = LMC_CARDTYPE_DS3;
-		sc->lmc_media = &lmc_ds3_media;
+		sc->cardtype = LMC_CARDTYPE_DS3;
+		sc->media = &lmc_ds3_media;
 		break;
 	case PCI_DEVICE_ID_LMC_SSI:
 		dev_info(&pdev->dev, "%s = LMC SSI\n", dev->name);
-		sc->lmc_cardtype = LMC_CARDTYPE_SSI;
-		sc->lmc_media = &lmc_ssi_media;
+		sc->cardtype = LMC_CARDTYPE_SSI;
+		sc->media = &lmc_ssi_media;
 		break;
 	case PCI_DEVICE_ID_LMC_T1:
 		dev_info(&pdev->dev, "%s = LMC T1\n", dev->name);
-		sc->lmc_cardtype = LMC_CARDTYPE_T1;
-		sc->lmc_media = &lmc_t1_media;
+		sc->cardtype = LMC_CARDTYPE_T1;
+		sc->media = &lmc_t1_media;
 		break;
 	default:
 		dev_warn(&pdev->dev, "%s = LMC UNKNOWN CARD!\n", dev->name);
@@ -820,12 +819,12 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
 	lmc_initcsrs(sc, dev->base_addr, 8);
 
 	lmc_gpio_mkinput(sc, 0xff);
-	sc->lmc_gpio = 0;		/* drive no signals yet */
+	sc->gpio = 0;		/* drive no signals yet */
 
-	sc->lmc_media->defaults(sc);
+	sc->media->defaults(sc);
 
-	if (sc->lmc_media->set_link_status)
-		sc->lmc_media->set_link_status(sc, LMC_LINK_UP);
+	if (sc->media->set_link_status)
+		sc->media->set_link_status(sc, LMC_LINK_UP);
 
 	/* verify that the PCI Sub System ID matches the Adapter Model number
 	   from the MII register */
@@ -849,10 +848,10 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
 	sc->board_idx = cards_found++;
 	sc->extra_stats.check = STATCHECK;
 	sc->extra_stats.version_size = (DRIVER_VERSION << 16) +
-		sizeof(sc->lmc_device->stats) + sizeof(sc->extra_stats);
-	sc->extra_stats.lmc_cardtype = sc->lmc_cardtype;
+		sizeof(sc->netdev->stats) + sizeof(sc->extra_stats);
+	sc->extra_stats.cardtype = sc->cardtype;
 
-	sc->lmc_ok = 0;
+	sc->ok = 0;
 	sc->last_link_status = 0;
 
 	lmc_trace(dev, "lmc_init_one out");
@@ -897,7 +896,7 @@ static int lmc_open(struct net_device *dev)
 	lmc_dec_reset(sc);
 	lmc_reset(sc);
 
-	if (sc->lmc_ok) {
+	if (sc->ok) {
 		lmc_trace(dev, "lmc_open lmc_ok out");
 		return 0;
 	}
@@ -915,14 +914,14 @@ static int lmc_open(struct net_device *dev)
 	sc->got_irq = 1;
 
 	/* Assert Terminal Active */
-	sc->lmc_miireg16 |= LMC_MII16_LED_ALL;
-	if (sc->lmc_media->set_link_status)
-		sc->lmc_media->set_link_status(sc, LMC_LINK_UP);
+	sc->miireg16 |= LMC_MII16_LED_ALL;
+	if (sc->media->set_link_status)
+		sc->media->set_link_status(sc, LMC_LINK_UP);
 
 	/*
 	 * reset to last state.
 	 */
-	sc->lmc_media->set_status(sc, NULL);
+	sc->media->set_status(sc, NULL);
 
 	/* setup default bits to be used in tulip_desc_t transmit descriptor */
 	sc->TxDescriptControlInit = (LMC_TDES_INTERRUPT_ON_COMPLETION |
@@ -935,30 +934,30 @@ static int lmc_open(struct net_device *dev)
 		/* disable 32 bit CRC generated by ASIC */
 		sc->TxDescriptControlInit |= LMC_TDES_ADD_CRC_DISABLE;
 
-	sc->lmc_media->set_crc_length(sc, sc->ictl.crc_length);
+	sc->media->set_crc_length(sc, sc->ictl.crc_length);
 	/* Acknowledge the Terminal Active and light LEDs */
 
-	if ((err = hdlc_open(sc->lmc_device)) != 0)
+	if ((err = hdlc_open(sc->netdev)) != 0)
 		return err;
 
 	netif_start_queue(dev);
 	sc->extra_stats.tx_tbusy0++;
 
 	/* select what interrupts we want to get */
-	sc->lmc_intrmask = 0;
+	sc->intrmask = 0;
 	/* Should be using the default interrupt mask defined in the .h file. */
-	sc->lmc_intrmask |= (TULIP_STS_NORMALINTR | TULIP_STS_RXINTR |
+	sc->intrmask |= (TULIP_STS_NORMALINTR | TULIP_STS_RXINTR |
 			     TULIP_STS_TXINTR | TULIP_STS_ABNRMLINTR |
 			     TULIP_STS_SYSERROR | TULIP_STS_TXSTOPPED |
 			     TULIP_STS_TXUNDERFLOW | TULIP_STS_RXSTOPPED |
 			     TULIP_STS_RXNOBUF);
-	LMC_CSR_WRITE(sc, csr_intr, sc->lmc_intrmask);
+	LMC_CSR_WRITE(sc, csr_intr, sc->intrmask);
 
-	sc->lmc_cmdmode |= TULIP_CMD_TXRUN;
-	sc->lmc_cmdmode |= TULIP_CMD_RXRUN;
-	LMC_CSR_WRITE(sc, csr_command, sc->lmc_cmdmode);
+	sc->cmdmode |= TULIP_CMD_TXRUN;
+	sc->cmdmode |= TULIP_CMD_RXRUN;
+	LMC_CSR_WRITE(sc, csr_command, sc->cmdmode);
 
-	sc->lmc_ok = 1; /* Run watchdog */
+	sc->ok = 1; /* Run watchdog */
 
 	/* Set the if up now */
 	sc->last_link_status = 1;
@@ -991,21 +990,21 @@ static void lmc_running_reset(struct net_device *dev)
 	lmc_dec_reset(sc);
 	lmc_reset(sc);
 	lmc_softreset(sc);
-	/* sc->lmc_miireg16 |= LMC_MII16_LED_ALL; */
-	if (sc->lmc_media->set_link_status)
-		sc->lmc_media->set_link_status(sc, 1);
-	sc->lmc_media->set_status(sc, NULL);
+	/* sc->miireg16 |= LMC_MII16_LED_ALL; */
+	if (sc->media->set_link_status)
+		sc->media->set_link_status(sc, 1);
+	sc->media->set_status(sc, NULL);
 
 	netif_wake_queue(dev);
 
-	sc->lmc_txfull = 0;
+	sc->txfull = 0;
 	sc->extra_stats.tx_tbusy0++;
 
-	sc->lmc_intrmask = TULIP_DEFAULT_INTR_MASK;
-	LMC_CSR_WRITE(sc, csr_intr, sc->lmc_intrmask);
+	sc->intrmask = TULIP_DEFAULT_INTR_MASK;
+	LMC_CSR_WRITE(sc, csr_intr, sc->intrmask);
 
-	sc->lmc_cmdmode |= (TULIP_CMD_TXRUN | TULIP_CMD_RXRUN);
-	LMC_CSR_WRITE(sc, csr_command, sc->lmc_cmdmode);
+	sc->cmdmode |= (TULIP_CMD_TXRUN | TULIP_CMD_RXRUN);
+	LMC_CSR_WRITE(sc, csr_command, sc->cmdmode);
 
 	lmc_trace(dev, "lmc_runnin_reset_out");
 }
@@ -1020,11 +1019,11 @@ static int lmc_close(struct net_device *dev)
 
 	lmc_trace(dev, "lmc_close in");
 
-	sc->lmc_ok = 0;
-	if (sc->lmc_media->set_link_status)
-		sc->lmc_media->set_link_status(sc, 0);
+	sc->ok = 0;
+	if (sc->media->set_link_status)
+		sc->media->set_link_status(sc, 0);
 	del_timer(&sc->timer);
-	hdlc_close(sc->lmc_device);
+	hdlc_close(sc->netdev);
 	lmc_ifdown(dev);
 
 	lmc_trace(dev, "lmc_close out");
@@ -1057,7 +1056,7 @@ static int lmc_ifdown(struct net_device *dev)
 	csr6 &= ~LMC_DEC_SR;		/* Turn off the Receive bit */
 	LMC_CSR_WRITE(sc, csr_command, csr6);
 
-	sc->lmc_device->stats.rx_missed_errors +=
+	sc->netdev->stats.rx_missed_errors +=
 		LMC_CSR_READ(sc, csr_missed_frames) & 0xffff;
 
 	/* release the interrupt */
@@ -1068,20 +1067,20 @@ static int lmc_ifdown(struct net_device *dev)
 
 	/* free skbuffs in the Rx queue */
 	for (i = 0; i < LMC_RXDESCS; i++) {
-		struct sk_buff *skb = sc->lmc_rxq[i];
-		sc->lmc_rxq[i] = NULL;
-		sc->lmc_rxring[i].status = 0;
-		sc->lmc_rxring[i].length = 0;
-		sc->lmc_rxring[i].buffer1 = 0xDEADBEEF;
+		struct sk_buff *skb = sc->rxq[i];
+		sc->rxq[i] = NULL;
+		sc->rxring[i].status = 0;
+		sc->rxring[i].length = 0;
+		sc->rxring[i].buffer1 = 0xDEADBEEF;
 		if (skb != NULL)
 			dev_kfree_skb(skb);
-		sc->lmc_rxq[i] = NULL;
+		sc->rxq[i] = NULL;
 	}
 
 	for (i = 0; i < LMC_TXDESCS; i++) {
-		if (sc->lmc_txq[i] != NULL)
-			dev_kfree_skb(sc->lmc_txq[i]);
-		sc->lmc_txq[i] = NULL;
+		if (sc->txq[i] != NULL)
+			dev_kfree_skb(sc->txq[i]);
+		sc->txq[i] = NULL;
 	}
 
 	lmc_led_off(sc, LMC_MII16_LED_ALL);
@@ -1110,19 +1109,19 @@ static irqreturn_t lmc_interrupt(int irq, void *dev_instance)
 
 	lmc_trace(dev, "lmc_interrupt in");
 
-	spin_lock(&sc->lmc_lock);
+	spin_lock(&sc->lock);
 
 	/* Read the csr to find what interrupts we have (if any) */
 	csr = LMC_CSR_READ(sc, csr_status);
 
 	/* Make sure this is our interrupt */
-	if (!(csr & sc->lmc_intrmask))
+	if (!(csr & sc->intrmask))
 		goto lmc_int_fail_out;
 
 	firstcsr = csr;
 
 	/* always go through this loop at least once */
-	while (csr & sc->lmc_intrmask) {
+	while (csr & sc->intrmask) {
 		handled = 1;
 
 		/* Clear interrupt bits, we handle all case below */
@@ -1157,11 +1156,11 @@ static irqreturn_t lmc_interrupt(int irq, void *dev_instance)
 			/* reset the transmit timeout detection flag */
 			sc->extra_stats.tx_NoCompleteCnt = 0;
 
-			badtx = sc->lmc_taint_tx;
+			badtx = sc->taint_tx;
 			i = badtx % LMC_TXDESCS;
 
-			while ((badtx < sc->lmc_next_tx)) {
-				stat = sc->lmc_txring[i].status;
+			while ((badtx < sc->next_tx)) {
+				stat = sc->txring[i].status;
 
 				/* If bit 31 is 1 the tulip owns it break out
 				   of the loop */
@@ -1172,49 +1171,49 @@ static irqreturn_t lmc_interrupt(int irq, void *dev_instance)
 				n_compl++;
 				/* If we have no skbuff or have cleared it
 				   already. Continue to the next buffer */
-				if (sc->lmc_txq[i] == NULL)
+				if (sc->txq[i] == NULL)
 					continue;
 
 				/* Check the total error summary to look for
 				   any errors */
 				if (stat & 0x8000) {
-					sc->lmc_device->stats.tx_errors++;
+					sc->netdev->stats.tx_errors++;
 					if (stat & 0x4104)
-						sc->lmc_device->stats.tx_aborted_errors++;
+						sc->netdev->stats.tx_aborted_errors++;
 					if (stat & 0x0C00)
-						sc->lmc_device->stats.tx_carrier_errors++;
+						sc->netdev->stats.tx_carrier_errors++;
 					if (stat & 0x0200)
-						sc->lmc_device->stats.tx_window_errors++;
+						sc->netdev->stats.tx_window_errors++;
 					if (stat & 0x0002)
-						sc->lmc_device->stats.tx_fifo_errors++;
+						sc->netdev->stats.tx_fifo_errors++;
 				} else {
-					sc->lmc_device->stats.tx_bytes +=
-						sc->lmc_txring[i].length & 0x7ff;
+					sc->netdev->stats.tx_bytes +=
+						sc->txring[i].length & 0x7ff;
 
-					sc->lmc_device->stats.tx_packets++;
+					sc->netdev->stats.tx_packets++;
 				}
 
-				dev_kfree_skb_irq(sc->lmc_txq[i]);
-				sc->lmc_txq[i] = NULL;
+				dev_kfree_skb_irq(sc->txq[i]);
+				sc->txq[i] = NULL;
 
 				badtx++;
 				i = badtx % LMC_TXDESCS;
 			}
 
-			if (sc->lmc_next_tx - badtx > LMC_TXDESCS) {
+			if (sc->next_tx - badtx > LMC_TXDESCS) {
 				printk(KERN_WARNING "%s: out of sync pointer\n",
 				       dev->name);
 				badtx += LMC_TXDESCS;
 			}
-			sc->lmc_txfull = 0;
+			sc->txfull = 0;
 			netif_wake_queue(dev);
 			sc->extra_stats.tx_tbusy0++;
 #ifdef DEBUG
 			sc->extra_stats.dirtyTx = badtx;
-			sc->extra_stats.lmc_next_tx = sc->lmc_next_tx;
-			sc->extra_stats.lmc_txfull = sc->lmc_txfull;
+			sc->extra_stats.lmc_next_tx = sc->next_tx;
+			sc->extra_stats.lmc_txfull = sc->txfull;
 #endif
-			sc->lmc_taint_tx = badtx;
+			sc->taint_tx = badtx;
 		} /* end handle transmit interrupt */
 
 		if (csr & TULIP_STS_SYSERROR) {
@@ -1256,7 +1255,7 @@ static irqreturn_t lmc_interrupt(int irq, void *dev_instance)
 	} /* end interrupt loop */
 
 lmc_int_fail_out:
-	spin_unlock(&sc->lmc_lock);
+	spin_unlock(&sc->lock);
 	lmc_trace(dev, "lmc_interrupt out");
 	return IRQ_RETVAL(handled);
 }
@@ -1271,14 +1270,14 @@ static netdev_tx_t lmc_start_xmit(struct sk_buff *skb,
 
 	lmc_trace(dev, "lmc_start_xmit in");
 
-	spin_lock_irqsave(&sc->lmc_lock, flags);
+	spin_lock_irqsave(&sc->lock, flags);
 
 	/* normal path, tbusy known to be zero */
 
-	entry = sc->lmc_next_tx % LMC_TXDESCS;
+	entry = sc->next_tx % LMC_TXDESCS;
 
-	sc->lmc_txq[entry] = skb;
-	sc->lmc_txring[entry].buffer1 = virt_to_bus(skb->data);
+	sc->txq[entry] = skb;
+	sc->txring[entry].buffer1 = virt_to_bus(skb->data);
 
 #ifdef DEBUG_PKT
 	printk(KERN_DEBUG "%s TX(%i):", dev->name, skb->len);
@@ -1287,30 +1286,30 @@ static netdev_tx_t lmc_start_xmit(struct sk_buff *skb,
 
 #ifndef GCOM
 	/* If the queue is less than half full, don't interrupt */
-	if (sc->lmc_next_tx - sc->lmc_taint_tx < LMC_TXDESCS / 2) {
+	if (sc->next_tx - sc->taint_tx < LMC_TXDESCS / 2) {
 		/* Do not interrupt on completion of this packet */
 		flag = 0x60000000;
 		netif_wake_queue(dev);
-	} else if (sc->lmc_next_tx - sc->lmc_taint_tx == LMC_TXDESCS / 2) {
+	} else if (sc->next_tx - sc->taint_tx == LMC_TXDESCS / 2) {
 		/* This generates an interrupt on completion of this packet */
 		flag = 0xe0000000;
 		netif_wake_queue(dev);
-	} else if (sc->lmc_next_tx - sc->lmc_taint_tx < LMC_TXDESCS - 1) {
+	} else if (sc->next_tx - sc->taint_tx < LMC_TXDESCS - 1) {
 		/* Do not interrupt on completion of this packet */
 		flag = 0x60000000;
 		netif_wake_queue(dev);
 	} else {
 		/* This generates an interrupt on completion of this packet */
 		flag = 0xe0000000;
-		sc->lmc_txfull = 1;
+		sc->txfull = 1;
 		netif_stop_queue(dev);
 	}
 #else
 	flag = LMC_TDES_INTERRUPT_ON_COMPLETION;
 
-	if (sc->lmc_next_tx - sc->lmc_taint_tx >= LMC_TXDESCS - 1) {
+	if (sc->next_tx - sc->taint_tx >= LMC_TXDESCS - 1) {
 		/* ring full, go busy */
-		sc->lmc_txfull = 1;
+		sc->txfull = 1;
 		netif_stop_queue(dev);
 		sc->extra_stats.tx_tbusy1++;
 	}
@@ -1320,22 +1319,22 @@ static netdev_tx_t lmc_start_xmit(struct sk_buff *skb,
 		flag |= LMC_TDES_END_OF_RING;	/* flag as such for Tulip */
 
 	/* don't pad small packets either */
-	flag = sc->lmc_txring[entry].length = (skb->len) | flag |
+	flag = sc->txring[entry].length = (skb->len) | flag |
 		sc->TxDescriptControlInit;
 
 	/* set the transmit timeout flag to be checked in the watchdog timer
 	   handler. */
 
 	sc->extra_stats.tx_NoCompleteCnt++;
-	sc->lmc_next_tx++;
+	sc->next_tx++;
 
 	/* give ownership to the chip */
-	sc->lmc_txring[entry].status = 0x80000000;
+	sc->txring[entry].status = 0x80000000;
 
 	/* send now! */
 	LMC_CSR_WRITE(sc, csr_txpoll, 0);
 
-	spin_unlock_irqrestore(&sc->lmc_lock, flags);
+	spin_unlock_irqrestore(&sc->lock, flags);
 
 	lmc_trace(dev, "lmc_start_xmit_out");
 	return NETDEV_TX_OK;
@@ -1360,10 +1359,10 @@ static int lmc_rx(struct net_device *dev)
 
 	rxIntLoopCnt = 0;		/* debug */
 
-	i = sc->lmc_next_rx % LMC_RXDESCS;
-	next_rx = sc->lmc_next_rx;
+	i = sc->next_rx % LMC_RXDESCS;
+	next_rx = sc->next_rx;
 
-	while (((stat = sc->lmc_rxring[i].status) & LMC_RDES_OWN_BIT) !=
+	while (((stat = sc->rxring[i].status) & LMC_RDES_OWN_BIT) !=
 	       DESC_OWNED_BY_DC21X4) {
 		rxIntLoopCnt++;		/* debug */
 		len = ((stat & LMC_RDES_FRAME_LENGTH) >>
@@ -1372,32 +1371,32 @@ static int lmc_rx(struct net_device *dev)
 			/* Check first segment and last segment */
 			if ((stat & 0x0000ffff) != 0x7fff) {
 				/* Oversized frame */
-				sc->lmc_device->stats.rx_length_errors++;
+				sc->netdev->stats.rx_length_errors++;
 				goto skip_packet;
 			}
 		}
 
 		if (stat & 0x00000008) { /* Catch a dribbling bit error */
-			sc->lmc_device->stats.rx_errors++;
-			sc->lmc_device->stats.rx_frame_errors++;
+			sc->netdev->stats.rx_errors++;
+			sc->netdev->stats.rx_frame_errors++;
 			goto skip_packet;
 		}
 
 
 		if (stat & 0x00000004) { /* Catch a CRC error by the Xilinx */
-			sc->lmc_device->stats.rx_errors++;
-			sc->lmc_device->stats.rx_crc_errors++;
+			sc->netdev->stats.rx_errors++;
+			sc->netdev->stats.rx_crc_errors++;
 			goto skip_packet;
 		}
 
 		if (len > LMC_PKT_BUF_SZ) {
-			sc->lmc_device->stats.rx_length_errors++;
+			sc->netdev->stats.rx_length_errors++;
 			localLengthErrCnt++;
 			goto skip_packet;
 		}
 
-		if (len < sc->lmc_crcSize + 2) {
-			sc->lmc_device->stats.rx_length_errors++;
+		if (len < sc->crcSize + 2) {
+			sc->netdev->stats.rx_length_errors++;
 			sc->extra_stats.rx_SmallPktCnt++;
 			localLengthErrCnt++;
 			goto skip_packet;
@@ -1409,9 +1408,9 @@ static int lmc_rx(struct net_device *dev)
 			       dev->name);
 		}
 
-		len -= sc->lmc_crcSize;
+		len -= sc->crcSize;
 
-		skb = sc->lmc_rxq[i];
+		skb = sc->rxq[i];
 
 		/* We ran out of memory at some point just allocate an skb buff
 		   and continue. */
@@ -1419,17 +1418,17 @@ static int lmc_rx(struct net_device *dev)
 		if (!skb) {
 			nsb = dev_alloc_skb(LMC_PKT_BUF_SZ + 2);
 			if (nsb) {
-				sc->lmc_rxq[i] = nsb;
+				sc->rxq[i] = nsb;
 				nsb->dev = dev;
-				sc->lmc_rxring[i].buffer1 =
+				sc->rxring[i].buffer1 =
 					virt_to_bus(skb_tail_pointer(nsb));
 			}
 			sc->failed_recv_alloc = 1;
 			goto skip_packet;
 		}
 
-		sc->lmc_device->stats.rx_packets++;
-		sc->lmc_device->stats.rx_bytes += len;
+		sc->netdev->stats.rx_packets++;
+		sc->netdev->stats.rx_bytes += len;
 
 		/* I'm not sure of the sanity of this. Packets could be arriving
 		   at a constant 44.210mbits/sec and we're going to copy them
@@ -1439,15 +1438,15 @@ static int lmc_rx(struct net_device *dev)
 			/* If it's a large packet don't copy it just hand it
 			   up */
 give_it_anyways:
-			sc->lmc_rxq[i] = NULL;
-			sc->lmc_rxring[i].buffer1 = 0x0;
+			sc->rxq[i] = NULL;
+			sc->rxring[i].buffer1 = 0x0;
 
 			skb_put(skb, len);
 #ifdef DEBUG_PKT
 			printk(KERN_DEBUG "%s RX(%i):", dev->name, len);
 			debug_frame(skb);
 #endif
-			skb->protocol = hdlc_type_trans(skb, sc->lmc_device);
+			skb->protocol = hdlc_type_trans(skb, sc->netdev);
 			skb_reset_mac_header(skb);
 			/* skb_reset_network_header(skb); */
 			skb->dev = dev;
@@ -1457,9 +1456,9 @@ give_it_anyways:
 			   make a new one */
 			nsb = dev_alloc_skb(LMC_PKT_BUF_SZ + 2);
 			if (nsb) {
-				sc->lmc_rxq[i] = nsb;
+				sc->rxq[i] = nsb;
 				nsb->dev = dev;
-				sc->lmc_rxring[i].buffer1 =
+				sc->rxring[i].buffer1 =
 					virt_to_bus(skb_tail_pointer(nsb));
 				/* Transferred to 21140 below */
 			} else {
@@ -1481,7 +1480,7 @@ give_it_anyways:
 			printk(KERN_DEBUG "%s RX(%i):", dev->name, len);
 			debug_frame(nsb);
 #endif
-			nsb->protocol = hdlc_type_trans(nsb, sc->lmc_device);
+			nsb->protocol = hdlc_type_trans(nsb, sc->netdev);
 			skb_reset_mac_header(nsb);
 			/* skb_reset_network_header(nsb); */
 			nsb->dev = dev;
@@ -1489,10 +1488,10 @@ give_it_anyways:
 		}
 
 skip_packet:
-		sc->lmc_rxring[i].status = DESC_OWNED_BY_DC21X4;
+		sc->rxring[i].status = DESC_OWNED_BY_DC21X4;
 
-		sc->lmc_next_rx++;
-		i = sc->lmc_next_rx % LMC_RXDESCS;
+		sc->next_rx++;
+		i = sc->next_rx % LMC_RXDESCS;
 		rx_work_limit--;
 		if (rx_work_limit < 0)
 			break;
@@ -1513,7 +1512,7 @@ skip_packet:
 #ifdef DEBUG
 	if (rxIntLoopCnt == 0) {
 		for (i = 0; i < LMC_RXDESCS; i++) {
-			if ((sc->lmc_rxring[i].status & LMC_RDES_OWN_BIT)
+			if ((sc->rxring[i].status & LMC_RDES_OWN_BIT)
 			    != DESC_OWNED_BY_DC21X4)
 				rxIntLoopCnt++;
 		}
@@ -1534,15 +1533,15 @@ static struct net_device_stats *lmc_get_stats(struct net_device *dev)
 
 	lmc_trace(dev, "lmc_get_stats in");
 
-	spin_lock_irqsave(&sc->lmc_lock, flags);
+	spin_lock_irqsave(&sc->lock, flags);
 
-	sc->lmc_device->stats.rx_missed_errors +=
+	sc->netdev->stats.rx_missed_errors +=
 		LMC_CSR_READ(sc, csr_missed_frames) & 0xffff;
 
-	spin_unlock_irqrestore(&sc->lmc_lock, flags);
+	spin_unlock_irqrestore(&sc->lock, flags);
 
 	lmc_trace(dev, "lmc_get_stats out");
-	return &sc->lmc_device->stats;
+	return &sc->netdev->stats;
 }
 
 static struct pci_driver lmc_driver = {
@@ -1572,11 +1571,11 @@ unsigned lmc_mii_readreg(struct card * const sc, unsigned devaddr,
 	int command = (0xf6 << 10) | (devaddr << 5) | regno;
 	int retval = 0;
 
-	lmc_trace(sc->lmc_device, "lmc_mii_readreg in");
+	lmc_trace(sc->netdev, "lmc_mii_readreg in");
 
 	LMC_MII_SYNC(sc);
 
-	lmc_trace(sc->lmc_device, "lmc_mii_readreg: done sync");
+	lmc_trace(sc->netdev, "lmc_mii_readreg: done sync");
 
 	for (i = 15; i >= 0; i--) {
 		int dataval = (command & (1 << i)) ? 0x20000 : 0;
@@ -1589,7 +1588,7 @@ unsigned lmc_mii_readreg(struct card * const sc, unsigned devaddr,
 		/* __SLOW_DOWN_IO; */
 	}
 
-	lmc_trace(sc->lmc_device, "lmc_mii_readreg: done1");
+	lmc_trace(sc->netdev, "lmc_mii_readreg: done1");
 
 	for (i = 19; i > 0; i--) {
 		LMC_CSR_WRITE(sc, csr_9, 0x40000);
@@ -1602,7 +1601,7 @@ unsigned lmc_mii_readreg(struct card * const sc, unsigned devaddr,
 		/* __SLOW_DOWN_IO; */
 	}
 
-	lmc_trace(sc->lmc_device, "lmc_mii_readreg out");
+	lmc_trace(sc->netdev, "lmc_mii_readreg out");
 
 	return (retval >> 1) & 0xffff;
 }
@@ -1613,7 +1612,7 @@ void lmc_mii_writereg(struct card * const sc, unsigned devaddr, unsigned regno,
 	int i = 32;
 	int command = (0x5002 << 16) | (devaddr << 23) | (regno << 18) | data;
 
-	lmc_trace(sc->lmc_device, "lmc_mii_writereg in");
+	lmc_trace(sc->netdev, "lmc_mii_writereg in");
 
 	LMC_MII_SYNC(sc);
 
@@ -1646,21 +1645,21 @@ void lmc_mii_writereg(struct card * const sc, unsigned devaddr, unsigned regno,
 		i--;
 	}
 
-	lmc_trace(sc->lmc_device, "lmc_mii_writereg out");
+	lmc_trace(sc->netdev, "lmc_mii_writereg out");
 }
 
 static void lmc_softreset(struct card * const sc)
 {
 	int i;
 
-	lmc_trace(sc->lmc_device, "lmc_softreset in");
+	lmc_trace(sc->netdev, "lmc_softreset in");
 
 	/* Initialize the receive rings and buffers. */
-	sc->lmc_txfull = 0;
-	sc->lmc_next_rx = 0;
-	sc->lmc_next_tx = 0;
-	sc->lmc_taint_rx = 0;
-	sc->lmc_taint_tx = 0;
+	sc->txfull = 0;
+	sc->next_rx = 0;
+	sc->next_tx = 0;
+	sc->taint_rx = 0;
+	sc->taint_tx = 0;
 
 	/* Setup each one of the receiver buffers allocate an skbuff for
 	   each one, setup the descriptor table and point each buffer at
@@ -1669,7 +1668,7 @@ static void lmc_softreset(struct card * const sc)
 	for (i = 0; i < LMC_RXDESCS; i++) {
 		struct sk_buff *skb;
 
-		if (sc->lmc_rxq[i] == NULL) {
+		if (sc->rxq[i] == NULL) {
 			skb = dev_alloc_skb(LMC_PKT_BUF_SZ + 2);
 			if (skb == NULL) {
 				printk(KERN_WARNING
@@ -1678,114 +1677,114 @@ static void lmc_softreset(struct card * const sc)
 				sc->failed_ring = 1;
 				break;
 			} else
-				sc->lmc_rxq[i] = skb;
+				sc->rxq[i] = skb;
 		} else
-			skb = sc->lmc_rxq[i];
+			skb = sc->rxq[i];
 
-		skb->dev = sc->lmc_device;
+		skb->dev = sc->netdev;
 
 		/* owned by 21140 */
-		sc->lmc_rxring[i].status = 0x80000000;
+		sc->rxring[i].status = 0x80000000;
 
 		/* used to be PKT_BUF_SZ now uses skb since we lose some
 		   to head room */
-		sc->lmc_rxring[i].length = skb_tailroom(skb);
+		sc->rxring[i].length = skb_tailroom(skb);
 
 		/* use to be tail which is dumb since you're thinking why write
 		   to the end of the packet but since there's nothing there
 		   tail == data */
-		sc->lmc_rxring[i].buffer1 = virt_to_bus(skb->data);
+		sc->rxring[i].buffer1 = virt_to_bus(skb->data);
 
 		/* This is fair since the structure is static and we have
 		   the next address */
-		sc->lmc_rxring[i].buffer2 = virt_to_bus(&sc->lmc_rxring[i + 1]);
+		sc->rxring[i].buffer2 = virt_to_bus(&sc->rxring[i + 1]);
 	}
 
 	/* Sets end of ring */
 	if (i != 0) {
 		/* Set end of buffers flag */
-		sc->lmc_rxring[i - 1].length |= 0x02000000;
+		sc->rxring[i - 1].length |= 0x02000000;
 		/* Point back to the start */
-		sc->lmc_rxring[i - 1].buffer2 = virt_to_bus(&sc->lmc_rxring[0]);
+		sc->rxring[i - 1].buffer2 = virt_to_bus(&sc->rxring[0]);
 	}
 	/* write base address */
-	LMC_CSR_WRITE(sc, csr_rxlist, virt_to_bus(sc->lmc_rxring));
+	LMC_CSR_WRITE(sc, csr_rxlist, virt_to_bus(sc->rxring));
 
 	/* Initialize the transmit rings and buffers */
 	for (i = 0; i < LMC_TXDESCS; i++) {
-		if (sc->lmc_txq[i] != NULL) {		/* have buffer */
-			dev_kfree_skb(sc->lmc_txq[i]);	/* free it */
+		if (sc->txq[i] != NULL) {		/* have buffer */
+			dev_kfree_skb(sc->txq[i]);	/* free it */
 			/* We just dropped a packet */
-			sc->lmc_device->stats.tx_dropped++;
+			sc->netdev->stats.tx_dropped++;
 		}
-		sc->lmc_txq[i] = NULL;
-		sc->lmc_txring[i].status = 0x00000000;
-		sc->lmc_txring[i].buffer2 = virt_to_bus(&sc->lmc_txring[i + 1]);
+		sc->txq[i] = NULL;
+		sc->txring[i].status = 0x00000000;
+		sc->txring[i].buffer2 = virt_to_bus(&sc->txring[i + 1]);
 	}
-	sc->lmc_txring[i - 1].buffer2 = virt_to_bus(&sc->lmc_txring[0]);
-	LMC_CSR_WRITE(sc, csr_txlist, virt_to_bus(sc->lmc_txring));
+	sc->txring[i - 1].buffer2 = virt_to_bus(&sc->txring[0]);
+	LMC_CSR_WRITE(sc, csr_txlist, virt_to_bus(sc->txring));
 
-	lmc_trace(sc->lmc_device, "lmc_softreset out");
+	lmc_trace(sc->netdev, "lmc_softreset out");
 }
 
 void lmc_gpio_mkinput(struct card * const sc, u32 bits)
 {
-	lmc_trace(sc->lmc_device, "lmc_gpio_mkinput in");
-	sc->lmc_gpio_io &= ~bits;
-	LMC_CSR_WRITE(sc, csr_gp, TULIP_GP_PINSET | (sc->lmc_gpio_io));
-	lmc_trace(sc->lmc_device, "lmc_gpio_mkinput out");
+	lmc_trace(sc->netdev, "lmc_gpio_mkinput in");
+	sc->gpio_io &= ~bits;
+	LMC_CSR_WRITE(sc, csr_gp, TULIP_GP_PINSET | (sc->gpio_io));
+	lmc_trace(sc->netdev, "lmc_gpio_mkinput out");
 }
 
 void lmc_gpio_mkoutput(struct card * const sc, u32 bits)
 {
-	lmc_trace(sc->lmc_device, "lmc_gpio_mkoutput in");
-	sc->lmc_gpio_io |= bits;
-	LMC_CSR_WRITE(sc, csr_gp, TULIP_GP_PINSET | (sc->lmc_gpio_io));
-	lmc_trace(sc->lmc_device, "lmc_gpio_mkoutput out");
+	lmc_trace(sc->netdev, "lmc_gpio_mkoutput in");
+	sc->gpio_io |= bits;
+	LMC_CSR_WRITE(sc, csr_gp, TULIP_GP_PINSET | (sc->gpio_io));
+	lmc_trace(sc->netdev, "lmc_gpio_mkoutput out");
 }
 
 void lmc_led_on(struct card * const sc, u32 led)
 {
-	lmc_trace(sc->lmc_device, "lmc_led_on in");
-	if ((~sc->lmc_miireg16) & led) { /* Already on! */
-		lmc_trace(sc->lmc_device, "lmc_led_on aon out");
+	lmc_trace(sc->netdev, "lmc_led_on in");
+	if ((~sc->miireg16) & led) { /* Already on! */
+		lmc_trace(sc->netdev, "lmc_led_on aon out");
 		return;
 	}
 
-	sc->lmc_miireg16 &= ~led;
-	lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
-	lmc_trace(sc->lmc_device, "lmc_led_on out");
+	sc->miireg16 &= ~led;
+	lmc_mii_writereg(sc, 0, 16, sc->miireg16);
+	lmc_trace(sc->netdev, "lmc_led_on out");
 }
 
 void lmc_led_off(struct card * const sc, u32 led)
 {
-	lmc_trace(sc->lmc_device, "lmc_led_off in");
-	if (sc->lmc_miireg16 & led) { /* Already set don't do anything */
-		lmc_trace(sc->lmc_device, "lmc_led_off aoff out");
+	lmc_trace(sc->netdev, "lmc_led_off in");
+	if (sc->miireg16 & led) { /* Already set don't do anything */
+		lmc_trace(sc->netdev, "lmc_led_off aoff out");
 		return;
 	}
 
-	sc->lmc_miireg16 |= led;
-	lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
-	lmc_trace(sc->lmc_device, "lmc_led_off out");
+	sc->miireg16 |= led;
+	lmc_mii_writereg(sc, 0, 16, sc->miireg16);
+	lmc_trace(sc->netdev, "lmc_led_off out");
 }
 
 static void lmc_reset(struct card * const sc)
 {
-	lmc_trace(sc->lmc_device, "lmc_reset in");
-	sc->lmc_miireg16 |= LMC_MII16_FIFO_RESET;
-	lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
+	lmc_trace(sc->netdev, "lmc_reset in");
+	sc->miireg16 |= LMC_MII16_FIFO_RESET;
+	lmc_mii_writereg(sc, 0, 16, sc->miireg16);
 
-	sc->lmc_miireg16 &= ~LMC_MII16_FIFO_RESET;
-	lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
+	sc->miireg16 &= ~LMC_MII16_FIFO_RESET;
+	lmc_mii_writereg(sc, 0, 16, sc->miireg16);
 
 	/* make some of the GPIO pins be outputs */
 	lmc_gpio_mkoutput(sc, LMC_GEP_RESET);
 
 	/* RESET low to force state reset.  This also forces the transmitter
 	   clock to be internal, but we expect to reset that later anyway. */
-	sc->lmc_gpio &= ~(LMC_GEP_RESET);
-	LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+	sc->gpio &= ~(LMC_GEP_RESET);
+	LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 
 	/* hold for more than 10 microseconds */
 	udelay(50);
@@ -1794,20 +1793,20 @@ static void lmc_reset(struct card * const sc)
 	lmc_gpio_mkinput(sc, LMC_GEP_RESET);
 
 	/* Call media specific init routine */
-	sc->lmc_media->init(sc);
+	sc->media->init(sc);
 
 	sc->extra_stats.resetCount++;
-	lmc_trace(sc->lmc_device, "lmc_reset out");
+	lmc_trace(sc->netdev, "lmc_reset out");
 }
 
 static void lmc_dec_reset(struct card * const sc)
 {
 	u32 val;
-	lmc_trace(sc->lmc_device, "lmc_dec_reset in");
+	lmc_trace(sc->netdev, "lmc_dec_reset in");
 
 	/* disable all interrupts */
-	sc->lmc_intrmask = 0;
-	LMC_CSR_WRITE(sc, csr_intr, sc->lmc_intrmask);
+	sc->intrmask = 0;
+	LMC_CSR_WRITE(sc, csr_intr, sc->intrmask);
 
 	/* Reset the chip with a software reset command. Wait 10 microseconds
 	   (actually 50 PCI cycles but at 33MHz that comes to two microseconds
@@ -1815,12 +1814,12 @@ static void lmc_dec_reset(struct card * const sc)
 	LMC_CSR_WRITE(sc, csr_busmode, TULIP_BUSMODE_SWRESET);
 	udelay(25);
 #ifdef __sparc__
-	sc->lmc_busmode = LMC_CSR_READ(sc, csr_busmode);
-	sc->lmc_busmode = 0x00100000;
-	sc->lmc_busmode &= ~TULIP_BUSMODE_SWRESET;
-	LMC_CSR_WRITE(sc, csr_busmode, sc->lmc_busmode);
+	sc->busmode = LMC_CSR_READ(sc, csr_busmode);
+	sc->busmode = 0x00100000;
+	sc->busmode &= ~TULIP_BUSMODE_SWRESET;
+	LMC_CSR_WRITE(sc, csr_busmode, sc->busmode);
 #endif
-	sc->lmc_cmdmode = LMC_CSR_READ(sc, csr_command);
+	sc->cmdmode = LMC_CSR_READ(sc, csr_command);
 
 	/*
 	 * We want:
@@ -1832,44 +1831,44 @@ static void lmc_dec_reset(struct card * const sc)
 	 *   if using 16-bit CRC, turn off CRC (trans desc, crc disable)
 	 */
 
-	sc->lmc_cmdmode |= (TULIP_CMD_PROMISCUOUS | TULIP_CMD_FULLDUPLEX |
+	sc->cmdmode |= (TULIP_CMD_PROMISCUOUS | TULIP_CMD_FULLDUPLEX |
 			    TULIP_CMD_PASSBADPKT | TULIP_CMD_NOHEARTBEAT |
 			    TULIP_CMD_PORTSELECT | TULIP_CMD_RECEIVEALL |
 			    TULIP_CMD_MUSTBEONE);
-	sc->lmc_cmdmode &= ~(TULIP_CMD_OPERMODE | TULIP_CMD_THRESHOLDCTL |
+	sc->cmdmode &= ~(TULIP_CMD_OPERMODE | TULIP_CMD_THRESHOLDCTL |
 			     TULIP_CMD_STOREFWD | TULIP_CMD_TXTHRSHLDCTL);
 
-	LMC_CSR_WRITE(sc, csr_command, sc->lmc_cmdmode);
+	LMC_CSR_WRITE(sc, csr_command, sc->cmdmode);
 
 	/* disable receiver watchdog and transmit jabber */
 	val = LMC_CSR_READ(sc, csr_sia_general);
 	val |= (TULIP_WATCHDOG_TXDISABLE | TULIP_WATCHDOG_RXDISABLE);
 	LMC_CSR_WRITE(sc, csr_sia_general, val);
 
-	lmc_trace(sc->lmc_device, "lmc_dec_reset out");
+	lmc_trace(sc->netdev, "lmc_dec_reset out");
 }
 
 static void lmc_initcsrs(struct card * const sc, lmc_csrptr_t csr_base,
 			 size_t csr_size)
 {
-	lmc_trace(sc->lmc_device, "lmc_initcsrs in");
-	sc->lmc_csrs.csr_busmode	= csr_base +  0 * csr_size;
-	sc->lmc_csrs.csr_txpoll		= csr_base +  1 * csr_size;
-	sc->lmc_csrs.csr_rxpoll		= csr_base +  2 * csr_size;
-	sc->lmc_csrs.csr_rxlist		= csr_base +  3 * csr_size;
-	sc->lmc_csrs.csr_txlist		= csr_base +  4 * csr_size;
-	sc->lmc_csrs.csr_status		= csr_base +  5 * csr_size;
-	sc->lmc_csrs.csr_command	= csr_base +  6 * csr_size;
-	sc->lmc_csrs.csr_intr		= csr_base +  7 * csr_size;
-	sc->lmc_csrs.csr_missed_frames	= csr_base +  8 * csr_size;
-	sc->lmc_csrs.csr_9		= csr_base +  9 * csr_size;
-	sc->lmc_csrs.csr_10		= csr_base + 10 * csr_size;
-	sc->lmc_csrs.csr_11		= csr_base + 11 * csr_size;
-	sc->lmc_csrs.csr_12		= csr_base + 12 * csr_size;
-	sc->lmc_csrs.csr_13		= csr_base + 13 * csr_size;
-	sc->lmc_csrs.csr_14		= csr_base + 14 * csr_size;
-	sc->lmc_csrs.csr_15		= csr_base + 15 * csr_size;
-	lmc_trace(sc->lmc_device, "lmc_initcsrs out");
+	lmc_trace(sc->netdev, "lmc_initcsrs in");
+	sc->csrs.csr_busmode	= csr_base +  0 * csr_size;
+	sc->csrs.csr_txpoll		= csr_base +  1 * csr_size;
+	sc->csrs.csr_rxpoll		= csr_base +  2 * csr_size;
+	sc->csrs.csr_rxlist		= csr_base +  3 * csr_size;
+	sc->csrs.csr_txlist		= csr_base +  4 * csr_size;
+	sc->csrs.csr_status		= csr_base +  5 * csr_size;
+	sc->csrs.csr_command	= csr_base +  6 * csr_size;
+	sc->csrs.csr_intr		= csr_base +  7 * csr_size;
+	sc->csrs.csr_missed_frames	= csr_base +  8 * csr_size;
+	sc->csrs.csr_9		= csr_base +  9 * csr_size;
+	sc->csrs.csr_10		= csr_base + 10 * csr_size;
+	sc->csrs.csr_11		= csr_base + 11 * csr_size;
+	sc->csrs.csr_12		= csr_base + 12 * csr_size;
+	sc->csrs.csr_13		= csr_base + 13 * csr_size;
+	sc->csrs.csr_14		= csr_base + 14 * csr_size;
+	sc->csrs.csr_15		= csr_base + 15 * csr_size;
+	lmc_trace(sc->netdev, "lmc_initcsrs out");
 }
 
 static void lmc_driver_timeout(struct net_device *dev)
@@ -1880,7 +1879,7 @@ static void lmc_driver_timeout(struct net_device *dev)
 
 	lmc_trace(dev, "lmc_driver_timeout in");
 
-	spin_lock_irqsave(&sc->lmc_lock, flags);
+	spin_lock_irqsave(&sc->lock, flags);
 
 	printk(KERN_DEBUG "%s: Xmitter busy|\n", dev->name);
 
@@ -1901,11 +1900,11 @@ static void lmc_driver_timeout(struct net_device *dev)
 	/* immediate transmit */
 	LMC_CSR_WRITE(sc, csr_txpoll, 0);
 
-	sc->lmc_device->stats.tx_errors++;
+	sc->netdev->stats.tx_errors++;
 	sc->extra_stats.tx_ProcTimeout++;
 	dev->trans_start = jiffies; /* prevent tx timeout */
 
 bug_out:
-	spin_unlock_irqrestore(&sc->lmc_lock, flags);
+	spin_unlock_irqrestore(&sc->lock, flags);
 	lmc_trace(dev, "lmc_driver_timout out");
 }
diff --git a/drivers/net/wan/lmc/media.c b/drivers/net/wan/lmc/media.c
index 5851d19..fde275a 100644
--- a/drivers/net/wan/lmc/media.c
+++ b/drivers/net/wan/lmc/media.c
@@ -48,20 +48,20 @@ static void lmc_set_protocol(struct card * const sc, struct control *ctl)
 static inline void write_av9110_bit(struct card *sc, int c)
 {
 	/* set the data bit as we need it. */
-	sc->lmc_gpio &= ~(LMC_GEP_CLK);
+	sc->gpio &= ~(LMC_GEP_CLK);
 	if (c & 0x01)
-		sc->lmc_gpio |= LMC_GEP_DATA;
+		sc->gpio |= LMC_GEP_DATA;
 	else
-		sc->lmc_gpio &= ~(LMC_GEP_DATA);
-	LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+		sc->gpio &= ~(LMC_GEP_DATA);
+	LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 
 	/* set the clock to high */
-	sc->lmc_gpio |= LMC_GEP_CLK;
-	LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+	sc->gpio |= LMC_GEP_CLK;
+	LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 
 	/* set the clock to low again. */
-	sc->lmc_gpio &= ~(LMC_GEP_CLK);
-	LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+	sc->gpio &= ~(LMC_GEP_CLK);
+	LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 }
 
 static void write_av9110(struct card *sc, u32 n, u32 m, u32 v, u32 x, u32 r)
@@ -73,16 +73,16 @@ static void write_av9110(struct card *sc, u32 n, u32 m, u32 v, u32 x, u32 r)
 	       LMC_PRINTF_ARGS, sc->ictl.clock_rate, n, m, v, x, r);
 #endif
 
-	sc->lmc_gpio |= LMC_GEP_SSI_GENERATOR;
-	sc->lmc_gpio &= ~(LMC_GEP_DATA | LMC_GEP_CLK);
-	LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+	sc->gpio |= LMC_GEP_SSI_GENERATOR;
+	sc->gpio &= ~(LMC_GEP_DATA | LMC_GEP_CLK);
+	LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 
 	/* Set the TXCLOCK, GENERATOR, SERIAL, and SERIALCLK as outputs. */
 	lmc_gpio_mkoutput(sc, (LMC_GEP_DATA | LMC_GEP_CLK
 				| LMC_GEP_SSI_GENERATOR));
 
-	sc->lmc_gpio &= ~(LMC_GEP_SSI_GENERATOR);
-	LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+	sc->gpio &= ~(LMC_GEP_SSI_GENERATOR);
+	LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 
 	/* a shifting we will go... */
 	for (i = 0; i < 7; i++)
@@ -124,15 +124,15 @@ static void lmc_ssi_set_clock(struct card * const sc, int ie)
 	int old;
 	old = ie;
 	if (ie == LMC_CTL_CLOCK_SOURCE_EXT) {
-		sc->lmc_gpio &= ~(LMC_GEP_SSI_TXCLOCK);
-		LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+		sc->gpio &= ~(LMC_GEP_SSI_TXCLOCK);
+		LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 		sc->ictl.clock_source = LMC_CTL_CLOCK_SOURCE_EXT;
 		if (ie != old)
 			printk(LMC_PRINTF_FMT ": clock external\n",
 			       LMC_PRINTF_ARGS);
 	} else {
-		sc->lmc_gpio |= LMC_GEP_SSI_TXCLOCK;
-		LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+		sc->gpio |= LMC_GEP_SSI_TXCLOCK;
+		LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 		sc->ictl.clock_source = LMC_CTL_CLOCK_SOURCE_INT;
 		if (ie != old)
 			printk(LMC_PRINTF_FMT ": clock internal\n",
@@ -188,11 +188,11 @@ static void lmc_ssi_set_status(struct card * const sc, struct control *ctl)
 	if (ctl->clock_source == LMC_CTL_CLOCK_SOURCE_INT
 	    && sc->ictl.clock_source == LMC_CTL_CLOCK_SOURCE_EXT) {
 		lmc_ssi_set_clock(sc, LMC_CTL_CLOCK_SOURCE_INT);
-		sc->lmc_timing = LMC_CTL_CLOCK_SOURCE_INT;
+		sc->timing = LMC_CTL_CLOCK_SOURCE_INT;
 	} else if (ctl->clock_source == LMC_CTL_CLOCK_SOURCE_EXT
 		 && sc->ictl.clock_source == LMC_CTL_CLOCK_SOURCE_INT) {
 		lmc_ssi_set_clock(sc, LMC_CTL_CLOCK_SOURCE_EXT);
-		sc->lmc_timing = LMC_CTL_CLOCK_SOURCE_EXT;
+		sc->timing = LMC_CTL_CLOCK_SOURCE_EXT;
 	}
 
 	if (ctl->clock_rate != sc->ictl.clock_rate)
@@ -233,7 +233,7 @@ static int lmc_ssi_get_link_status(struct card * const sc)
 	lmc_led_on(sc, LMC_MII16_LED0);
 
 	/* transmit clock determination */
-	if (sc->lmc_timing == LMC_CTL_CLOCK_SOURCE_INT)
+	if (sc->timing == LMC_CTL_CLOCK_SOURCE_INT)
 		lmc_led_off(sc, LMC_MII16_LED3);
 	else if (ticks == 0) {	/* no clock found ? */
 		ret = 0;
@@ -284,16 +284,16 @@ static int lmc_ssi_get_link_status(struct card * const sc)
 static void lmc_ssi_set_link_status(struct card * const sc, int state)
 {
 	if (state == LMC_LINK_UP) {
-		sc->lmc_miireg16 |= (LMC_MII16_SSI_DTR | LMC_MII16_SSI_RTS);
+		sc->miireg16 |= (LMC_MII16_SSI_DTR | LMC_MII16_SSI_RTS);
 		printk(LMC_PRINTF_FMT ": asserting DTR and RTS\n",
 		       LMC_PRINTF_ARGS);
 	} else {
-		sc->lmc_miireg16 &= ~(LMC_MII16_SSI_DTR | LMC_MII16_SSI_RTS);
+		sc->miireg16 &= ~(LMC_MII16_SSI_DTR | LMC_MII16_SSI_RTS);
 		printk(LMC_PRINTF_FMT ": deasserting DTR and RTS\n",
 		       LMC_PRINTF_ARGS);
 	}
 
-	lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
+	lmc_mii_writereg(sc, 0, 16, sc->miireg16);
 
 }
 
@@ -302,23 +302,23 @@ static void lmc_ssi_set_crc_length(struct card * const sc, int state)
 {
 	if (state == LMC_CTL_CRC_LENGTH_32) {
 		/* 32 bit */
-		sc->lmc_miireg16 |= LMC_MII16_SSI_CRC;
+		sc->miireg16 |= LMC_MII16_SSI_CRC;
 		sc->ictl.crc_length = LMC_CTL_CRC_LENGTH_32;
-		sc->lmc_crcSize = LMC_CTL_CRC_BYTESIZE_4;
+		sc->crcSize = LMC_CTL_CRC_BYTESIZE_4;
 
 	} else {
 		/* 16 bit */
-		sc->lmc_miireg16 &= ~LMC_MII16_SSI_CRC;
+		sc->miireg16 &= ~LMC_MII16_SSI_CRC;
 		sc->ictl.crc_length = LMC_CTL_CRC_LENGTH_16;
-		sc->lmc_crcSize = LMC_CTL_CRC_BYTESIZE_2;
+		sc->crcSize = LMC_CTL_CRC_BYTESIZE_2;
 	}
 
-	lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
+	lmc_mii_writereg(sc, 0, 16, sc->miireg16);
 }
 
 static void lmc_ssi_default(struct card * const sc)
 {
-	sc->lmc_miireg16 = LMC_MII16_LED_ALL;
+	sc->miireg16 = LMC_MII16_LED_ALL;
 
 	/* make TXCLOCK always be an output */
 	lmc_gpio_mkoutput(sc, LMC_GEP_SSI_TXCLOCK);
@@ -353,15 +353,15 @@ static void lmc_hssi_set_clock(struct card * const sc, int ie)
 	int old;
 	old = sc->ictl.clock_source;
 	if (ie == LMC_CTL_CLOCK_SOURCE_EXT) {
-		sc->lmc_gpio |= LMC_GEP_HSSI_CLOCK;
-		LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+		sc->gpio |= LMC_GEP_HSSI_CLOCK;
+		LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 		sc->ictl.clock_source = LMC_CTL_CLOCK_SOURCE_EXT;
 		if (old != ie)
 			printk(LMC_PRINTF_FMT ": clock external\n",
 			       LMC_PRINTF_ARGS);
 	} else {
-		sc->lmc_gpio &= ~(LMC_GEP_HSSI_CLOCK);
-		LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+		sc->gpio &= ~LMC_GEP_HSSI_CLOCK;
+		LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 		sc->ictl.clock_source = LMC_CTL_CLOCK_SOURCE_INT;
 		if (old != ie)
 			printk(LMC_PRINTF_FMT ": clock internal\n",
@@ -383,9 +383,9 @@ static void lmc_hssi_set_status(struct card * const sc, struct control *ctl)
 	/* check for change in clock source */
 	if (ctl->clock_source && !sc->ictl.clock_source) {
 		lmc_hssi_set_clock(sc, LMC_CTL_CLOCK_SOURCE_INT);
-		sc->lmc_timing = LMC_CTL_CLOCK_SOURCE_INT;
+		sc->timing = LMC_CTL_CLOCK_SOURCE_INT;
 	} else if (!ctl->clock_source && sc->ictl.clock_source) {
-		sc->lmc_timing = LMC_CTL_CLOCK_SOURCE_EXT;
+		sc->timing = LMC_CTL_CLOCK_SOURCE_EXT;
 		lmc_hssi_set_clock(sc, LMC_CTL_CLOCK_SOURCE_EXT);
 	}
 
@@ -403,11 +403,11 @@ static inline int lmc_hssi_get_link_status(struct card * const sc)
 static void lmc_hssi_set_link_status(struct card * const sc, int state)
 {
 	if (state == LMC_LINK_UP)
-		sc->lmc_miireg16 |= LMC_MII16_HSSI_TA;
+		sc->miireg16 |= LMC_MII16_HSSI_TA;
 	else
-		sc->lmc_miireg16 &= ~LMC_MII16_HSSI_TA;
+		sc->miireg16 &= ~LMC_MII16_HSSI_TA;
 
-	lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
+	lmc_mii_writereg(sc, 0, 16, sc->miireg16);
 }
 
 /* 0 == 16bit, 1 == 32bit */
@@ -415,20 +415,20 @@ static void lmc_hssi_set_crc_length(struct card * const sc, int state)
 {
 	if (state == LMC_CTL_CRC_LENGTH_32) {
 		/* 32 bit */
-		sc->lmc_miireg16 |= LMC_MII16_HSSI_CRC;
+		sc->miireg16 |= LMC_MII16_HSSI_CRC;
 		sc->ictl.crc_length = LMC_CTL_CRC_LENGTH_32;
 	} else {
 		/* 16 bit */
-		sc->lmc_miireg16 &= ~LMC_MII16_HSSI_CRC;
+		sc->miireg16 &= ~LMC_MII16_HSSI_CRC;
 		sc->ictl.crc_length = LMC_CTL_CRC_LENGTH_16;
 	}
 
-	lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
+	lmc_mii_writereg(sc, 0, 16, sc->miireg16);
 }
 
 static void lmc_hssi_default(struct card * const sc)
 {
-	sc->lmc_miireg16 = LMC_MII16_LED_ALL;
+	sc->miireg16 = LMC_MII16_LED_ALL;
 	lmc_hssi_set_link_status(sc, LMC_LINK_DOWN);
 	lmc_hssi_set_clock(sc, LMC_CTL_CLOCK_SOURCE_EXT);
 	lmc_hssi_set_crc_length(sc, LMC_CTL_CRC_LENGTH_16);
@@ -441,26 +441,26 @@ static void lmc_hssi_default(struct card * const sc)
 static void lmc_ds3_set_100ft(struct card * const sc, int ie)
 {
 	if (ie == LMC_CTL_CABLE_LENGTH_GT_100FT) {
-		sc->lmc_miireg16 &= ~LMC_MII16_DS3_ZERO;
+		sc->miireg16 &= ~LMC_MII16_DS3_ZERO;
 		sc->ictl.cable_length = LMC_CTL_CABLE_LENGTH_GT_100FT;
 	} else if (ie == LMC_CTL_CABLE_LENGTH_LT_100FT) {
-		sc->lmc_miireg16 |= LMC_MII16_DS3_ZERO;
+		sc->miireg16 |= LMC_MII16_DS3_ZERO;
 		sc->ictl.cable_length = LMC_CTL_CABLE_LENGTH_LT_100FT;
 	}
-	lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
+	lmc_mii_writereg(sc, 0, 16, sc->miireg16);
 }
 
 /* 1 == DS3 payload scrambled, 0 == not scrambled */
 static void lmc_ds3_set_scram(struct card * const sc, int ie)
 {
 	if (ie == LMC_CTL_ON) {
-		sc->lmc_miireg16 |= LMC_MII16_DS3_SCRAM;
+		sc->miireg16 |= LMC_MII16_DS3_SCRAM;
 		sc->ictl.scrambler_onoff = LMC_CTL_ON;
 	} else {
-		sc->lmc_miireg16 &= ~LMC_MII16_DS3_SCRAM;
+		sc->miireg16 &= ~LMC_MII16_DS3_SCRAM;
 		sc->ictl.scrambler_onoff = LMC_CTL_OFF;
 	}
-	lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
+	lmc_mii_writereg(sc, 0, 16, sc->miireg16);
 }
 
 /* Given a user provided state, set ourselves up to match it.
@@ -612,20 +612,20 @@ static void lmc_ds3_set_crc_length(struct card * const sc, int state)
 {
 	if (state == LMC_CTL_CRC_LENGTH_32) {
 		/* 32 bit */
-		sc->lmc_miireg16 |= LMC_MII16_DS3_CRC;
+		sc->miireg16 |= LMC_MII16_DS3_CRC;
 		sc->ictl.crc_length = LMC_CTL_CRC_LENGTH_32;
 	} else {
 		/* 16 bit */
-		sc->lmc_miireg16 &= ~LMC_MII16_DS3_CRC;
+		sc->miireg16 &= ~LMC_MII16_DS3_CRC;
 		sc->ictl.crc_length = LMC_CTL_CRC_LENGTH_16;
 	}
 
-	lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
+	lmc_mii_writereg(sc, 0, 16, sc->miireg16);
 }
 
 static void lmc_ds3_default(struct card * const sc)
 {
-	sc->lmc_miireg16 = LMC_MII16_LED_ALL;
+	sc->miireg16 = LMC_MII16_LED_ALL;
 
 	lmc_ds3_set_100ft(sc, LMC_CTL_CABLE_LENGTH_LT_100FT);
 	lmc_ds3_set_scram(sc, LMC_CTL_OFF);
@@ -655,16 +655,16 @@ static int lmc_t1_read(struct card * const sc, int a)
 static void lmc_t1_set_circuit_type(struct card * const sc, int ie)
 {
 	if (ie == LMC_CTL_CIRCUIT_TYPE_T1) {
-		sc->lmc_miireg16 |= LMC_MII16_T1_Z;
+		sc->miireg16 |= LMC_MII16_T1_Z;
 		sc->ictl.circuit_type = LMC_CTL_CIRCUIT_TYPE_T1;
 		printk(KERN_INFO "%s: In T1 Mode\n", sc->name);
 	} else {
-		sc->lmc_miireg16 &= ~LMC_MII16_T1_Z;
+		sc->miireg16 &= ~LMC_MII16_T1_Z;
 		sc->ictl.circuit_type = LMC_CTL_CIRCUIT_TYPE_E1;
 		printk(KERN_INFO "%s: In E1 Mode\n", sc->name);
 	}
 
-	lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
+	lmc_mii_writereg(sc, 0, 16, sc->miireg16);
 }
 
 static void lmc_t1_init(struct card * const sc)
@@ -681,9 +681,9 @@ static void lmc_t1_init(struct card * const sc)
 	lmc_mii_writereg(sc, 0, 16, mii16);
 
 	/* set T1 or E1 line.  Uses sc->lmcmii16 reg in function so update it */
-	sc->lmc_miireg16 = mii16;
+	sc->miireg16 = mii16;
 	lmc_t1_set_circuit_type(sc, LMC_CTL_CIRCUIT_TYPE_T1);
-	mii16 = sc->lmc_miireg16;
+	mii16 = sc->miireg16;
 
 	lmc_t1_write(sc, 0x01, 0x1B); /* CR0     - primary control */
 	lmc_t1_write(sc, 0x02, 0x42); /* JAT_CR  - jitter atten config */
@@ -723,7 +723,7 @@ static void lmc_t1_init(struct card * const sc)
 
 	mii16 |= LMC_MII16_T1_XOE;
 	lmc_mii_writereg(sc, 0, 16, mii16);
-	sc->lmc_miireg16 = mii16;
+	sc->miireg16 = mii16;
 }
 
 /* Given a user provided state, set ourselves up to match it.
@@ -757,7 +757,7 @@ static int lmc_t1_get_link_status(struct card * const sc)
 	   - led2 green  = power to adapter, Gate Array loaded & driver attached
 	   - led3 red    = Loss of Signal (LOS) or out of frame (OOF)
 			   conditions detected on T3 receive signal */
-	lmc_trace(sc->lmc_device, "lmc_t1_get_link_status in");
+	lmc_trace(sc->netdev, "lmc_t1_get_link_status in");
 	lmc_led_on(sc, LMC_DS3_LED2);
 
 	lmc_mii_writereg(sc, 0, 17, T1FRAMER_ALARM1_STATUS);
@@ -846,12 +846,12 @@ static int lmc_t1_get_link_status(struct card * const sc)
 		sc->last_led_err[2] = 0;
 	}
 
-	sc->lmc_xinfo.t1_alarm1_status = link_status;
+	sc->xinfo.t1_alarm1_status = link_status;
 
 	lmc_mii_writereg(sc, 0, 17, T1FRAMER_ALARM2_STATUS);
-	sc->lmc_xinfo.t1_alarm2_status = lmc_mii_readreg(sc, 0, 18);
+	sc->xinfo.t1_alarm2_status = lmc_mii_readreg(sc, 0, 18);
 
-	lmc_trace(sc->lmc_device, "lmc_t1_get_link_status out");
+	lmc_trace(sc->netdev, "lmc_t1_get_link_status out");
 	return ret;
 }
 
@@ -860,18 +860,18 @@ static void lmc_t1_set_crc_length(struct card * const sc, int state)
 {
 	if (state == LMC_CTL_CRC_LENGTH_32) {
 		/* 32 bit */
-		sc->lmc_miireg16 |= LMC_MII16_T1_CRC;
+		sc->miireg16 |= LMC_MII16_T1_CRC;
 		sc->ictl.crc_length = LMC_CTL_CRC_LENGTH_32;
-		sc->lmc_crcSize = LMC_CTL_CRC_BYTESIZE_4;
+		sc->crcSize = LMC_CTL_CRC_BYTESIZE_4;
 
 	} else {
-		/* 16 bit */ sc->lmc_miireg16 &= ~LMC_MII16_T1_CRC;
+		/* 16 bit */ sc->miireg16 &= ~LMC_MII16_T1_CRC;
 		sc->ictl.crc_length = LMC_CTL_CRC_LENGTH_16;
-		sc->lmc_crcSize = LMC_CTL_CRC_BYTESIZE_2;
+		sc->crcSize = LMC_CTL_CRC_BYTESIZE_2;
 
 	}
 
-	lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
+	lmc_mii_writereg(sc, 0, 16, sc->miireg16);
 }
 
 /* 1 == internal, 0 == external */
@@ -880,15 +880,15 @@ static void lmc_t1_set_clock(struct card * const sc, int ie)
 	int old;
 	old = ie;
 	if (ie == LMC_CTL_CLOCK_SOURCE_EXT) {
-		sc->lmc_gpio &= ~(LMC_GEP_SSI_TXCLOCK);
-		LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+		sc->gpio &= ~(LMC_GEP_SSI_TXCLOCK);
+		LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 		sc->ictl.clock_source = LMC_CTL_CLOCK_SOURCE_EXT;
 		if (old != ie)
 			printk(LMC_PRINTF_FMT ": clock external\n",
 			       LMC_PRINTF_ARGS);
 	} else {
-		sc->lmc_gpio |= LMC_GEP_SSI_TXCLOCK;
-		LMC_CSR_WRITE(sc, csr_gp, sc->lmc_gpio);
+		sc->gpio |= LMC_GEP_SSI_TXCLOCK;
+		LMC_CSR_WRITE(sc, csr_gp, sc->gpio);
 		sc->ictl.clock_source = LMC_CTL_CLOCK_SOURCE_INT;
 		if (old != ie)
 			printk(LMC_PRINTF_FMT ": clock internal\n",
@@ -898,7 +898,7 @@ static void lmc_t1_set_clock(struct card * const sc, int ie)
 
 static void lmc_t1_default(struct card * const sc)
 {
-	sc->lmc_miireg16 = LMC_MII16_LED_ALL;
+	sc->miireg16 = LMC_MII16_LED_ALL;
 	lmc_t1_set_circuit_type(sc, LMC_CTL_CIRCUIT_TYPE_T1);
 	lmc_t1_set_crc_length(sc, LMC_CTL_CRC_LENGTH_16);
 	/* Right now we can only clock from out internal source */
diff --git a/drivers/net/wan/lmc/var.h b/drivers/net/wan/lmc/var.h
index 38f61cb..a3e9aee 100644
--- a/drivers/net/wan/lmc/var.h
+++ b/drivers/net/wan/lmc/var.h
@@ -22,7 +22,7 @@
 #define lmc_csrptr_t		unsigned long
 
 #define LMC_PRINTF_FMT		"%s"
-#define LMC_PRINTF_ARGS		(sc->lmc_device->name)
+#define LMC_PRINTF_ARGS		(sc->netdev->name)
 
 #define TX_TIMEOUT		(2*HZ)
 
@@ -33,10 +33,10 @@
 #define LMC_LINK_DOWN		0
 
 /* These macros for generic read and write to and from the dec chip */
-#define LMC_CSR_READ(sc, csr)		inl((sc)->lmc_csrs.csr)
-#define LMC_CSR_WRITE(sc, reg, val)	outl((val), (sc)->lmc_csrs.reg)
+#define LMC_CSR_READ(sc, csr)		inl((sc)->csrs.csr)
+#define LMC_CSR_WRITE(sc, reg, val)	outl((val), (sc)->csrs.reg)
 
-#define lmc_delay()		inl(sc->lmc_csrs.csr_9)
+#define lmc_delay()		inl(sc->csrs.csr_9)
 
 /* This macro sync's up with the mii so that reads and writes can take place */
 #define LMC_MII_SYNC(sc)					\
@@ -201,7 +201,7 @@ struct media {
 
 struct lmc_extra_statistics {
 	u32 version_size;
-	u32 lmc_cardtype;
+	u32 cardtype;
 
 	u32 tx_ProcTimeout;
 	u32 tx_IntTimeout;
@@ -213,10 +213,10 @@ struct lmc_extra_statistics {
 	u32 tx_tbusy1;
 	u32 tx_tbusy_calls;
 	u32 resetCount;
-	u32 lmc_txfull;
+	u32 txfull;
 	u32 tbusy;
 	u32 dirtyTx;
-	u32 lmc_next_tx;
+	u32 next_tx;
 	u32 otherTypeCnt;
 	u32 lastType;
 	u32 lastTypeOK;
@@ -269,46 +269,46 @@ struct card {
 	char *name;
 	u8 board_idx;
 	struct lmc_extra_statistics extra_stats;
-	struct net_device *lmc_device;
+	struct net_device *netdev;
 
 	int hang, rxdesc, bad_packet, some_counter;
 	u32 txgo;
-	struct lmc_regfile_t lmc_csrs;
-	volatile u32 lmc_txtick;
-	volatile u32 lmc_rxtick;
-	u32 lmc_flags;
-	u32 lmc_intrmask;	/* our copy of csr_intr */
-	u32 lmc_cmdmode;	/* our copy of csr_cmdmode */
-	u32 lmc_busmode;	/* our copy of csr_busmode */
-	u32 lmc_gpio_io;	/* state of in/out settings */
-	u32 lmc_gpio;		/* state of outputs */
-	struct sk_buff *lmc_txq[LMC_TXDESCS];
-	struct sk_buff *lmc_rxq[LMC_RXDESCS];
-	volatile struct tulip_desc_t lmc_rxring[LMC_RXDESCS];
-	volatile struct tulip_desc_t lmc_txring[LMC_TXDESCS];
-	unsigned int lmc_next_rx, lmc_next_tx;
-	volatile unsigned int lmc_taint_tx, lmc_taint_rx;
-	int lmc_tx_start, lmc_txfull;
-	int lmc_txbusy;
-	u16 lmc_miireg16;
-	int lmc_ok;
+	struct lmc_regfile_t csrs;
+	volatile u32 txtick;
+	volatile u32 rxtick;
+	u32 flags;
+	u32 intrmask;		/* our copy of csr_intr */
+	u32 cmdmode;		/* our copy of csr_cmdmode */
+	u32 busmode;		/* our copy of csr_busmode */
+	u32 gpio_io;		/* state of in/out settings */
+	u32 gpio;		/* state of outputs */
+	struct sk_buff *txq[LMC_TXDESCS];
+	struct sk_buff *rxq[LMC_RXDESCS];
+	volatile struct tulip_desc_t rxring[LMC_RXDESCS];
+	volatile struct tulip_desc_t txring[LMC_TXDESCS];
+	unsigned int next_rx, next_tx;
+	volatile unsigned int taint_tx, taint_rx;
+	int tx_start, txfull;
+	int txbusy;
+	u16 miireg16;
+	int ok;
 	int last_link_status;
-	int lmc_cardtype;
+	int cardtype;
 	u32 last_frameerr;
-	struct media *lmc_media;
+	struct media *media;
 	struct timer_list timer;
 	struct control ictl;
 	u32 TxDescriptControlInit;
 
 	int tx_TimeoutInd;		/* additional driver state */
 	int tx_TimeoutDisplay;
-	unsigned int lastlmc_taint_tx;
+	unsigned int last_taint_tx;
 	int lasttx_packets;
 	u32 tx_clockState;
-	u32 lmc_crcSize;
-	LMC_XINFO lmc_xinfo;
-	char lmc_yel, lmc_blue, lmc_red; /* for T1 and DS3 */
-	char lmc_timing;		/* for HSSI and SSI */
+	u32 crcSize;
+	LMC_XINFO xinfo;
+	char yel, blue, red; /* for T1 and DS3 */
+	char timing;		/* for HSSI and SSI */
 	int got_irq;
 
 	char last_led_err[4];
@@ -316,7 +316,7 @@ struct card {
 	u32 last_int;
 	u32 num_int;
 
-	spinlock_t lmc_lock;
+	spinlock_t lock;
 
 	u8 failed_ring;			/* Failure cases */
 	u8 failed_recv_alloc;
-- 
1.7.1.1


^ permalink raw reply related

* [PATCH 25/29] LMC: Remove unneeded prototypes.
From: Krzysztof Halasa @ 2010-07-31 15:05 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <m3fwyzzpjf.fsf@intrepid.localdomain>

From: Krzysztof Hałasa <khc@pm.waw.pl>

Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
---
 drivers/net/wan/lmc/var.h |    6 ------
 1 files changed, 0 insertions(+), 6 deletions(-)

diff --git a/drivers/net/wan/lmc/var.h b/drivers/net/wan/lmc/var.h
index 206f77a..1f360de 100644
--- a/drivers/net/wan/lmc/var.h
+++ b/drivers/net/wan/lmc/var.h
@@ -427,17 +427,11 @@ static inline void lmc_trace(struct net_device *dev, char *msg)
 }
 
 
-int lmc_probe(struct net_device *dev);
-unsigned lmc_mii_readreg(struct card * const sc, unsigned devaddr,
-			 unsigned regno);
-void lmc_mii_writereg(struct card * const sc, unsigned devaddr,
-		      unsigned regno, unsigned data);
 void lmc_led_on(struct card * const, u32);
 void lmc_led_off(struct card * const, u32);
 unsigned lmc_mii_readreg(struct card * const, unsigned, unsigned);
 void lmc_mii_writereg(struct card * const, unsigned, unsigned, unsigned);
 void lmc_gpio_mkinput(struct card * const sc, u32 bits);
 void lmc_gpio_mkoutput(struct card * const sc, u32 bits);
-int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
 
 #endif /* _LMC_VAR_H_ */
-- 
1.7.1.1


^ permalink raw reply related

* [PATCH 17/29] LMC: don't wait in lmc_trace().
From: Krzysztof Halasa @ 2010-07-31 15:05 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <m3fwyzzpjf.fsf@intrepid.localdomain>

From: Krzysztof Hałasa <khc@pm.waw.pl>

Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
---
 drivers/net/wan/lmc/var.h |   13 ++-----------
 1 files changed, 2 insertions(+), 11 deletions(-)

diff --git a/drivers/net/wan/lmc/var.h b/drivers/net/wan/lmc/var.h
index f5b233c..38f61cb 100644
--- a/drivers/net/wan/lmc/var.h
+++ b/drivers/net/wan/lmc/var.h
@@ -434,19 +434,10 @@ extern struct media lmc_hssi_media;
 static inline void lmc_trace(struct net_device *dev, char *msg)
 {
 #ifdef LMC_TRACE
-	unsigned long j = jiffies + 3; /* Wait for 50 ms */
-
-	if (in_interrupt()) {
+	if (in_interrupt())
 		printk(KERN_DEBUG "%s: * %s\n", dev->name, msg);
-#if 0
-		while (time_before(jiffies, j + 10))
-			;
-#endif
-	} else {
+	else
 		printk(KERN_DEBUG "%s: %s\n", dev->name, msg);
-		while (time_before(jiffies, j))
-			schedule();
-	}
 #endif
 }
 
-- 
1.7.1.1


^ permalink raw reply related

* [PATCH 22/29] LMC: Move model logic to media structs.
From: Krzysztof Halasa @ 2010-07-31 15:05 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <m3fwyzzpjf.fsf@intrepid.localdomain>

From: Krzysztof Hałasa <khc@pm.waw.pl>

There are 4 different card models driven by lmc driver. Move the model-specific
code out of the switch()/if statements and into the model-specific media
structs.

Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
---
 drivers/net/wan/lmc/main.c  |   75 +++++++++++++-----------------------------
 drivers/net/wan/lmc/media.c |   20 +++++++++--
 drivers/net/wan/lmc/var.h   |    3 +-
 3 files changed, 41 insertions(+), 57 deletions(-)

diff --git a/drivers/net/wan/lmc/main.c b/drivers/net/wan/lmc/main.c
index bd7def0..1231d7c 100644
--- a/drivers/net/wan/lmc/main.c
+++ b/drivers/net/wan/lmc/main.c
@@ -75,8 +75,14 @@
 static int LMC_PKT_BUF_SZ = 1542;
 
 static DEFINE_PCI_DEVICE_TABLE(lmc_pci_tbl) = {
-	{ PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP_FAST,
-	  PCI_VENDOR_ID_LMC, PCI_ANY_ID },
+	{PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP_FAST, PCI_VENDOR_ID_LMC,
+	 PCI_DEVICE_ID_LMC_SSI, .driver_data = (long)&lmc_ssi_media},
+	{PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP_FAST, PCI_VENDOR_ID_LMC,
+	 PCI_DEVICE_ID_LMC_HSSI, .driver_data = (long)&lmc_hssi_media},
+	{PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP_FAST, PCI_VENDOR_ID_LMC,
+	 PCI_DEVICE_ID_LMC_DS3, .driver_data = (long)&lmc_ds3_media},
+	{PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP_FAST, PCI_VENDOR_ID_LMC,
+	 PCI_DEVICE_ID_LMC_T1, .driver_data = (long)&lmc_t1_media},
 	{ 0 }
 };
 
@@ -167,7 +173,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 		spin_lock_irqsave(&sc->lock, flags);
 		sc->xinfo.Magic0 = 0xBEEFCAFE;
 
-		sc->xinfo.PciCardType = sc->cardtype;
+		sc->xinfo.PciCardType = sc->media->cardtype;
 		sc->xinfo.PciSlotNumber = 0;
 		sc->xinfo.DriverMajorVersion = DRIVER_MAJOR_VERSION;
 		sc->xinfo.DriverMinorVersion = DRIVER_MINOR_VERSION;
@@ -190,7 +196,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 
 	case LMCIOCGETLMCSTATS:
 		spin_lock_irqsave(&sc->lock, flags);
-		if (sc->cardtype == LMC_CARDTYPE_T1) {
+		if (sc->media->cardtype == LMC_CARDTYPE_T1) {
 			lmc_mii_writereg(sc, 0, 17, T1FRAMER_FERR_LSB);
 			sc->extra_stats.framingBitErrorCount +=
 				lmc_mii_readreg(sc, 0, 18) & 0xff;
@@ -235,7 +241,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 		sc->extra_stats.check = STATCHECK;
 		sc->extra_stats.version_size = (DRIVER_VERSION << 16) +
 			sizeof(sc->netdev->stats) + sizeof(sc->extra_stats);
-		sc->extra_stats.cardtype = sc->cardtype;
+		sc->extra_stats.cardtype = sc->media->cardtype;
 		spin_unlock_irqrestore(&sc->lock, flags);
 		ret = 0;
 		break;
@@ -283,7 +289,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 		break;
 
 	case LMCIOCT1CONTROL:
-		if (sc->cardtype != LMC_CARDTYPE_T1) {
+		if (sc->media->cardtype != LMC_CARDTYPE_T1) {
 			ret = -EOPNOTSUPP;
 			break;
 		}
@@ -708,10 +714,8 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
 {
 	struct card *sc;
 	struct net_device *dev;
-	u16 subdevice;
-	u16 AdapModelNum;
+	u16 model;
 	int err;
-	static int cards_found;
 
 	/* lmc_trace(dev, "lmc_init_one in"); */
 
@@ -768,34 +772,10 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
 		goto err_hdlcdev;
 	}
 
-	sc->cardtype = LMC_CARDTYPE_UNKNOWN;
 	sc->timing = LMC_CTL_CLOCK_SOURCE_EXT;
+	sc->media = (struct media*)ent->driver_data;
 
-	switch (subdevice) {
-	case PCI_DEVICE_ID_LMC_HSSI:
-		dev_info(&pdev->dev, "%s = LMC HSSI\n", dev->name);
-		sc->cardtype = LMC_CARDTYPE_HSSI;
-		sc->media = &lmc_hssi_media;
-		break;
-	case PCI_DEVICE_ID_LMC_DS3:
-		dev_info(&pdev->dev, "%s = LMC DS3\n", dev->name);
-		sc->cardtype = LMC_CARDTYPE_DS3;
-		sc->media = &lmc_ds3_media;
-		break;
-	case PCI_DEVICE_ID_LMC_SSI:
-		dev_info(&pdev->dev, "%s = LMC SSI\n", dev->name);
-		sc->cardtype = LMC_CARDTYPE_SSI;
-		sc->media = &lmc_ssi_media;
-		break;
-	case PCI_DEVICE_ID_LMC_T1:
-		dev_info(&pdev->dev, "%s = LMC T1\n", dev->name);
-		sc->cardtype = LMC_CARDTYPE_T1;
-		sc->media = &lmc_t1_media;
-		break;
-	default:
-		dev_warn(&pdev->dev, "%s = LMC UNKNOWN CARD!\n", dev->name);
-		break;
-	}
+	dev_info(&pdev->dev, "%s = LMC %s\n", dev->name, sc->media->name);
 
 	lmc_initcsrs(sc, dev->base_addr, 8);
 
@@ -809,27 +789,18 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
 
 	/* verify that the PCI Sub System ID matches the Adapter Model number
 	   from the MII register */
-	AdapModelNum = (lmc_mii_readreg(sc, 0, 3) & 0x3f0) >> 4;
-
-	if ((AdapModelNum != LMC_ADAP_T1 || /* detect LMC1200 */
-	     subdevice != PCI_DEVICE_ID_LMC_T1) &&
-	    (AdapModelNum != LMC_ADAP_SSI || /* detect LMC1000 */
-	     subdevice != PCI_DEVICE_ID_LMC_SSI) &&
-	    (AdapModelNum != LMC_ADAP_DS3 || /* detect LMC5245 */
-	     subdevice != PCI_DEVICE_ID_LMC_DS3) &&
-	    (AdapModelNum != LMC_ADAP_HSSI || /* detect LMC5200 */
-	     subdevice != PCI_DEVICE_ID_LMC_HSSI))
-		printk(KERN_WARNING "%s: Model number (%d) miscompare for PCI"
-		       " Subsystem ID = 0x%04x\n",
-		       dev->name, AdapModelNum, subdevice);
-
-	/* reset clock */
-	LMC_CSR_WRITE(sc, csr_gp_timer, 0xFFFFFFFFUL);
+	model = (lmc_mii_readreg(sc, 0, 3) & 0x3F0) >> 4;
+
+	if (model != sc->media->mii_type)
+		dev_warn(&pdev->dev, "%s: Invalid model number (%d)",
+			 dev->name, model);
+
+	LMC_CSR_WRITE(sc, csr_gp_timer, 0xFFFFFFFFUL); /* reset clock */
 
 	sc->extra_stats.check = STATCHECK;
 	sc->extra_stats.version_size = (DRIVER_VERSION << 16) +
 		sizeof(sc->netdev->stats) + sizeof(sc->extra_stats);
-	sc->extra_stats.cardtype = sc->cardtype;
+	sc->extra_stats.cardtype = sc->media->cardtype;
 
 	sc->ok = 0;
 	sc->last_link_status = 0;
diff --git a/drivers/net/wan/lmc/media.c b/drivers/net/wan/lmc/media.c
index fde275a..ecf0f2a 100644
--- a/drivers/net/wan/lmc/media.c
+++ b/drivers/net/wan/lmc/media.c
@@ -906,7 +906,10 @@ static void lmc_t1_default(struct card * const sc)
 }
 
 
-struct media lmc_ssi_media = {
+struct media lmc_ssi_media = { /* LMC1000 */
+	.name = "SSI",
+	.cardtype = LMC_CARDTYPE_SSI,
+	.mii_type = LMC_ADAP_SSI,
 	.init = lmc_ssi_init,
 	.defaults = lmc_ssi_default,
 	.set_status = lmc_ssi_set_status,
@@ -918,7 +921,10 @@ struct media lmc_ssi_media = {
 	.watchdog = lmc_ssi_watchdog,
 };
 
-struct media lmc_hssi_media = {
+struct media lmc_hssi_media = { /* LMC5200 */
+	.name = "HSSI",
+	.cardtype = LMC_CARDTYPE_HSSI,
+	.mii_type = LMC_ADAP_HSSI,
 	.init = lmc_hssi_init,
 	.defaults = lmc_hssi_default,
 	.set_status = lmc_hssi_set_status,
@@ -928,7 +934,10 @@ struct media lmc_hssi_media = {
 	.set_crc_length = lmc_hssi_set_crc_length,
 };
 
-struct media lmc_ds3_media = {
+struct media lmc_ds3_media = { /* LMC5245 */
+	.name = "DS3",
+	.cardtype = LMC_CARDTYPE_DS3,
+	.mii_type = LMC_ADAP_DS3,
 	.init = lmc_ds3_init,
 	.defaults = lmc_ds3_default,
 	.set_status = lmc_ds3_set_status,
@@ -938,7 +947,10 @@ struct media lmc_ds3_media = {
 	.set_crc_length = lmc_ds3_set_crc_length,
 };
 
-struct media lmc_t1_media = {
+struct media lmc_t1_media = { /* LMC1200 */
+	.name = "T1",
+	.cardtype = LMC_CARDTYPE_T1,
+	.mii_type = LMC_ADAP_T1,
 	.init = lmc_t1_init,
 	.defaults = lmc_t1_default,
 	.set_status = lmc_t1_set_status,
diff --git a/drivers/net/wan/lmc/var.h b/drivers/net/wan/lmc/var.h
index 729ab9f..971f5d6 100644
--- a/drivers/net/wan/lmc/var.h
+++ b/drivers/net/wan/lmc/var.h
@@ -195,6 +195,8 @@ struct media {
 	void (* set_crc_length)(struct card * const, int);
 	void (* set_circuit_type)(struct card * const, int);
 	void (* watchdog)(struct card * const);
+	char * const name;
+	int cardtype, mii_type;
 };
 
 #define STATCHECK 0xBEEFCAFE
@@ -292,7 +294,6 @@ struct card {
 	u16 miireg16;
 	int ok;
 	int last_link_status;
-	int cardtype;
 	u32 last_frameerr;
 	struct media *media;
 	struct timer_list timer;
-- 
1.7.1.1


^ permalink raw reply related

* [PATCH 26/29] LMC: Remove redundant macro.
From: Krzysztof Halasa @ 2010-07-31 15:05 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <m3fwyzzpjf.fsf@intrepid.localdomain>

From: Krzysztof Hałasa <khc@pm.waw.pl>

Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
---
 drivers/net/wan/lmc/var.h |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wan/lmc/var.h b/drivers/net/wan/lmc/var.h
index 1f360de..54e9b0b 100644
--- a/drivers/net/wan/lmc/var.h
+++ b/drivers/net/wan/lmc/var.h
@@ -396,10 +396,6 @@ struct card {
 #define DESC_OWNED_BY_SYSTEM	((u32)(0x00000000))
 #define DESC_OWNED_BY_DC21X4	((u32)(0x80000000))
 
-#ifndef TULIP_CMD_RECEIVEALL
-#define TULIP_CMD_RECEIVEALL	0x40000000L
-#endif
-
 /* Adapter module number */
 #define LMC_ADAP_HSSI		2
 #define LMC_ADAP_DS3		3
-- 
1.7.1.1


^ permalink raw reply related

* [PATCH 16/29] LMC: Remove unused macros.
From: Krzysztof Halasa @ 2010-07-31 15:05 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <m3fwyzzpjf.fsf@intrepid.localdomain>

From: Krzysztof Hałasa <khc@pm.waw.pl>

Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
---
 drivers/net/wan/lmc/var.h |    7 -------
 1 files changed, 0 insertions(+), 7 deletions(-)

diff --git a/drivers/net/wan/lmc/var.h b/drivers/net/wan/lmc/var.h
index 09b901c..f5b233c 100644
--- a/drivers/net/wan/lmc/var.h
+++ b/drivers/net/wan/lmc/var.h
@@ -21,8 +21,6 @@
 
 #define lmc_csrptr_t		unsigned long
 
-#define LMC_REG_RANGE		0x80
-
 #define LMC_PRINTF_FMT		"%s"
 #define LMC_PRINTF_ARGS		(sc->lmc_device->name)
 
@@ -38,8 +36,6 @@
 #define LMC_CSR_READ(sc, csr)		inl((sc)->lmc_csrs.csr)
 #define LMC_CSR_WRITE(sc, reg, val)	outl((val), (sc)->lmc_csrs.reg)
 
-#define DELAY(n)		SLOW_DOWN_IO
-
 #define lmc_delay()		inl(sc->lmc_csrs.csr_9)
 
 /* This macro sync's up with the mii so that reads and writes can take place */
@@ -328,9 +324,6 @@ struct card {
 	u32 check;			/* Structure check */
 };
 
-#define LMC_PCI_TIME		1
-#define LMC_EXT_TIME		0
-
 #define PKT_BUF_SZ		1542
 
 /* CSR5 settings */
-- 
1.7.1.1


^ permalink raw reply related

* [PATCH 19/29] LMC: Remove sc->check. We don't do such checks in drivers.
From: Krzysztof Halasa @ 2010-07-31 15:05 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <m3fwyzzpjf.fsf@intrepid.localdomain>

From: Krzysztof Hałasa <khc@pm.waw.pl>

Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
---
 drivers/net/wan/lmc/main.c |    9 ---------
 drivers/net/wan/lmc/var.h  |    2 --
 2 files changed, 0 insertions(+), 11 deletions(-)

diff --git a/drivers/net/wan/lmc/main.c b/drivers/net/wan/lmc/main.c
index 6698aa9..56631d4 100644
--- a/drivers/net/wan/lmc/main.c
+++ b/drivers/net/wan/lmc/main.c
@@ -575,14 +575,6 @@ static void lmc_watchdog(unsigned long data)
 
 	spin_lock_irqsave(&sc->lock, flags);
 
-	if (sc->check != 0xBEAFCAFE) {
-		printk(KERN_ERR
-		       "LMC: Corrupt net_device struct, breaking out\n");
-		spin_unlock_irqrestore(&sc->lock, flags);
-		return;
-	}
-
-
 	/* Make sure the tx jabber and rx watchdog are off,
 	 * and the transmit and receive processes are running.
 	 */
@@ -761,7 +753,6 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
 	dev->tx_queue_len = 100;
 	sc->netdev = dev;
 	sc->name = dev->name;
-	sc->check = 0xBEAFCAFE;
 	dev->base_addr = pci_resource_start(pdev, 0);
 	dev->irq = pdev->irq;
 	pci_set_drvdata(pdev, dev);
diff --git a/drivers/net/wan/lmc/var.h b/drivers/net/wan/lmc/var.h
index a3e9aee..10cb70d 100644
--- a/drivers/net/wan/lmc/var.h
+++ b/drivers/net/wan/lmc/var.h
@@ -320,8 +320,6 @@ struct card {
 
 	u8 failed_ring;			/* Failure cases */
 	u8 failed_recv_alloc;
-
-	u32 check;			/* Structure check */
 };
 
 #define PKT_BUF_SZ		1542
-- 
1.7.1.1


^ permalink raw reply related

* [PATCH 21/29] LMC: I'm sure Linux doesn't swap PCI subsystem device and vendor IDs.
From: Krzysztof Halasa @ 2010-07-31 15:05 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <m3fwyzzpjf.fsf@intrepid.localdomain>

From: Krzysztof Hałasa <khc@pm.waw.pl>

Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
---
 drivers/net/wan/lmc/main.c |   10 ----------
 1 files changed, 0 insertions(+), 10 deletions(-)

diff --git a/drivers/net/wan/lmc/main.c b/drivers/net/wan/lmc/main.c
index 2229e0a..bd7def0 100644
--- a/drivers/net/wan/lmc/main.c
+++ b/drivers/net/wan/lmc/main.c
@@ -77,8 +77,6 @@ static int LMC_PKT_BUF_SZ = 1542;
 static DEFINE_PCI_DEVICE_TABLE(lmc_pci_tbl) = {
 	{ PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP_FAST,
 	  PCI_VENDOR_ID_LMC, PCI_ANY_ID },
-	{ PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_TULIP_FAST,
-	  PCI_ANY_ID, PCI_VENDOR_ID_LMC },
 	{ 0 }
 };
 
@@ -773,14 +771,6 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
 	sc->cardtype = LMC_CARDTYPE_UNKNOWN;
 	sc->timing = LMC_CTL_CLOCK_SOURCE_EXT;
 
-	/*
-	 * Check either the subvendor or the subdevice, some systems reverse
-	 * the setting in the bois, seems to be version and arch dependent?
-	 * Fix the error, exchange the two values
-	 */
-	if ((subdevice = pdev->subsystem_device) == PCI_VENDOR_ID_LMC)
-		subdevice = pdev->subsystem_vendor;
-
 	switch (subdevice) {
 	case PCI_DEVICE_ID_LMC_HSSI:
 		dev_info(&pdev->dev, "%s = LMC HSSI\n", dev->name);
-- 
1.7.1.1


^ permalink raw reply related

* [PATCH 24/29] LMC: Remove unused variables.
From: Krzysztof Halasa @ 2010-07-31 15:05 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <m3fwyzzpjf.fsf@intrepid.localdomain>

From: Krzysztof Hałasa <khc@pm.waw.pl>

Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
---
 drivers/net/wan/lmc/var.h |   15 +--------------
 1 files changed, 1 insertions(+), 14 deletions(-)

diff --git a/drivers/net/wan/lmc/var.h b/drivers/net/wan/lmc/var.h
index 93c21fe..206f77a 100644
--- a/drivers/net/wan/lmc/var.h
+++ b/drivers/net/wan/lmc/var.h
@@ -272,15 +272,9 @@ struct card {
 	struct lmc_extra_statistics extra_stats;
 	struct net_device *netdev;
 
-	int hang, rxdesc, bad_packet, some_counter;
-	u32 txgo;
 	struct lmc_regfile_t csrs;
-	volatile u32 txtick;
-	volatile u32 rxtick;
-	u32 flags;
 	u32 intrmask;		/* our copy of csr_intr */
 	u32 cmdmode;		/* our copy of csr_cmdmode */
-	u32 busmode;		/* our copy of csr_busmode */
 	u32 gpio_io;		/* state of in/out settings */
 	u32 gpio;		/* state of outputs */
 	struct sk_buff *txq[LMC_TXDESCS];
@@ -289,12 +283,10 @@ struct card {
 	volatile struct tulip_desc_t txring[LMC_TXDESCS];
 	unsigned int next_rx, next_tx;
 	volatile unsigned int taint_tx, taint_rx;
-	int tx_start, txfull;
-	int txbusy;
+	int txfull;
 	u16 miireg16;
 	int ok;
 	int last_link_status;
-	u32 last_frameerr;
 	struct media *media;
 	struct timer_list timer;
 	struct control ictl;
@@ -304,18 +296,13 @@ struct card {
 	int tx_TimeoutDisplay;
 	unsigned int last_taint_tx;
 	int lasttx_packets;
-	u32 tx_clockState;
 	u32 crcSize;
 	LMC_XINFO xinfo;
-	char yel, blue, red; /* for T1 and DS3 */
 	char timing;		/* for HSSI and SSI */
 	int got_irq;
 
 	char last_led_err[4];
 
-	u32 last_int;
-	u32 num_int;
-
 	spinlock_t lock;
 
 	u8 failed_ring;			/* Failure cases */
-- 
1.7.1.1


^ permalink raw reply related

* [PATCH 20/29] LMC: Remove unused sc->board_idx.
From: Krzysztof Halasa @ 2010-07-31 15:05 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <m3fwyzzpjf.fsf@intrepid.localdomain>

From: Krzysztof Hałasa <khc@pm.waw.pl>

Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
---
 drivers/net/wan/lmc/main.c |    1 -
 drivers/net/wan/lmc/var.h  |    1 -
 2 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wan/lmc/main.c b/drivers/net/wan/lmc/main.c
index 56631d4..2229e0a 100644
--- a/drivers/net/wan/lmc/main.c
+++ b/drivers/net/wan/lmc/main.c
@@ -836,7 +836,6 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
 	/* reset clock */
 	LMC_CSR_WRITE(sc, csr_gp_timer, 0xFFFFFFFFUL);
 
-	sc->board_idx = cards_found++;
 	sc->extra_stats.check = STATCHECK;
 	sc->extra_stats.version_size = (DRIVER_VERSION << 16) +
 		sizeof(sc->netdev->stats) + sizeof(sc->extra_stats);
diff --git a/drivers/net/wan/lmc/var.h b/drivers/net/wan/lmc/var.h
index 10cb70d..729ab9f 100644
--- a/drivers/net/wan/lmc/var.h
+++ b/drivers/net/wan/lmc/var.h
@@ -267,7 +267,6 @@ typedef struct lmc_xinfo {
 /* forward decl */
 struct card {
 	char *name;
-	u8 board_idx;
 	struct lmc_extra_statistics extra_stats;
 	struct net_device *netdev;
 
-- 
1.7.1.1


^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox