mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
ieee802154: introduce wpan_phy_supported
This patch introduce the wpan_phy_supported struct for wpan_phy. There is currently no way to check if a transceiver can handle IEEE 802.15.4 complaint values. With this struct we can check before if the transceiver supports these values before sending to driver layer. Signed-off-by: Alexander Aring <[email protected]> Suggested-by: Phoebe Buckheister <[email protected]> Acked-by: Varka Bhadram <[email protected]> Cc: Alan Ott <[email protected]> Signed-off-by: Marcel Holtmann <[email protected]>
This commit is contained in:
parent
32b23550ad
commit
72f655e44d
7 changed files with 30 additions and 26 deletions
|
|
@ -56,8 +56,8 @@ static int ieee802154_nl_fill_phy(struct sk_buff *msg, u32 portid,
|
|||
nla_put_u8(msg, IEEE802154_ATTR_CHANNEL, phy->current_channel))
|
||||
goto nla_put_failure;
|
||||
for (i = 0; i < 32; i++) {
|
||||
if (phy->channels_supported[i])
|
||||
buf[pages++] = phy->channels_supported[i] | (i << 27);
|
||||
if (phy->supported.channels[i])
|
||||
buf[pages++] = phy->supported.channels[i] | (i << 27);
|
||||
}
|
||||
if (pages &&
|
||||
nla_put(msg, IEEE802154_ATTR_CHANNEL_PAGE_LIST,
|
||||
|
|
|
|||
|
|
@ -248,7 +248,7 @@ nl802154_send_wpan_phy_channels(struct cfg802154_registered_device *rdev,
|
|||
|
||||
for (page = 0; page <= IEEE802154_MAX_PAGE; page++) {
|
||||
if (nla_put_u32(msg, NL802154_ATTR_SUPPORTED_CHANNEL,
|
||||
rdev->wpan_phy.channels_supported[page]))
|
||||
rdev->wpan_phy.supported.channels[page]))
|
||||
return -ENOBUFS;
|
||||
}
|
||||
nla_nest_end(msg, nl_page);
|
||||
|
|
@ -626,7 +626,7 @@ static int nl802154_set_channel(struct sk_buff *skb, struct genl_info *info)
|
|||
|
||||
/* check 802.15.4 constraints */
|
||||
if (page > IEEE802154_MAX_PAGE || channel > IEEE802154_MAX_CHANNEL ||
|
||||
!(rdev->wpan_phy.channels_supported[page] & BIT(channel)))
|
||||
!(rdev->wpan_phy.supported.channels[page] & BIT(channel)))
|
||||
return -EINVAL;
|
||||
|
||||
return rdev_set_channel(rdev, page, channel);
|
||||
|
|
|
|||
Loading…
Reference in a new issue