- Don't add IFM_NONE when used in combination with pcn(4) as for MII   loopback to work PCnet chips additionally need to be placed into   external loopback mode which pcn(4) doesn't do so far. - In nsphy_service() just use if_dname instead of determining the name   of the parent NIC via device_get_name(device_get_parent(sc->mii_dev)). - Don't set MIIF_NOISOLATE, except for when used in combination with a   NIC that wedges when isolating the PHYs, so nsphy(4) can be used in   configurations with multiple PHYs. - Use mii_phy_add_media() instead of mii_add_media() so the latter can   be eventually retired. - Take advantage of mii_phy_setmedia() (requires the MIIF_FORCEANEG   added in sys/dev/mii/mii_physubr.c 1.26, sys/dev/mii/miivar.h 1.19). - Implement a separate nsphy_reset(). There are two reasons for this:   1) This PHY can take an inordinate amount of time to reset if media      is attached; under fairly normal circumstances up to nearly one      second. This is because it appears to go through an implicit auto-      negotiation cycle as part of the reset.   2) During reset and auto-negotiation, the BMCR will clear the reset      bit before the process is complete. It will return 0 until the      process is complete and it's safe to access the PHY again.
- Don't add IFM_NONE when used in combination with pcn(4) as for MII
  loopback to work PCnet chips additionally need to be placed into
  external loopback mode which pcn(4) doesn't do so far.
- In nsphy_service() just use if_dname instead of determining the name
  of the parent NIC via device_get_name(device_get_parent(sc->mii_dev)).
- Don't set MIIF_NOISOLATE, except for when used in combination with a
  NIC that wedges when isolating the PHYs, so nsphy(4) can be used in
  configurations with multiple PHYs.
- Use mii_phy_add_media() instead of mii_add_media() so the latter can
  be eventually retired.
- Take advantage of mii_phy_setmedia() (requires the MIIF_FORCEANEG
  added in sys/dev/mii/mii_physubr.c 1.26, sys/dev/mii/miivar.h 1.19).
- Implement a separate nsphy_reset(). There are two reasons for this:
  1) This PHY can take an inordinate amount of time to reset if media
     is attached; under fairly normal circumstances up to nearly one
     second. This is because it appears to go through an implicit auto-
     negotiation cycle as part of the reset.
  2) During reset and auto-negotiation, the BMCR will clear the reset
     bit before the process is complete. It will return 0 until the
     process is complete and it's safe to access the PHY again.

  This is the first of two changes required to make the combination of
  Am79c971 and DP83840A found on certain HP cards and on-board in IBM
  machines work.
- Fix some whitespace nits.

Based on:	NetBSD (except for the first and second item)
MFC after:	2 weeks

jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase