Jeff, I took your feedback, and cleaned up both the patch and more. Attached are two seperate diffs - one for adding the natsemi to pci_ids.h, and one against natsemi.c I'll do my best to narrate the dif hunk by hunk. I hope this is sufficient for you to send it on, now :) * comments * update release info * add strings for 83816 * formatting for 8-space tab disply * increase RX Queue to eliminate some Something Wicked messages * Define the timer frequency * formatting * formatting * strings for 83816 * use new PCI ID (depends on pci_ids.h patch * formatting * add constants for magic register's values * rename an enum for consistancy * rename all 'bit' enums so they are named the same as their register, and are found in the same order * Add a comment about the default interrupt state * Add some missing but needed bits definitions (TXConfig...) * more bits * constants for Silicon Revisions * more bits for descriptor status * store SRR in private struct * formatting * add mdio_write function protoype * formatting * magic number removal * call eeprom reload during probe - BEFORE chip reset * use MII defines for mdio * magic number removal * save SRR * moved bits * cleanup mdio_read to look more like mdio_write * add mdio_write * add defines for bits to save across a reset * expand natsemi_reset() to save and restore state that would be nuked by a chip reset * add a natsemi_reload_eeprom() func * use a constant for netdev timer * formatting * magic number removal * use the stored SRR * poll for AnegDone for a bit during open() * use magic register constants * comments * cleanup for WoL * magic numbers * no need to blast mac-address, natsemi_reset should be doing it now * magic numbers * print if we got a WoL event * add the phy reset checker to catch spurious PHY resets * use mod_timer * formatting * magic numbers * increase a debug level (didn't check into netif_msg yet - later * magic numbers * use mdio_read where applicable * magic * get rid of "Something Wicked" and print what it actually is * fixup bit definitions * only do SOPASS for rev D or up * remove FIXME comment * More SOPASS for rev D * Magic numbers * use MII defines where appropriate * use mdio_read()/mdio_write() * WoL cleanup Detailed enough? Please don't make me break it down further :) -- Tim Hockin Systems Software Engineer Sun Microsystems, Cobalt Server Appliances thockin@sun.com