aue_miibus_statchg() unconditionally programmed the chip speed register
from mii_media_active without checking link validity. If statchg was
called during auto-negotiation before it completed, mii_media_active
would not yet be IFM_100_TX, causing the chip to be forced to 10Mbps.
Additionally, aue_tick() never called aue_miibus_statchg() to update
the hardware after auto-negotiation completed, so the chip stayed at
10Mbps even after the PHY negotiated 100Mbps.
Fix by adding IFM_ACTIVE|IFM_AVALID link validation to statchg before
programming the speed register, and by having tick call statchg to
re-evaluate and program the hardware, matching the axe(4) driver.
Tested with Belkin USB 10/100 Ethernet Adapter F5D5050.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>