From: Jason Lunz <lunz@falooley.org>
To: Jeff Garzik <jgarzik@mandrakesoft.com>
Cc: netdev@oss.sgi.com,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Donald Becker <becker@scyld.com>,
Richard Gooch <rgooch@ras.ucalgary.ca>,
"Patrick R. McManus" <mcmanus@ducksong.com>,
edward_peng@dlink.com.tw
Subject: PATCH: sundance #5 (variable per-interface MTU support)
Date: Thu, 19 Sep 2002 17:03:48 -0400 [thread overview]
Message-ID: <20020919210348.GC17492@orr.falooley.org> (raw)
In-Reply-To: <3D8A25D1.3060300@mandrakesoft.com>
[-- Attachment #1: Type: text/plain, Size: 78 bytes --]
This is a straightforward merge of variable mtu from donald's driver.
Jason
[-- Attachment #2: sundance-5 --]
[-- Type: text/plain, Size: 2987 bytes --]
--- sundance-ioops.c Thu Sep 19 16:58:44 2002
+++ sundance-mtu.c Thu Sep 19 17:00:30 2002
@@ -65,7 +65,6 @@
static int debug = 1; /* 1 normal messages, 0 quiet .. 7 verbose. */
/* Maximum events (Rx packets, etc.) to handle at each interrupt. */
static int max_interrupt_work = 0;
-static int mtu;
/* Maximum number of multicast addresses to filter (vs. rx-all-multicast).
Typical is a 64 element hash table based on the Ethernet CRC. */
static int multicast_filter_limit = 32;
@@ -162,13 +161,11 @@
MODULE_LICENSE("GPL");
MODULE_PARM(max_interrupt_work, "i");
-MODULE_PARM(mtu, "i");
MODULE_PARM(debug, "i");
MODULE_PARM(rx_copybreak, "i");
MODULE_PARM(media, "1-" __MODULE_STRING(MAX_UNITS) "s");
MODULE_PARM(flowctrl, "i");
MODULE_PARM_DESC(max_interrupt_work, "Sundance Alta maximum events handled per interrupt");
-MODULE_PARM_DESC(mtu, "Sundance Alta MTU (all boards)");
MODULE_PARM_DESC(debug, "Sundance Alta debug level (0-5)");
MODULE_PARM_DESC(rx_copybreak, "Sundance Alta copy breakpoint for copy-only-tiny-frames");
MODULE_PARM_DESC(flowctrl, "Sundance Alta flow control [0|1]");
@@ -333,7 +330,7 @@
MACCtrl0 = 0x50,
MACCtrl1 = 0x52,
StationAddr = 0x54,
- MaxTxSize = 0x5A,
+ MaxFrameSize = 0x5A,
RxMode = 0x5c,
MIICtrl = 0x5e,
MulticastFilter0 = 0x60,
@@ -461,6 +458,7 @@
IntrDrvRqst | IntrTxDone | StatsMax | \
LinkChange)
+static int change_mtu(struct net_device *dev, int new_mtu);
static int eeprom_read(long ioaddr, int location);
static int mdio_read(struct net_device *dev, int phy_id, int location);
static void mdio_write(struct net_device *dev, int phy_id, int location, int value);
@@ -567,11 +565,9 @@
dev->do_ioctl = &netdev_ioctl;
dev->tx_timeout = &tx_timeout;
dev->watchdog_timeo = TX_TIMEOUT;
+ dev->change_mtu = &change_mtu;
pci_set_drvdata(pdev, dev);
- if (mtu)
- dev->mtu = mtu;
-
i = register_netdev(dev);
if (i)
goto err_out_unmap_rx;
@@ -694,6 +690,15 @@
return -ENODEV;
}
+static int change_mtu(struct net_device *dev, int new_mtu)
+{
+ if ((new_mtu < 68) || (new_mtu > 8191)) /* Set by RxDMAFrameLen */
+ return -EINVAL;
+ if (netif_running(dev))
+ return -EBUSY;
+ dev->mtu = new_mtu;
+ return 0;
+}
/* Read the EEPROM and MII Management Data I/O (MDIO) interfaces. */
static int __devinit eeprom_read(long ioaddr, int location)
@@ -823,6 +828,10 @@
writeb(dev->dev_addr[i], ioaddr + StationAddr + i);
/* Initialize other registers. */
+ writew(dev->mtu + 14, ioaddr + MaxFrameSize);
+ if (dev->mtu > 2047)
+ writel(readl(ioaddr + ASICCtrl) | 0x0C, ioaddr + ASICCtrl);
+
/* Configure the PCI bus bursts and FIFO thresholds. */
if (dev->if_port == 0)
@@ -955,7 +964,7 @@
np->cur_rx = np->cur_tx = 0;
np->dirty_rx = np->dirty_tx = 0;
- np->rx_buf_sz = (dev->mtu <= 1500 ? PKT_BUF_SZ : dev->mtu + 32);
+ np->rx_buf_sz = (dev->mtu <= 1500 ? PKT_BUF_SZ : dev->mtu + 36);
/* Initialize all Rx descriptors. */
for (i = 0; i < RX_RING_SIZE; i++) {
next prev parent reply other threads:[~2002-09-19 21:03 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-28 18:56 [PATCH] 2.4.20-pre sundance.c cleanups Jason Lunz
2002-08-28 23:13 ` Jason Lunz
2002-09-19 3:53 ` Richard Gooch
2002-09-19 4:14 ` Jason Lunz
2002-09-19 4:25 ` [PATCH] 2.4.20-pre sundance.c update Jeff Garzik
2002-09-19 4:56 ` Jason Lunz
2002-09-19 5:11 ` Jeff Garzik
2002-09-19 13:23 ` Donald Becker
2002-09-19 17:12 ` PATCH: sundance #2 Jeff Garzik
2002-09-19 17:29 ` Donald Becker
2002-09-19 18:13 ` Jeff Garzik
2002-09-19 18:18 ` PATCH: sundance #3 Jeff Garzik
2002-09-19 19:30 ` PATCH: sundance #4 Jeff Garzik
2002-09-19 20:51 ` PATCH: sundance #4a Jason Lunz
2002-09-19 21:09 ` Jeff Garzik
2002-09-19 20:52 ` PATCH: sundance #4b Jason Lunz
2002-09-19 21:14 ` Jeff Garzik
2002-09-19 21:03 ` Jason Lunz [this message]
2002-09-19 21:19 ` PATCH: sundance #5 (variable per-interface MTU support) Jeff Garzik
2002-09-19 22:28 ` Donald Becker
2002-09-19 21:35 ` PATCH: [my] sundance #5 Jeff Garzik
2002-09-20 0:18 ` PATCH: sundance #6 Jeff Garzik
2002-09-19 6:42 ` [PATCH] 2.4.20-pre sundance.c cleanups Richard Gooch
2002-09-19 7:11 ` Keith Owens
2002-09-19 12:58 ` Donald Becker
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=20020919210348.GC17492@orr.falooley.org \
--to=lunz@falooley.org \
--cc=becker@scyld.com \
--cc=edward_peng@dlink.com.tw \
--cc=jgarzik@mandrakesoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mcmanus@ducksong.com \
--cc=netdev@oss.sgi.com \
--cc=rgooch@ras.ucalgary.ca \
/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).