]> err.no Git - linux-2.6/commitdiff
[PATCH] pm3386: add hook for setting MAC address
authorLennert Buytenhek <buytenh@wantstofly.org>
Wed, 23 Nov 2005 11:49:47 +0000 (12:49 +0100)
committerJeff Garzik <jgarzik@pobox.com>
Thu, 1 Dec 2005 07:25:26 +0000 (02:25 -0500)
When we reset the pm3386, it loses its internally stored MAC addresses
that were programmed into it by the bootloader (and are used by the
hardware for the generation of PAUSE frames.)  Add a hook to allow
setting these addresses so that we can program them back by hand.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
drivers/net/ixp2000/pm3386.c
drivers/net/ixp2000/pm3386.h

index 267b6bd5f79f714dfd15c5327bb8b644665f4fdc..870b486f5deafb0789eb1a3e4007fcf84766672c 100644 (file)
@@ -215,6 +215,13 @@ void pm3386_get_mac(int port, u8 *mac)
        mac[5] = (temp >> 8) & 0xff;
 }
 
+void pm3386_set_mac(int port, u8 *mac)
+{
+       pm3386_port_reg_write(port, 0x308, 0x100, (mac[1] << 8) | mac[0]);
+       pm3386_port_reg_write(port, 0x309, 0x100, (mac[3] << 8) | mac[2]);
+       pm3386_port_reg_write(port, 0x30a, 0x100, (mac[5] << 8) | mac[4]);
+}
+
 static u32 pm3386_get_stat(int port, u16 base)
 {
        u32 value;
index 55ecb1834219c8c50a4e4b9107becf7a3f3e86a6..117f50afcdeabee7d55132d95404bbdc67d47348 100644 (file)
@@ -15,6 +15,7 @@
 void pm3386_reset(void);
 void pm3386_init_port(int port);
 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);
 int pm3386_is_link_up(int port);
 void pm3386_enable_rx(int port);