Commit dee56d14 authored by Alexander Aring's avatar Alexander Aring Committed by Marcel Holtmann

mac802154: add support for perm_extended_addr

This patch adding support for a perm extended address. This is useful
when a device supports an eeprom with a programmed static extended address.
If a device doesn't support such eeprom or serial registers then the
driver should generate a random extended address.
Signed-off-by: default avatarAlexander Aring <alex.aring@gmail.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent 705cbbbe
...@@ -57,6 +57,8 @@ struct wpan_phy { ...@@ -57,6 +57,8 @@ struct wpan_phy {
u8 csma_retries; u8 csma_retries;
s8 frame_retries; s8 frame_retries;
__le64 perm_extended_addr;
bool lbt; bool lbt;
s32 cca_ed_level; s32 cca_ed_level;
......
...@@ -410,6 +410,7 @@ ieee802154_setup_sdata(struct ieee802154_sub_if_data *sdata, int type) ...@@ -410,6 +410,7 @@ ieee802154_setup_sdata(struct ieee802154_sub_if_data *sdata, int type)
/* for compatibility, actual default is 3 */ /* for compatibility, actual default is 3 */
sdata->mac_params.frame_retries = -1; sdata->mac_params.frame_retries = -1;
ieee802154_be64_to_le64(&sdata->extended_addr, sdata->dev->dev_addr);
sdata->pan_id = cpu_to_le16(IEEE802154_PANID_BROADCAST); sdata->pan_id = cpu_to_le16(IEEE802154_PANID_BROADCAST);
sdata->short_addr = cpu_to_le16(IEEE802154_ADDR_BROADCAST); sdata->short_addr = cpu_to_le16(IEEE802154_ADDR_BROADCAST);
...@@ -471,6 +472,9 @@ ieee802154_if_add(struct ieee802154_local *local, const char *name, ...@@ -471,6 +472,9 @@ ieee802154_if_add(struct ieee802154_local *local, const char *name,
goto err; goto err;
} }
ieee802154_le64_to_be64(ndev->perm_addr,
&local->hw.phy->perm_extended_addr);
memcpy(ndev->dev_addr, ndev->perm_addr, IEEE802154_EXTENDED_ADDR_LEN);
/* TODO check this */ /* TODO check this */
SET_NETDEV_DEV(ndev, &local->phy->dev); SET_NETDEV_DEV(ndev, &local->phy->dev);
sdata = netdev_priv(ndev); sdata = netdev_priv(ndev);
......
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