fixed_phy seems to be broken, this simple workaround fixes it
authorMatteo Croce <rootkit85@yahoo.it>
Wed, 5 Mar 2008 12:59:54 +0000 (12:59 +0000)
committerMatteo Croce <rootkit85@yahoo.it>
Wed, 5 Mar 2008 12:59:54 +0000 (12:59 +0000)
SVN-Revision: 10545

target/linux/ar7/patches-2.6.24/150-cpmac_up_and_running.diff [new file with mode: 0644]

diff --git a/target/linux/ar7/patches-2.6.24/150-cpmac_up_and_running.diff b/target/linux/ar7/patches-2.6.24/150-cpmac_up_and_running.diff
new file mode 100644 (file)
index 0000000..6a0f42d
--- /dev/null
@@ -0,0 +1,27 @@
+--- linux-2.6.24.2/drivers/net/cpmac.c 2008-03-05 13:45:56.000000000 +0100
++++ linux-2.6.24.2/drivers/net/cpmac.c 2008-03-05 13:46:24.000000000 +0100
+@@ -841,7 +841,8 @@
+       int new_state = 0;
+       spin_lock(&priv->lock);
+-      if (priv->phy->link) {
++      if (1 /* priv->phy->link */ ) {
++              netif_carrier_on(dev);
+               netif_start_queue(dev);
+               if (priv->phy->duplex != priv->oldduplex) {
+                       new_state = 1;
+@@ -853,11 +854,11 @@
+                       priv->oldspeed = priv->phy->speed;
+               }
+-              if (!priv->oldlink) {
++              /*if (!priv->oldlink) {
+                       new_state = 1;
+-                      priv->oldlink = 1;
++                      priv->oldlink = 1;*/
+                       netif_schedule(dev);
+-              }
++              /*}*/
+       } else if (priv->oldlink) {
+               netif_stop_queue(dev);
+               new_state = 1;