mirror of https://gitee.com/openkylin/linux.git
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: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
705cbbbe9c
commit
dee56d1477
|
@ -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)
|
||||||
/* 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,
|
||||||
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);
|
||||||
|
|
Loading…
Reference in New Issue