I've been debugging a problem in above mentioned file and found several cases
of redundant, unused or even buggy code in the handling of the MII there.
Also, there is a comment that suggests that I'm not the only one:
* All of the PHY code really should be detached from the MAC
An important point there is that much of the code is in fact not even specific
to the au1x00 ethernet adapters. I found driver code for the MII I wanted to
drive in sis900.c, and it looked almost similar to the code in au1x00.c.
Simply adding the device/vendor IDs to a map and choosing the first of the
drivers there got my ethernet running.
Now, question is how to proceed. There are basically three ways I would go:
1. Leave it like it is, because someone else is working on it. I'd just post a
mini-patch that binds my device to an existing driver.
2. Remove the dead/unused parts from au1x00.c, try to restructure and document
the code so it is easier to maintain in the future.
3. Split off the MII handling code or, better, reuse the facility already
provided by drivers/net/mii.c. This would mean a significant rewrite of
au1x00.c, including probably breaking things on the way.