From: Olaf Kirch <okir@suse.de>
To: netdev@oss.sgi.com
Subject: [PATCH] natsemi: long cable, short cable
Date: Tue, 8 Feb 2005 15:18:49 +0100 [thread overview]
Message-ID: <20050208141849.GC23971@suse.de> (raw)
The current version of the natsemi driver comes with a workaround
for a hardware problem that causes link failures on short cables.
Unfortunately, this workaround causes massive link failures on _long_
cables (270-300ft). This patch adds a module parameter to disable
the workaround if required.
Signed-off-by: Olaf Kirch <okir@suse.de>
Index: linux-2.6.10/drivers/net/natsemi.c
===================================================================
--- linux-2.6.10.orig/drivers/net/natsemi.c
+++ linux-2.6.10/drivers/net/natsemi.c
@@ -186,6 +186,7 @@ static int debug = -1;
/* Maximum events (Rx packets, etc.) to handle at each interrupt. */
static int max_interrupt_work = 20;
static int mtu;
+static int no_cable_magic = 0;
/* Maximum number of multicast addresses to filter (vs. rx-all-multicast).
This chip uses a 512 element hash table based on the Ethernet CRC. */
@@ -257,6 +258,7 @@ module_param(debug, int, 0);
module_param(rx_copybreak, int, 0);
module_param_array(options, int, NULL, 0);
module_param_array(full_duplex, int, NULL, 0);
+module_param(no_cable_magic, int, 0);
MODULE_PARM_DESC(max_interrupt_work,
"DP8381x maximum events handled per interrupt");
MODULE_PARM_DESC(mtu, "DP8381x MTU (all boards)");
@@ -266,6 +268,9 @@ MODULE_PARM_DESC(rx_copybreak,
MODULE_PARM_DESC(options,
"DP8381x: Bits 0-3: media type, bit 17: full duplex");
MODULE_PARM_DESC(full_duplex, "DP8381x full duplex setting(s) (1)");
+MODULE_PARM_DESC(no_cable_magic,
+ "DP8381x: set no_cable_magic=1 to disable magic workaround for short cables "
+ "(may help with long cables:-)");
/*
Theory of Operation
@@ -1578,6 +1583,9 @@ static void do_cable_magic(struct net_de
struct netdev_private *np = netdev_priv(dev);
void __iomem *ioaddr = ns_ioaddr(dev);
+ if (no_cable_magic)
+ return;
+
if (dev->if_port != PORT_TP)
return;
@@ -1623,6 +1631,9 @@ static void undo_cable_magic(struct net_
struct netdev_private *np = netdev_priv(dev);
void __iomem * ioaddr = ns_ioaddr(dev);
+ if (no_cable_magic)
+ return;
+
if (dev->if_port != PORT_TP)
return;
--
Olaf Kirch | --- o --- Nous sommes du soleil we love when we play
okir@suse.de | / | \ sol.dhoop.naytheet.ah kin.ir.samse.qurax
next reply other threads:[~2005-02-08 14:18 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-02-08 14:18 Olaf Kirch [this message]
2005-02-11 22:07 ` [PATCH] natsemi: long cable, short cable Jeff Garzik
-- strict thread matches above, loose matches on Subject: below --
2005-02-15 4:35 Gary Spiess
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050208141849.GC23971@suse.de \
--to=okir@suse.de \
--cc=netdev@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).