Lines Matching refs:rdev
60 struct cfg802154_registered_device *rdev; in __cfg802154_wpan_dev_from_attrs() local
80 list_for_each_entry(rdev, &cfg802154_rdev_list, list) { in __cfg802154_wpan_dev_from_attrs()
85 if (have_wpan_dev_id && rdev->wpan_phy_idx != wpan_phy_idx) in __cfg802154_wpan_dev_from_attrs()
88 list_for_each_entry(wpan_dev, &rdev->wpan_dev_list, list) { in __cfg802154_wpan_dev_from_attrs()
114 struct cfg802154_registered_device *rdev = NULL, *tmp; in __cfg802154_rdev_from_attrs() local
125 rdev = cfg802154_rdev_by_wpan_phy_idx( in __cfg802154_rdev_from_attrs()
146 if (rdev && tmp != rdev) in __cfg802154_rdev_from_attrs()
148 rdev = tmp; in __cfg802154_rdev_from_attrs()
168 if (rdev && tmp != rdev) in __cfg802154_rdev_from_attrs()
171 rdev = tmp; in __cfg802154_rdev_from_attrs()
175 if (!rdev) in __cfg802154_rdev_from_attrs()
180 return rdev; in __cfg802154_rdev_from_attrs()
253 struct cfg802154_registered_device **rdev, in nl802154_prepare_wpan_dev_dump() argument
273 *rdev = wpan_phy_to_rdev((*wpan_dev)->wpan_phy); in nl802154_prepare_wpan_dev_dump()
275 cb->args[0] = (*rdev)->wpan_phy_idx + 1; in nl802154_prepare_wpan_dev_dump()
286 *rdev = wpan_phy_to_rdev(wpan_phy); in nl802154_prepare_wpan_dev_dump()
289 list_for_each_entry(tmp, &(*rdev)->wpan_dev_list, list) { in nl802154_prepare_wpan_dev_dump()
309 nl802154_finish_wpan_dev_dump(struct cfg802154_registered_device *rdev) in nl802154_finish_wpan_dev_dump() argument
346 nl802154_send_wpan_phy_channels(struct cfg802154_registered_device *rdev, in nl802154_send_wpan_phy_channels() argument
358 rdev->wpan_phy.supported.channels[page])) in nl802154_send_wpan_phy_channels()
368 struct cfg802154_registered_device *rdev) in nl802154_put_capabilities() argument
370 const struct wpan_phy_supported *caps = &rdev->wpan_phy.supported; in nl802154_put_capabilities()
391 if (rdev->wpan_phy.flags & WPAN_PHY_FLAG_CCA_ED_LEVEL) { in nl802154_put_capabilities()
407 if (rdev->wpan_phy.flags & WPAN_PHY_FLAG_TXPOWER) { in nl802154_put_capabilities()
422 if (rdev->wpan_phy.flags & WPAN_PHY_FLAG_CCA_MODE) { in nl802154_put_capabilities()
452 static int nl802154_send_wpan_phy(struct cfg802154_registered_device *rdev, in nl802154_send_wpan_phy() argument
465 if (nla_put_u32(msg, NL802154_ATTR_WPAN_PHY, rdev->wpan_phy_idx) || in nl802154_send_wpan_phy()
467 wpan_phy_name(&rdev->wpan_phy)) || in nl802154_send_wpan_phy()
479 rdev->wpan_phy.current_page) || in nl802154_send_wpan_phy()
481 rdev->wpan_phy.current_channel)) in nl802154_send_wpan_phy()
487 if (nl802154_send_wpan_phy_channels(rdev, msg)) in nl802154_send_wpan_phy()
491 if (rdev->wpan_phy.flags & WPAN_PHY_FLAG_CCA_MODE) { in nl802154_send_wpan_phy()
493 rdev->wpan_phy.cca.mode)) in nl802154_send_wpan_phy()
496 if (rdev->wpan_phy.cca.mode == NL802154_CCA_ENERGY_CARRIER) { in nl802154_send_wpan_phy()
498 rdev->wpan_phy.cca.opt)) in nl802154_send_wpan_phy()
503 if (rdev->wpan_phy.flags & WPAN_PHY_FLAG_TXPOWER) { in nl802154_send_wpan_phy()
505 rdev->wpan_phy.transmit_power)) in nl802154_send_wpan_phy()
509 if (rdev->wpan_phy.flags & WPAN_PHY_FLAG_CCA_ED_LEVEL) { in nl802154_send_wpan_phy()
511 rdev->wpan_phy.cca_ed_level)) in nl802154_send_wpan_phy()
515 if (nl802154_put_capabilities(msg, rdev)) in nl802154_send_wpan_phy()
525 if (rdev->ops->op) { \ in nl802154_send_wpan_phy()
543 if (rdev->wpan_phy.flags & WPAN_PHY_FLAG_TXPOWER) in nl802154_send_wpan_phy()
546 if (rdev->wpan_phy.flags & WPAN_PHY_FLAG_CCA_ED_LEVEL) in nl802154_send_wpan_phy()
549 if (rdev->wpan_phy.flags & WPAN_PHY_FLAG_CCA_MODE) in nl802154_send_wpan_phy()
590 struct cfg802154_registered_device *rdev; in nl802154_dump_wpan_phy_parse() local
598 rdev = wpan_phy_to_rdev( in nl802154_dump_wpan_phy_parse()
600 state->filter_wpan_phy = rdev->wpan_phy_idx; in nl802154_dump_wpan_phy_parse()
612 struct cfg802154_registered_device *rdev; in nl802154_dump_wpan_phy() local
631 list_for_each_entry(rdev, &cfg802154_rdev_list, list) { in nl802154_dump_wpan_phy()
636 state->filter_wpan_phy != rdev->wpan_phy_idx) in nl802154_dump_wpan_phy()
639 ret = nl802154_send_wpan_phy(rdev, in nl802154_dump_wpan_phy()
672 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_get_wpan_phy() local
678 if (nl802154_send_wpan_phy(rdev, NL802154_CMD_NEW_WPAN_PHY, msg, in nl802154_get_wpan_phy()
763 struct cfg802154_registered_device *rdev, in nl802154_get_llsec_params() argument
770 ret = rdev_get_llsec_params(rdev, wpan_dev, ¶ms); in nl802154_get_llsec_params()
796 struct cfg802154_registered_device *rdev, in nl802154_send_iface() argument
812 if (nla_put_u32(msg, NL802154_ATTR_WPAN_PHY, rdev->wpan_phy_idx) || in nl802154_send_iface()
816 rdev->devlist_generation ^ in nl802154_send_iface()
846 if (nl802154_get_llsec_params(msg, rdev, wpan_dev) < 0) in nl802154_send_iface()
865 struct cfg802154_registered_device *rdev; in nl802154_dump_interface() local
869 list_for_each_entry(rdev, &cfg802154_rdev_list, list) { in nl802154_dump_interface()
877 list_for_each_entry(wpan_dev, &rdev->wpan_dev_list, list) { in nl802154_dump_interface()
884 rdev, wpan_dev) < 0) { in nl802154_dump_interface()
904 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_get_interface() local
912 rdev, wdev) < 0) { in nl802154_get_interface()
922 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_new_interface() local
936 !(rdev->wpan_phy.supported.iftypes & BIT(type))) in nl802154_new_interface()
943 if (!rdev->ops->add_virtual_intf) in nl802154_new_interface()
946 return rdev_add_virtual_intf(rdev, in nl802154_new_interface()
953 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_del_interface() local
956 if (!rdev->ops->del_virtual_intf) in nl802154_del_interface()
968 return rdev_del_virtual_intf(rdev, wpan_dev); in nl802154_del_interface()
973 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_set_channel() local
985 !(rdev->wpan_phy.supported.channels[page] & BIT(channel))) in nl802154_set_channel()
988 return rdev_set_channel(rdev, page, channel); in nl802154_set_channel()
993 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_set_cca_mode() local
996 if (!(rdev->wpan_phy.flags & WPAN_PHY_FLAG_CCA_MODE)) in nl802154_set_cca_mode()
1006 !(rdev->wpan_phy.supported.cca_modes & BIT(cca.mode))) in nl802154_set_cca_mode()
1015 !(rdev->wpan_phy.supported.cca_opts & BIT(cca.opt))) in nl802154_set_cca_mode()
1019 return rdev_set_cca_mode(rdev, &cca); in nl802154_set_cca_mode()
1024 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_set_cca_ed_level() local
1028 if (!(rdev->wpan_phy.flags & WPAN_PHY_FLAG_CCA_ED_LEVEL)) in nl802154_set_cca_ed_level()
1036 for (i = 0; i < rdev->wpan_phy.supported.cca_ed_levels_size; i++) { in nl802154_set_cca_ed_level()
1037 if (ed_level == rdev->wpan_phy.supported.cca_ed_levels[i]) in nl802154_set_cca_ed_level()
1038 return rdev_set_cca_ed_level(rdev, ed_level); in nl802154_set_cca_ed_level()
1046 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_set_tx_power() local
1050 if (!(rdev->wpan_phy.flags & WPAN_PHY_FLAG_TXPOWER)) in nl802154_set_tx_power()
1058 for (i = 0; i < rdev->wpan_phy.supported.tx_powers_size; i++) { in nl802154_set_tx_power()
1059 if (power == rdev->wpan_phy.supported.tx_powers[i]) in nl802154_set_tx_power()
1060 return rdev_set_tx_power(rdev, power); in nl802154_set_tx_power()
1068 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_set_pan_id() local
1094 return rdev_set_pan_id(rdev, wpan_dev, pan_id); in nl802154_set_pan_id()
1099 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_set_short_addr() local
1130 return rdev_set_short_addr(rdev, wpan_dev, short_addr); in nl802154_set_short_addr()
1136 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_set_backoff_exponent() local
1153 if (min_be < rdev->wpan_phy.supported.min_minbe || in nl802154_set_backoff_exponent()
1154 min_be > rdev->wpan_phy.supported.max_minbe || in nl802154_set_backoff_exponent()
1155 max_be < rdev->wpan_phy.supported.min_maxbe || in nl802154_set_backoff_exponent()
1156 max_be > rdev->wpan_phy.supported.max_maxbe || in nl802154_set_backoff_exponent()
1160 return rdev_set_backoff_exponent(rdev, wpan_dev, min_be, max_be); in nl802154_set_backoff_exponent()
1166 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_set_max_csma_backoffs() local
1182 if (max_csma_backoffs < rdev->wpan_phy.supported.min_csma_backoffs || in nl802154_set_max_csma_backoffs()
1183 max_csma_backoffs > rdev->wpan_phy.supported.max_csma_backoffs) in nl802154_set_max_csma_backoffs()
1186 return rdev_set_max_csma_backoffs(rdev, wpan_dev, max_csma_backoffs); in nl802154_set_max_csma_backoffs()
1192 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_set_max_frame_retries() local
1207 if (max_frame_retries < rdev->wpan_phy.supported.min_frame_retries || in nl802154_set_max_frame_retries()
1208 max_frame_retries > rdev->wpan_phy.supported.max_frame_retries) in nl802154_set_max_frame_retries()
1211 return rdev_set_max_frame_retries(rdev, wpan_dev, max_frame_retries); in nl802154_set_max_frame_retries()
1216 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_set_lbt_mode() local
1232 if (!wpan_phy_supported_bool(mode, rdev->wpan_phy.supported.lbt)) in nl802154_set_lbt_mode()
1235 return rdev_set_lbt_mode(rdev, wpan_dev, mode); in nl802154_set_lbt_mode()
1241 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_set_ackreq_default() local
1257 return rdev_set_ackreq_default(rdev, wpan_dev, ackreq); in nl802154_set_ackreq_default()
1363 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_set_llsec_params() local
1403 return rdev_set_llsec_params(rdev, wpan_dev, ¶ms, changed); in nl802154_set_llsec_params()
1408 struct cfg802154_registered_device *rdev, in nl802154_send_key() argument
1466 struct cfg802154_registered_device *rdev = NULL; in nl802154_dump_llsec_key() local
1472 err = nl802154_prepare_wpan_dev_dump(skb, cb, &rdev, &wpan_dev); in nl802154_dump_llsec_key()
1481 rdev_lock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_key()
1482 rdev_get_llsec_table(rdev, wpan_dev, &table); in nl802154_dump_llsec_key()
1492 rdev, wpan_dev->netdev, key) < 0) { in nl802154_dump_llsec_key()
1495 rdev_unlock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_key()
1503 rdev_unlock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_key()
1506 nl802154_finish_wpan_dev_dump(rdev); in nl802154_dump_llsec_key()
1522 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_add_llsec_key() local
1569 return rdev_add_llsec_key(rdev, wpan_dev, &id, &key); in nl802154_add_llsec_key()
1574 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_del_llsec_key() local
1588 return rdev_del_llsec_key(rdev, wpan_dev, &id); in nl802154_del_llsec_key()
1593 struct cfg802154_registered_device *rdev, in nl802154_send_device() argument
1636 struct cfg802154_registered_device *rdev = NULL; in nl802154_dump_llsec_dev() local
1642 err = nl802154_prepare_wpan_dev_dump(skb, cb, &rdev, &wpan_dev); in nl802154_dump_llsec_dev()
1651 rdev_lock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_dev()
1652 rdev_get_llsec_table(rdev, wpan_dev, &table); in nl802154_dump_llsec_dev()
1662 rdev, wpan_dev->netdev, dev) < 0) { in nl802154_dump_llsec_dev()
1665 rdev_unlock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_dev()
1673 rdev_unlock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_dev()
1676 nl802154_finish_wpan_dev_dump(rdev); in nl802154_dump_llsec_dev()
1728 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_add_llsec_dev() local
1737 return rdev_add_device(rdev, wpan_dev, &dev_desc); in nl802154_add_llsec_dev()
1742 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_del_llsec_dev() local
1757 return rdev_del_device(rdev, wpan_dev, extended_addr); in nl802154_del_llsec_dev()
1762 struct cfg802154_registered_device *rdev, in nl802154_send_devkey() argument
1807 struct cfg802154_registered_device *rdev = NULL; in nl802154_dump_llsec_devkey() local
1814 err = nl802154_prepare_wpan_dev_dump(skb, cb, &rdev, &wpan_dev); in nl802154_dump_llsec_devkey()
1823 rdev_lock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_devkey()
1824 rdev_get_llsec_table(rdev, wpan_dev, &table); in nl802154_dump_llsec_devkey()
1837 NLM_F_MULTI, rdev, in nl802154_dump_llsec_devkey()
1843 rdev_unlock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_devkey()
1852 rdev_unlock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_devkey()
1855 nl802154_finish_wpan_dev_dump(rdev); in nl802154_dump_llsec_devkey()
1868 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_add_llsec_devkey() local
1896 return rdev_add_devkey(rdev, wpan_dev, extended_addr, &key); in nl802154_add_llsec_devkey()
1901 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_del_llsec_devkey() local
1925 return rdev_del_devkey(rdev, wpan_dev, extended_addr, &key); in nl802154_del_llsec_devkey()
1930 struct cfg802154_registered_device *rdev, in nl802154_send_seclevel() argument
1973 struct cfg802154_registered_device *rdev = NULL; in nl802154_dump_llsec_seclevel() local
1979 err = nl802154_prepare_wpan_dev_dump(skb, cb, &rdev, &wpan_dev); in nl802154_dump_llsec_seclevel()
1988 rdev_lock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_seclevel()
1989 rdev_get_llsec_table(rdev, wpan_dev, &table); in nl802154_dump_llsec_seclevel()
1999 rdev, wpan_dev->netdev, sl) < 0) { in nl802154_dump_llsec_seclevel()
2002 rdev_unlock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_seclevel()
2010 rdev_unlock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_seclevel()
2013 nl802154_finish_wpan_dev_dump(rdev); in nl802154_dump_llsec_seclevel()
2063 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_add_llsec_seclevel() local
2072 return rdev_add_seclevel(rdev, wpan_dev, &sl); in nl802154_add_llsec_seclevel()
2078 struct cfg802154_registered_device *rdev = info->user_ptr[0]; in nl802154_del_llsec_seclevel() local
2088 return rdev_del_seclevel(rdev, wpan_dev, &sl); in nl802154_del_llsec_seclevel()
2105 struct cfg802154_registered_device *rdev; in nl802154_pre_doit() local
2114 rdev = cfg802154_get_dev_from_info(genl_info_net(info), info); in nl802154_pre_doit()
2115 if (IS_ERR(rdev)) { in nl802154_pre_doit()
2118 return PTR_ERR(rdev); in nl802154_pre_doit()
2120 info->user_ptr[0] = rdev; in nl802154_pre_doit()
2133 rdev = wpan_phy_to_rdev(wpan_dev->wpan_phy); in nl802154_pre_doit()
2158 info->user_ptr[0] = rdev; in nl802154_pre_doit()