Commit 0b85c0eb authored by Lennert Buytenhek's avatar Lennert Buytenhek Committed by Jeff Garzik

[PATCH] pm3386: add hook for setting MAC address

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: default avatarLennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
parent 7ed98bfd
...@@ -215,6 +215,13 @@ void pm3386_get_mac(int port, u8 *mac) ...@@ -215,6 +215,13 @@ void pm3386_get_mac(int port, u8 *mac)
mac[5] = (temp >> 8) & 0xff; 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) static u32 pm3386_get_stat(int port, u16 base)
{ {
u32 value; u32 value;
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
void pm3386_reset(void); void pm3386_reset(void);
void pm3386_init_port(int port); void pm3386_init_port(int port);
void pm3386_get_mac(int port, u8 *mac); 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_get_stats(int port, struct net_device_stats *stats);
int pm3386_is_link_up(int port); int pm3386_is_link_up(int port);
void pm3386_enable_rx(int port); void pm3386_enable_rx(int port);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment