Hello,
Been lurking for some time, some great progress being made here [beer goes here

]. That said, I built a 3.1.8 kernel off of WarheadsSE git repo for my PogoPlug Pro, and I noticed that the gmac driver does not work(interface comes up, no traffic in or out), after some lost sleep and hair

I figured out what was wrong. Overall, the gmac driver needs some overhaul; the issue was cause by the interface speed never being set, gmac barely utilizes ethtool_cmd. Patch below:
$this->bbcode_second_pass_code('', '
--- ox820-linux-3.1/drivers/net/gmac/gmac-napi.c 2012-01-10 22:21:45.000000000 +0000
+++ linux-3.1.8/drivers/net/gmac/gmac-napi.c 2012-01-16 19:29:30.000000000 +0000
@@ -848,15 +848,25 @@ static void watchdog_timer_action(unsign
int duplex_changed;
int speed_changed;
int pause_changed;
+ struct ethtool_cmd ecmd = { .cmd = ETHTOOL_GSET };
// Interpret the PHY/link state.
if (priv->phy_force_negotiation || (priv->watchdog_timer_state == WDS_RESETTING)) {
mii_check_link(&priv->mii);
ready = 1;
} else {
- /*duplex_changed = mii_check_media_ex(&priv->mii, 1,
- priv->mii_init_media, &speed_changed, &pause_changed,
- link_state_change_callback, priv);*/
+ duplex_changed = mii_check_media(&priv->mii, 1, 1);
+ mii_ethtool_gset(&priv->mii, &ecmd);
+ if (ethtool_cmd_speed(&(priv->ethtool_cmd)) != ecmd.speed) {
+ ethtool_cmd_speed_set(&(priv->ethtool_cmd), ecmd.speed);
+ speed_changed = 1;
+ }
+ if ((duplex_changed || speed_changed) || (duplex_changed && speed_changed)) {
+ link_state_change_callback(1, priv);
+ } else {
+ link_state_change_callback(0, priv);
+ }
+
priv->mii_init_media = 0;
ready = netif_carrier_ok(priv->netdev);
}
')
Thats it for now...
elazar