Link State Change Handling

If you look at trunk/sys/dev_qnx/speedo/mii.c, you will notice very little difference between it and the io-net version.

An important point to emphasize is that with io-pkt, the native driver doesn't set up a timer that directly calls the housekeeping function to probe the link state every two seconds, as is done in io-net.

Instead, in io-pkt, a callout is created — we can see the callout_init() function call in speedo_init_phy(), and we can see the callout_msec() function call in speedo_init() to arm the internal io-pkt timer.

It's worthwhile noting that a callout timer is a one-shot thing — it's rearmed every time, at the end of the speedo_MDI_MonitorPhy() function call. If you don't do that, it will be called only once!