Commit Graph

29 Commits

Author SHA1 Message Date
thorpej b017898534 Get flags passed down to PHY drivers correctly. This was done on
an adhoc basis in a couple of PHY drivers, this fixes it more generally.

Per a discussion w/ Cliff Neighbors <cliff@allegronetworks.com>.
2002-03-25 20:51:24 +00:00
lukem 8b7bb91219 add RCSID 2001-11-13 07:38:28 +00:00
thorpej 89893e42b7 ANSI'ify. 2001-08-25 18:04:01 +00:00
thorpej ea1aed7db2 Make the number of ticks between auto-negotiation tries PHY-specific,
and default every PHY to 5 seconds (what we used before).  If we find
Gig-E media on a PHY, bump it to 10 seconds, since it can take 5
seconds just to negotiate a Gig-E link.
2001-05-31 16:02:29 +00:00
thorpej 49014bf59f Restructure the PHY entry points to use a structure of entry points
instead of discrete function pointers, and extend this to include
a "reset" entry point.  Make sure any PHY-specific reset routine is
always used, and provide one for the LXT-970 which disables MII
interrupts (as is done for a few other PHYs we have drivers for).
2000-07-04 03:28:59 +00:00
thorpej ad61d101be Factor out the tick handling code into a common function, and send
rt_ifmsg's when the link speed or link status changes.
2000-03-06 20:56:56 +00:00
thorpej 22fe15d7b4 Let mii_phy_setmedia() handle the IFM_AUTO case, too. 2000-02-02 23:34:56 +00:00
thorpej 8923ca0b00 Make PHY drivers provide a pointer to their status routine, and add
a generic mii_phy_status() that calls back into the PHY.  It doesn't
do anything interesting yet, but it will soon.
2000-02-02 17:50:43 +00:00
thorpej eed75dbc26 Don't dry to diving MIIF_NOISOLATE in the PHY drivers. Instead, pass
flags down from the parent to child vi mii_attach().
2000-02-02 17:09:38 +00:00
thorpej 84dc99fdea Bring some order to the chaos which was the MII code function naming
"conventions".
2000-02-02 08:05:26 +00:00
thorpej c74e0a8db2 Add detachment support to the MII layer. 2000-01-27 16:44:30 +00:00
thorpej bca88a28c8 Add mii_down(), which is used by MAC drivers to inform PHYs that the
interface is now down.  PHYs use this to cancel pending asynchronous
operations.
1999-11-12 18:12:59 +00:00
thorpej 8fc600c3b1 Clean up the code that adds media a little, and make media selection
table-driven in preparation for some other changes to be made.
1999-11-03 22:30:32 +00:00
thorpej 83f9ab3c87 Implement asynchronous autonegotiation when driven by the MII tick
(one-second clock).  Prevents .5s delays every 5 seconds when the interface
is up but there is no link.  Fixes PR 7361.
1999-04-23 04:24:32 +00:00
thorpej 2a17544c19 Place the essentially common "ticks" and "active" members into the
mii_softc (generic phy goo), and just switch all of the PHY drivers
(except tlphy, which really does have special stuff) to use an mii_softc
instead of a private one.
1998-11-05 00:19:32 +00:00
thorpej f66039cbce Routines common between the Uknown PHY driver (forthcoming) and other
PHY drivers.  This file has ukphy_status(), which is what PHY drivers
should use if media detection is done by decoding NWay.
1998-11-04 23:59:51 +00:00
thorpej ad8b66c7c8 Return a higher-priority match than 1. These are specific drivers. This
allows for a "generic unknown PHY" driver to be implemented.
1998-11-04 23:44:09 +00:00
thorpej 51da8fc39f Factor out the common reset code. Use the NOISOLATE flags as appropriate
to prevent a PHY from being isolated in the event the MAC can't deal with
this.  (3Com 3c905B-TX, and Intel i82557).
1998-11-04 23:28:15 +00:00
thorpej b097394468 Factor out some common code from all the PHY drivers (autonegotiation, for
now.)
1998-11-04 23:07:15 +00:00
thorpej 844622de9c Define and use generic PHY read/write reg macros. 1998-11-04 22:15:40 +00:00
thorpej 19fd5d178f 3Com PHY can't be isolated, so don't allow IFM_NONE. 1998-11-03 00:18:18 +00:00
thorpej 1f074c785d When doing a media change service request, use the media word from the
current ifmedia_entry, not from the user-supplied media word.  The
user supplied media word may not necessarily match e.g. instance (if
the parent MAC driver is intentionally ignoring instance if its expecting
multiple PHYs with non-overlapping media, e.g. TI ThunderLAN) the media
word we are actually switching to.

Since PHY drivers use `instance' to determine if they should isolate
themselves, the ThunderLAN PHY was sometimes being incorrectly isolated
when in fact the user attempted to select that PHY (for e.g. BNC operation).
1998-11-02 22:31:36 +00:00
thorpej afbf922a93 Don't print the revision of the 3c905B-TX's internal PHY; it's meaningless. 1998-10-23 01:52:50 +00:00
thorpej 322ba3cc84 Make sure the parent is an `ex'. The 3c905B-TX's internal PHY isn't
the only one w/ non-existent ID registers.  SIGH.
1998-10-23 01:43:09 +00:00
fvdl 17c31a8a21 Add ETHER|NONE to default capabilities, or we'll panic when attaching
the forthcoming ex driver.
1998-08-28 12:50:36 +00:00
thorpej d95a6e9dec Make a variable name reflect a register name. 1998-08-12 22:27:42 +00:00
thorpej 981f0cd0d0 If autonegotiation is enabled in the BMSR, and the BMCR doens't claim
that it has completed, report "none" as the active media type.
1998-08-12 20:56:34 +00:00
thorpej a24f6f77bf Ugh, don't print out "autonegotiation failed to complete" if it did.
We get these once a second if we're in auto mode, the interface is up,
and there's no carrier.
1998-08-12 20:46:47 +00:00
thorpej 5bec554354 Driver for the 3Com internal PHY, found on 3c905B-TX cards (and maybe
some 3c905-TX?).  Partially from Frank van der Linden.
1998-08-12 08:46:20 +00:00