[U-Boot] [PATCH v2] usb: eth: asix88179: add ability to modify MAC address

This patch enables U-Boot to modify the MAC address of the AX88179. Tested on RECS5250 (similar to Arndale5250)
Signed-off-by: Rene Griessl rgriessl@cit-ec.uni-bielefeld.de ---
Changes for v2: - removed memcpy
drivers/usb/eth/asix88179.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/drivers/usb/eth/asix88179.c b/drivers/usb/eth/asix88179.c index b8ca720..0ef85db 100644 --- a/drivers/usb/eth/asix88179.c +++ b/drivers/usb/eth/asix88179.c @@ -271,6 +271,19 @@ static int asix_read_mac(struct eth_device *eth) return 0; }
+static int asix_write_mac(struct eth_device *eth) +{ + struct ueth_data *dev = (struct ueth_data *)eth->priv; + int ret; + + ret = asix_write_cmd(dev, AX_ACCESS_MAC, AX_NODE_ID, ETH_ALEN, + ETH_ALEN, eth->enetaddr); + if (ret < 0) + debug("Failed to set MAC address: %02x\n", ret); + + return ret; +} + static int asix_basic_reset(struct ueth_data *dev) { struct asix_private *dev_priv = (struct asix_private *)dev->dev_priv; @@ -686,6 +699,7 @@ int ax88179_eth_get_info(struct usb_device *dev, struct ueth_data *ss, eth->send = asix_send; eth->recv = asix_recv; eth->halt = asix_halt; + eth->write_hwaddr = asix_write_mac; eth->priv = ss;
if (asix_basic_reset(ss))

On Monday, January 12, 2015 at 05:51:16 PM, Rene Griessl wrote:
This patch enables U-Boot to modify the MAC address of the AX88179. Tested on RECS5250 (similar to Arndale5250)
Signed-off-by: Rene Griessl rgriessl@cit-ec.uni-bielefeld.de
Changes for v2:
- removed memcpy
Hi!
what was the reason for the memcpy() in the first place please ?
Otherwise,
Reviewed-by: Marek Vasut marex@denx.de
Best regards, Marek Vasut

Am 12.01.2015 um 17:54 schrieb Marek Vasut:
On Monday, January 12, 2015 at 05:51:16 PM, Rene Griessl wrote:
This patch enables U-Boot to modify the MAC address of the AX88179. Tested on RECS5250 (similar to Arndale5250)
Signed-off-by: Rene Griessl rgriessl@cit-ec.uni-bielefeld.de
Changes for v2:
- removed memcpy
Hi!
what was the reason for the memcpy() in the first place please ?
I copied the function from the asix.c driver. There it is needed for the cache aligned buffer. But in this case the alignment is already implemented in the write function. So you were right, it is not needed here!
Otherwise,
Reviewed-by: Marek Vasut marex@denx.de
Best regards, Marek Vasut

On Monday, January 12, 2015 at 06:07:27 PM, René Griessl wrote:
Am 12.01.2015 um 17:54 schrieb Marek Vasut:
On Monday, January 12, 2015 at 05:51:16 PM, Rene Griessl wrote:
This patch enables U-Boot to modify the MAC address of the AX88179. Tested on RECS5250 (similar to Arndale5250)
Signed-off-by: Rene Griessl rgriessl@cit-ec.uni-bielefeld.de
Changes for v2:
- removed memcpy
Hi!
what was the reason for the memcpy() in the first place please ?
I copied the function from the asix.c driver. There it is needed for the cache aligned buffer. But in this case the alignment is already implemented in the write function. So you were right, it is not needed here!
OK, thanks!
Applied to u-boot-usb/next , thanks!
Best regards, Marek Vasut

On Mon, Jan 12, 2015 at 11:37 AM, Marek Vasut marex@denx.de wrote:
On Monday, January 12, 2015 at 06:07:27 PM, René Griessl wrote:
Am 12.01.2015 um 17:54 schrieb Marek Vasut:
On Monday, January 12, 2015 at 05:51:16 PM, Rene Griessl wrote:
This patch enables U-Boot to modify the MAC address of the AX88179. Tested on RECS5250 (similar to Arndale5250)
Signed-off-by: Rene Griessl rgriessl@cit-ec.uni-bielefeld.de
Changes for v2:
- removed memcpy
Hi!
what was the reason for the memcpy() in the first place please ?
I copied the function from the asix.c driver. There it is needed for the cache aligned buffer. But in this case the alignment is already implemented in the write function. So you were right, it is not needed here!
OK, thanks!
Applied to u-boot-usb/next , thanks!
Looks good... Thanks, guys!
-Joe
participants (4)
-
Joe Hershberger
-
Marek Vasut
-
Rene Griessl
-
René Griessl