blob: 3111685c2da476caffe22da4e009b56d5d664b65 [file] [log] [blame]
2002-01-28 Stefan Rompf <srompf@isg.de>,
Jeff Garzik <jgarzik@mandrakesoft.com>
* 21142.c (t21142_timer): Use return value of
tulip_check_duplex() to indicate to system whether or not
carrier is present. Use carrier presence/absence to determine
when next the 21142 media timer should check for link beat.
* timer (tulip_timer): Un-comment-out calls to
netif_carrier_{on,off}, as there is now value in
reporting link beta information to userspace.
2002-01-28 Pavel Roskin <proski@gnu.org>
* tulip_core.c (tulip_init_one): Use tp->eeprom instead of
allocating a buffer for EEPROM copy on the stack.
* tulip_core.c: Add support for Conexant RS7112 (a.k.a. CN7112)
chip.
* tulip.h: Likewise. Increase EEPROM_SIZE to 512 bytes to
accomodate EEPROM on Conexant RS7112.
2002-02-07 Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
* tulip_core (tulip_pci_tbl[]):
Add PCI id for comet tulip clone.
2001-12-11 Jeff Garzik <jgarzik@mandrakesoft.com>
* eeprom.c, timer.c, media.c, tulip_core.c:
Remove 21040 and 21041 chip support.
2001-11-13 David S. Miller <davem@redhat.com>
* tulip_core.c (tulip_mwi_config): Kill unused label early_out.
2001-11-06 Richard Mortimer <richm@oldelvet.netscapeonline.co.uk>
* tulip_core.c: Correct set of values to mask out of csr0,
for DM9102A chips. Limit burst/alignment of DM9102A chips
on Sparcs.
2001-11-06 Jun Sun <jsun@mvista.com>
* tulip_core.c: Support finding MAC address on
two MIPS boards, DDB5476 and DDB5477.
2001-11-06 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
* Makefile, tulip.h, tulip_core.c, pnic2.c, 21142.c:
Fixes for PNIC II support.
2001-11-06 David S. Miller <davem@redhat.com>
* tulip_core.c: Support reading MAC address from
Sparc OBP property local-mac-address.
2001-07-17 Erik A. Hendriks <hendriks@lanl.gov>
* 21142.c: Merge fix from tulip.c 0.92w which prevents the
overwriting of csr6 bits we want to preserve.
2001-07-10 Jeff Golds <jgolds@resilience.com>
* tulip_core.c: Fix two comments
2001-07-06 Stephen Degler <sdegler@degler.net>
* media.c:
The media selection process at the end of NWAY is busted
because for the case of MII/SYM it needs to be:
csr13 <- 0
csr14 <- 0
csr6 <- the value calculated is okay.
In the other media cases csr14 is computed by
t21142_csr14val[dev->if_port], which seems ok. The value of
zero as opposed to 3FFFFF comes straight from appendix D of the
21143 data book, and it makes logical sense because you're
bypassing all the SIA interface when you usa MII or SYM (see
figure 1-1 in the data book if your're visually oriented)
2001-07-03 Jeff Golds <jgolds@resilience.com>
* tulip_core.c (tulip_clean_tx_ring):
Clear status for in-progress Tx's, and count
Tx errors for all packets being released.
2001-06-16 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip.h, tulip_core.c:
Integrate MMIO support from devel branch, but default
it to off for stable kernel and driver series.
2001-06-16 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c (tulip_init_one):
Free descriptor rings on error.
2001-06-16 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c (tulip_mwi_config, tulip_init_one):
Large update to csr0 bus configuration code. This is not stable
yet, so it is only conditionally enabled, via CONFIG_TULIP_MWI.
2001-06-16 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c:
Initialize timer in tulip_init_one and tulip_down,
not in tulip_up.
2001-06-14 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c:
- Update tulip_suspend, tulip_resume for new PCI PM API.
- Surround suspend/resume code with CONFIG_PM.
2001-06-12 Jeff Golds <jgolds@resilience.com>
* tulip_core.c:
- Reset sw ring ptrs in tulip_up. Fixes PM resume case.
- Clean rx and tx rings on device down.
2001-06-05 David Miller <davem@redhat.com>
* tulip_core (set_rx_mode): Do not use set_bit
on an integer variable. Also fix endianness issue.
2001-06-04 Jeff Garzik <jgarzik@mandrakesoft.com>
* interrupt.c:
Simplify rx processing when CONFIG_NET_HW_FLOWCONTROL is
active, and in the process fix a bug where flow control
and low load caused rx not to be acknowledged properly.
2001-06-01 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip.h:
- Remove tulip_outl_csr helper, redundant.
- Add tulip_start_rxtx inline helper.
- tulip_stop_rxtx helper: Add synchronization. Always use current
csr6 value, instead of tp->csr6 value or value passed as arg.
- tulip_restart_rxtx helper: Add synchronization. Always
use tp->csr6 for desired mode, not value passed as arg.
- New RxOn, TxOn, RxTx constants for csr6 modes.
- Remove now-redundant constants csr6_st, csr6_sr.
* 21142.c, interrupt.c, media.c, pnic.c, tulip_core.c:
Update for above rxtx helper changes.
* interrupt.c:
- whitespace cleanup around #ifdef CONFIG_NET_HW_FLOWCONTROL,
convert tabs to spaces.
- Move tp->stats.rx_missed_errors update outside the ifdef.
2001-05-18 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c: Added ethtool support.
ETHTOOL_GDRVINFO ioctl only, for now.
2001-05-14 Robert Olsson <Robert.Olsson@data.slu.se>
* Restored HW_FLOWCONTROL from Linux 2.1 series tulip (ANK)
plus Jamal's NETIF_RX_* feedback control.
2001-05-14 Robert Olsson <Robert.Olsson@data.slu.se>
* Added support for 21143's Interrupt Mitigation.
Jamal original instigator.
2001-05-14 Robert Olsson <Robert.Olsson@data.slu.se>
* tulip_refill_rx prototype added to tulip.h
2001-05-13 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c: Remove HAS_PCI_MWI flag from Comet, untested.
2001-05-12 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c, tulip.h: Remove Conexant PCI id, no chip
docs are available to fix problems with support.
2001-05-12 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c (tulip_init_one): Do not call
unregister_netdev in error cleanup. Remnant of old
usage of init_etherdev.
2001-05-12 Jeff Garzik <jgarzik@mandrakesoft.com>
* media.c (tulip_find_mii): Simple write the updated BMCR
twice, as it seems the best thing to do for both broken and
sane chips.
If the mii_advert value, as read from MII_ADVERTISE, is zero,
then generate a value we should advertise from the capability
bits in BMSR.
Fill in tp->advertising for all cases.
Just to be safe, clear all unwanted bits.
2001-05-12 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c (private_ioctl): Fill in tp->advertising
when advertising value is changed by the user.
2001-05-12 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c: Mark Comet chips as needed the updated MWI
csr0 configuration.
2001-05-12 Jeff Garzik <jgarzik@mandrakesoft.com>
* media.c, tulip_core.c: Move MII scan into
from inlined inside tulip_init_one to new function
tulip_find_mii in media.c.
2001-05-12 Jeff Garzik <jgarzik@mandrakesoft.com>
* media.c (tulip_check_duplex):
Only restart Rx/Tx engines if they are active
(and csr6 changes)
2001-05-12 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c (tulip_mwi_config):
Clamp values read from PCI cache line size register to
values acceptable to tulip chip. Done for safety and
-almost- certainly unneeded.
2001-05-11 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c (tulip_init_one):
Instead of unconditionally enabling autonegotiation, disable
autonegotiation if not using the default port. Further,
flip the nway bit immediately, and then update the
speed/duplex in a separate MII transaction. We do this
because some boards require that nway be disabled separately,
before media selection is forced.
TODO: Investigate if we can simply write the same value
to BMCR twice, to avoid setting unnecessarily changing
phy settings.
2001-05-11 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip.h, tulip_core.c: If HAS_PCI_MWI is set for a
given chip, adjust the csr0 values not according to
provided values but according to system cache line size.
Currently cache alignment is matched as closely to cache
line size as possible. Currently programmable burst limit
is set (ie. never unlimited), and always equal to cache
alignment and system cache size. Currently MWI bit is set
only if the MWI bit is present in the PCI command register.
2001-05-11 Jeff Garzik <jgarzik@mandrakesoft.com>
* media.c (tulip_select_media):
For media types 1 and 3, only use the provided eeprom
advertising value if it is non-zero.
(tulip_check_duplex):
Do not exit ASAP if full_duplex_lock is set. This
ensures that the csr6 value is written if an update
is needed.
2001-05-10 Jeff Garzik <jgarzik@mandrakesoft.com>
Merge PNIC-II-specific stuff from Becker's tulip.c:
* tulip.h, 21142.c (pnic2_lnk_change): new function
* tulip_core.c (tulip_init_one): use it
* tulip_core.c (tulip_tx_timeout): Add specific
debugging for PNIC2.
2001-05-10 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c (tulip_init_one): Print out
tulip%d instead of PCI device number, for
consistency.
2001-05-10 Jeff Garzik <jgarzik@mandrakesoft.com>
* Merge changes from Becker's tulip.c:
Fix bugs in ioctl.
Fix several bugs by distinguishing between MII
and SYM advertising values.
Set CSR14 autonegotiation bit for media types 2 and 4,
where the SIA CSR setup values are not provided.
2001-05-10 Jeff Garzik <jgarzik@mandrakesoft.com>
* media.c (tulip_select_media): Only update MII
advertising value if startup arg < 2.
* tulip.h: Do not enable CSR13/14/15 autoconfiguration
for 21041.
* tulip_core.c:
21041: add specific code for reset, and do not set CAC bit
When resetting media, for media table type 11 media, pass
value 2 as 'startup' arg to select_media, to avoid updating
MII advertising value.
2001-05-10 Jeff Garzik <jgarzik@mandrakesoft.com>
* pnic.c (pnic_check_duplex): remove
pnic.c (pnic_lnk_change, pnic_timer): use
tulip_check_duplex not pnic_check_duplex.
* media.c (tulip_check_duplex):
Clean up to use symbolic names instead of numeric constants.
Set TxThreshold mode as necessary as well as clearing it.
Update csr6 if csr6 changes, not simply if duplex changes.
(found by Manfred Spraul)
2001-05-10 Jeff Garzik <jgarzik@mandrakesoft.com>
* 21142.c, eeprom.c, tulip.h, tulip_core.c:
Remove DPRINTK as another, better method of
debug message printing is available.
2001-05-09 Jeff Garzik <jgarzik@mandrakesoft.com>
* 21142.c (t21142_lnk_change): Pass arg startup==1
to tulip_select_media, in order to force csr13 to be
zeroed out prior to going to full duplex mode. Fixes
autonegotiation on a quad-port Znyx card.
(from Stephen Dengler)
2001-05-09 Russell King <rmk@arm.linux.org.uk>
* interrupt.c: Better PCI bus error reporting.
2001-04-03 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c: Now that dev->name is only available late
in the probe, insert a hack to replace a not-evaluated
"eth%d" string with an evaluated "tulip%d" string.
Also, remove obvious comment and an indentation cleanup.
2001-04-03 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c: If we are a module, always print out the
version string. If we are built into the kernel, only print
the version string if at least one tulip is detected.
2001-04-03 Jeff Garzik <jgarzik@mandrakesoft.com>
Merged from Becker's tulip.c 0.92t:
* tulip_core.c: Add support for Conexant LANfinity.
2001-04-03 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c: Only suspend/resume if the interface
is up and running. Use alloc_etherdev and pci_request_regions.
Spelling fix.
2001-04-03 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c: Remove code that existed when one or more of
the following defines existed. These defines were never used
by normal users in practice: TULIP_FULL_DUPLEX,
TULIP_DEFAULT_MEDIA, and TULIP_NO_MEDIA_SWITCH.
* tulip.h, eeprom.c: Move EE_* constants from tulip.h to eeprom.c.
* tulip.h, media.c: Move MDIO_* constants from tulip.h to media.c.
* media.c: Add barrier() to mdio_read/write's PNIC status check
loops.
2001-04-03 Jeff Garzik <jgarzik@mandrakesoft.com>
Merged from Becker's tulip.c 0.92t:
* tulip.h: Add MEDIA_MASK constant for bounding medianame[]
array lookups.
* eeprom.c, media.c, timer.c, tulip_core.c: Use it.
* media.c, tulip_core.c: mdio_{read,write} cleanup. Since this
is called [pretty much] directly from ioctl, we mask
read/write arguments to limit the values passed.
Added mii_lock. Added comet_miireg2offset and better
Comet-specific mdio_read/write code. Pay closer attention
to the bits we set in ioctl. Remove spinlocks from ioctl,
they are in mdio_read/write now. Use mask to limit
phy number in tulip_init_one's MII scan.
2001-04-03 Jeff Garzik <jgarzik@mandrakesoft.com>
Merged from Becker's tulip.c 0.92t:
* 21142.c, tulip_core.c: PNIC2 MAC address and NWay fixes.
* tulip.h: Add FullDuplex constant, used in above change.
2001-04-03 Jeff Garzik <jgarzik@mandrakesoft.com>
* timer.c: Do not call netif_carrier_{on,off}, it is not used in
the main tree. Leave code in, disabled, as markers for future
carrier notification.
2001-04-03 Jeff Garzik <jgarzik@mandrakesoft.com>
Merged from Becker's tulip.c 0.92t, except for the tulip.h
whitespace cleanup:
* interrupt.c: If Rx stops, make sure to update the
multicast filter before restarting.
* tulip.h: Add COMET_MAC_ADDR feature flag, clean up flags.
Add Accept* Rx mode bit constants.
Add mc_filter[] to driver private struct.
* tulip_core.c: Add new Comet PCI id 0x1113:0x9511.
Add COMET_MAC_ADDR feature flag to comet entry in board info array.
Prefer to test COMET_MAC_ADDR flag to testing chip_id for COMET,
when dealing with the Comet's MAC address.
Enable Tx underrun recovery for Comet chips.
Use new Accept* constants in set_rx_mode.
Prefer COMET_MAC_ADDR flag test to chip_id test in set_rx_mode.
Store built mc_filter for later use in intr handler by Comets.
2001-04-03 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c: Use tp->cur_tx when building the
setup frame, instead of assuming that the setup
frame is always built in slot zero. This case is
hit during PM resume.
2001-04-03 Jeff Garzik <jgarzik@mandrakesoft.com>
* *.c: Update file headers (copyright, urls, etc.)
* Makefile: re-order to that chip-specific modules on own line
* eeprom.c: BSS/zero-init cleanup (Andrey Panin)
* tulip_core.c: merge medianame[] update from tulip.c.
Additional arch-specific rx_copybreak, csr0 values. (various)
2001-02-20 Jeff Garzik <jgarzik@mandrakesoft.com>
* media.c (tulip_select_media): No need to initialize
new_csr6, all cases initialize it properly.
2001-02-18 Manfred Spraul <manfred@colorfullife.com>
* interrupt.c (tulip_refill_rx): Make public.
If PNIC chip stops due to lack of Rx buffers, restart it.
(tulip_interrupt): PNIC doesn't have a h/w timer, emulate
with software timers.
* pnic.c (pnic_check_duplex): New function, PNIC-specific
version of tulip_check_duplex.
(pnic_lnk_change): Call pnic_check_duplex. If we use an
external MII, then we mustn't use the internal negotiation.
(pnic_timer): Support Rx refilling on work overflow in
interrupt handler, as PNIC doesn't support a h/w timer.
* tulip_core.c (tulip_tbl[]): Modify default csr6
2001-02-11 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c (tulip_init_one): Call pci_enable_device
to ensure wakeup/resource assignment before checking those
values.
(tulip_init_one): Replace PCI ids with constants from pci_id.h.
(tulip_suspend, tulip_resume, tulip_remove_one): Call
pci_power_on/off (commented out for now).
2001-02-10 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip.h: Add CFDD_xxx bits for Tulip power management
* tulip_core.c (tulip_set_power_state): New function,
manipulating Tulip chip power state where supported.
(tulip_up, tulip_down, tulip_init_one): Use it.
2001-02-10 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c (tulip_tx_timeout): Call netif_wake_queue
to ensure the next Tx is always sent to us.
2001-01-27 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c (tulip_remove_one): Fix mem leak by freeing
tp->media_tbl. Add check for !dev, reformat code appropriately.
2001-01-27 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_tbl[]: Comment all entries to make order and chip_id
relationship more clear.
* tulip_pci_tbl[]: Add new Accton PCI id (COMET chipset).
2001-01-16 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c: static vars no longer explicitly
initialized to zero.
* eeprom.c (tulip_read_eeprom): Make sure to delay between
EE_ENB and EE_ENB|EE_SHIFT_CLK. Merged from becker tulip.c.
2001-01-05 Peter De Schrijver <p2@mind.be>
* eeprom.c (tulip_parse_eeprom): Interpret a bit more of 21142
extended format type 3 info blocks in a tulip SROM.
2001-01-03 Matti Aarnio <matti.aarnio@zmailer.org>
* media.c (tulip_select_media): Support media types 5 and 6
2001-??-?? ??
* tulip_core.c: Add comment about LanMedia needing
a different driver.
Enable workarounds for early PCI chipsets.
Add IA64 csr0 support, update HPPA csr0 support.
2000-12-17 Alan Cox <alan@redhat.com>
* eeprom.c, timer.c, tulip.h, tulip_core.c: Merge support
for the Davicom's quirks into the main tulip.
Patch by Tobias Ringstrom
2000-11-08 Jim Studt <jim@federated.com>
* eeprom.c (tulip_parse_eeprom): Check array bounds for
medianame[] and block_name[] arrays to avoid oops due
to bad values returned from hardware.
2000-11-02 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c (set_rx_mode): This is synchronized via
dev->xmit_lock, so only the queueing of the setup frame needs to
be locked, against tulip_interrupt.
2000-11-02 Alexey Kuznetov <kuznet@ms2.inr.ac.ru>
* timer.c (tulip_timer): Call netif_carrier_{on,off} to report
link state to the rest of the kernel, and userspace.
* interrupt.c (tulip_interrupt): Remove tx_full.
* tulip.h: Likewise.
* tulip_core.c (tulip_init_ring, tulip_start_xmit, set_rx_mode):
Likewise.
2000-10-18 Jeff Garzik <jgarzik@mandrakesoft.com>
* tulip_core.c: (tulip_init_one) Print out ethernet interface
on error. Print out a message when pci_enable_device fails.
Handle DMA alloc failure.
2000-10-18 Jeff Garzik <jgarzik@mandrakesoft.com>
* Makefile: New file.
* tulip_core.c (tulip_init_one): Correct error messages
on PIO/MMIO region reserve failure.
(tulip_init_one) Add new check to ensure that PIO region is
sufficient for our needs.