| From 71bc5d94061516c4e70303570128797bcf768b10 Mon Sep 17 00:00:00 2001 |
| From: Jussi Kivilinna <jussi.kivilinna@mbnet.fi> |
| Date: Tue, 10 Jan 2012 06:40:23 +0000 |
| Subject: asix: fix setting custom MAC address on Asix 88178 devices |
| |
| From: Jussi Kivilinna <jussi.kivilinna@mbnet.fi> |
| |
| commit 71bc5d94061516c4e70303570128797bcf768b10 upstream. |
| |
| In kernel v3.2 initialization sequence for Asix 88178 devices was changed so |
| that hardware is reseted on every time interface is brought up (ifconfig up), |
| instead just at USB probe time. This causes problem with setting custom MAC |
| address to device as ax88178_reset causes reload of MAC address from EEPROM. |
| |
| This patch fixes the issue by rewriting MAC address at end of ax88178_reset. |
| |
| Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi> |
| Acked-by: Grant Grundler <grundler@chromium.org> |
| Cc: Allan Chou <allan@asix.com.tw> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/net/usb/asix.c | 7 +++++++ |
| 1 file changed, 7 insertions(+) |
| |
| --- a/drivers/net/usb/asix.c |
| +++ b/drivers/net/usb/asix.c |
| @@ -1316,6 +1316,13 @@ static int ax88178_reset(struct usbnet * |
| if (ret < 0) |
| return ret; |
| |
| + /* Rewrite MAC address */ |
| + memcpy(data->mac_addr, dev->net->dev_addr, ETH_ALEN); |
| + ret = asix_write_cmd(dev, AX_CMD_WRITE_NODE_ID, 0, 0, ETH_ALEN, |
| + data->mac_addr); |
| + if (ret < 0) |
| + return ret; |
| + |
| ret = asix_write_rx_ctl(dev, AX_DEFAULT_RX_CTL); |
| if (ret < 0) |
| return ret; |