Add a pm3386 hook for disabling/enabling the SERDES carrier, so that
we can disable it when the interface is administratively downed, and
enable it when it is upped.

Signed-off-by: Lennert Buytenhek <[EMAIL PROTECTED]>

diff -urN linux-2.6.15-rc1.upstream.orig/drivers/net/ixp2000/pm3386.c 
linux-2.6.15-rc1.upstream/drivers/net/ixp2000/pm3386.c
--- linux-2.6.15-rc1.upstream.orig/drivers/net/ixp2000/pm3386.c 2005-11-22 
12:49:53.000000000 +0100
+++ linux-2.6.15-rc1.upstream/drivers/net/ixp2000/pm3386.c      2005-11-22 
12:50:24.000000000 +0100
@@ -250,6 +250,11 @@
        /* @@@ Add other stats.  */
 }
 
+void pm3386_set_carrier(int port, int state)
+{
+       pm3386_port_reg_write(port, 0x703, 0x10, state ? 0x1001 : 0x0000);
+}
+
 int pm3386_is_link_up(int port)
 {
        u16 temp;
diff -urN linux-2.6.15-rc1.upstream.orig/drivers/net/ixp2000/pm3386.h 
linux-2.6.15-rc1.upstream/drivers/net/ixp2000/pm3386.h
--- linux-2.6.15-rc1.upstream.orig/drivers/net/ixp2000/pm3386.h 2005-11-22 
12:49:53.000000000 +0100
+++ linux-2.6.15-rc1.upstream/drivers/net/ixp2000/pm3386.h      2005-11-22 
12:50:24.000000000 +0100
@@ -17,6 +17,7 @@
 void pm3386_get_mac(int port, u8 *mac);
 void pm3386_set_mac(int port, u8 *mac);
 void pm3386_get_stats(int port, struct net_device_stats *stats);
+void pm3386_set_carrier(int port, int state);
 int pm3386_is_link_up(int port);
 void pm3386_enable_rx(int port);
 void pm3386_disable_rx(int port);
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to