marius c266b6114e MFC: if_pcn.c 1.76, 1.81, 1.82; if_pcnreg.h 1.15
- In detach method, move if_free() after bus_teardown_intr().
- Clear the PCN_MISC_ASEL bit so the media port can be actually set
  via the PCN_CSR_MODE register. Along with sys/dev/mii/nsphy.c 1.23.2.3
  this fixes the case of certain Am79c971-based HP cards and on-board
  ones in IBM machines reporting link but not actually passing any
  traffic. [1]
- Add support for the internal 10baseT PHY, which actually is used on
  at least said HP cards (together with an external DP83840A in a
  multiple PHYs configuration). With cards that don't make use of this
  internal PHY it'll also show up in FreeBSD but not cause any harm.
  This is still missing support for multiple PHYs configuration using
  the internal 100baseTX and/or HomePNA PHYs together with external
  PHYs or multiple external PHYs though.
- Allow multiple (external) PHYs with Am79C97{2,6}, which actually
  only support external PHYs (besides not connectable internal ones
  which respond at the usual addresses, but which don't hurt if we
  let them show up) and don't wedge when isolating PHYs. Actually,
  this change special cases limiting PHYs to Am79C97{3,5,8}, for
  which this driver doesn't implement swiching between the internal
  and external PHYs, yet, and Am79C971, where isolating the external
  PHY (at least in case it's a DP83840A) wedges the chip. Together
  with sys/dev/mii/acphy.c rev. 1.16.2.5 this adds support for the
  100baseFX port of AT-2700 series adaptors, which use two AC101,
  one for the copper and one for the fibre port (there might be
  variants which only use one PHY though).
- In pcn_ifmedia_upd() call pcn_reset() as otherwise the Am79C971 of
  at least said HP cards can wedge when switching from the internal
  10baseT PHY to the external PHY. This means that we need to also
  initialize and possibly start the chip again in pcn_ifmedia_upd(),
  which isn't that bad though as for setting the media port the chip
  has to be powered down or stopped anyway and unlike documented
  doesn't take effect until the next initialization.
- Don't bother to set if_mtu to ETHERMTU, ether_ifattach() does that.

PR:		27995, 25959, 72966 (likely) [1]
2007-02-25 19:02:01 +00:00
..
2006-12-21 12:57:06 +00:00
2007-01-30 14:16:24 +00:00
2006-03-17 21:30:57 +00:00
2006-03-17 21:30:57 +00:00
2005-09-29 18:52:21 +00:00
2006-03-17 21:30:57 +00:00
2005-10-09 04:11:20 +00:00
2005-09-26 19:36:38 +00:00
2006-03-17 21:30:57 +00:00
2005-11-08 16:05:56 +00:00
2006-03-17 21:30:57 +00:00
2005-11-15 19:59:04 +00:00
2006-08-17 00:13:07 +00:00
2006-10-04 19:09:43 +00:00
2005-01-07 05:01:24 +00:00
2005-02-24 21:32:56 +00:00