Ulrich Eckhardt wrote:
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
Yes, I put that in over four years ago. There was no mii code at
all, that I could find, at that time. I wanted to separate the mii
code out of the mac driver but it never happened.
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.
For 2.6, I was told someone is working on something ...
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.
That's a possibility too but more code needs to be added to mii.c. I
actually revisited the code yesterday and was trying to figure out
how to clean it up. But someone told me that there is 2.6 work in
progress to do this so I decided to just wait. Maybe someone knows
more about it.