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