ieee802154: atusb: make sure we set a randaom extended address if fetching fails
In the unlikely case were the firmware is new enough but the actual USB command still fails make sure we set a random address and return. Signed-off-by: Stefan Schmidt <stefan@osg.samsung.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>hifive-unleashed-5.1
parent
05a974efa4
commit
2fd2b550a5
|
@ -737,8 +737,11 @@ static int atusb_set_extended_addr(struct atusb *atusb)
|
||||||
ret = atusb_control_msg(atusb, usb_rcvctrlpipe(usb_dev, 0),
|
ret = atusb_control_msg(atusb, usb_rcvctrlpipe(usb_dev, 0),
|
||||||
ATUSB_EUI64_READ, ATUSB_REQ_FROM_DEV, 0, 0,
|
ATUSB_EUI64_READ, ATUSB_REQ_FROM_DEV, 0, 0,
|
||||||
buffer, IEEE802154_EXTENDED_ADDR_LEN, 1000);
|
buffer, IEEE802154_EXTENDED_ADDR_LEN, 1000);
|
||||||
if (ret < 0)
|
if (ret < 0) {
|
||||||
dev_err(&usb_dev->dev, "failed to fetch extended address\n");
|
dev_err(&usb_dev->dev, "failed to fetch extended address, random address set\n");
|
||||||
|
ieee802154_random_extended_addr(&atusb->hw->phy->perm_extended_addr);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
memcpy(&extended_addr, buffer, IEEE802154_EXTENDED_ADDR_LEN);
|
memcpy(&extended_addr, buffer, IEEE802154_EXTENDED_ADDR_LEN);
|
||||||
/* Check if read address is not empty and the unicast bit is set correctly */
|
/* Check if read address is not empty and the unicast bit is set correctly */
|
||||||
|
|
Loading…
Reference in New Issue