1 #ifndef __CFG802154_RDEV_OPS 2 #define __CFG802154_RDEV_OPS 3 4 #include <net/cfg802154.h> 5 6 #include "core.h" 7 #include "trace.h" 8 9 static inline struct net_device * 10 rdev_add_virtual_intf_deprecated(struct cfg802154_registered_device *rdev, 11 const char *name, 12 unsigned char name_assign_type, 13 int type) 14 { 15 return rdev->ops->add_virtual_intf_deprecated(&rdev->wpan_phy, name, 16 name_assign_type, type); 17 } 18 19 static inline void 20 rdev_del_virtual_intf_deprecated(struct cfg802154_registered_device *rdev, 21 struct net_device *dev) 22 { 23 rdev->ops->del_virtual_intf_deprecated(&rdev->wpan_phy, dev); 24 } 25 26 static inline int 27 rdev_suspend(struct cfg802154_registered_device *rdev) 28 { 29 int ret; 30 trace_802154_rdev_suspend(&rdev->wpan_phy); 31 ret = rdev->ops->suspend(&rdev->wpan_phy); 32 trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 33 return ret; 34 } 35 36 static inline int 37 rdev_resume(struct cfg802154_registered_device *rdev) 38 { 39 int ret; 40 trace_802154_rdev_resume(&rdev->wpan_phy); 41 ret = rdev->ops->resume(&rdev->wpan_phy); 42 trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 43 return ret; 44 } 45 46 static inline int 47 rdev_add_virtual_intf(struct cfg802154_registered_device *rdev, char *name, 48 unsigned char name_assign_type, 49 enum nl802154_iftype type, __le64 extended_addr) 50 { 51 int ret; 52 53 trace_802154_rdev_add_virtual_intf(&rdev->wpan_phy, name, type, 54 extended_addr); 55 ret = rdev->ops->add_virtual_intf(&rdev->wpan_phy, name, 56 name_assign_type, type, 57 extended_addr); 58 trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 59 return ret; 60 } 61 62 static inline int 63 rdev_del_virtual_intf(struct cfg802154_registered_device *rdev, 64 struct wpan_dev *wpan_dev) 65 { 66 int ret; 67 68 trace_802154_rdev_del_virtual_intf(&rdev->wpan_phy, wpan_dev); 69 ret = rdev->ops->del_virtual_intf(&rdev->wpan_phy, wpan_dev); 70 trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 71 return ret; 72 } 73 74 static inline int 75 rdev_set_channel(struct cfg802154_registered_device *rdev, u8 page, u8 channel) 76 { 77 int ret; 78 79 trace_802154_rdev_set_channel(&rdev->wpan_phy, page, channel); 80 ret = rdev->ops->set_channel(&rdev->wpan_phy, page, channel); 81 trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 82 return ret; 83 } 84 85 static inline int 86 rdev_set_cca_mode(struct cfg802154_registered_device *rdev, 87 const struct wpan_phy_cca *cca) 88 { 89 int ret; 90 91 trace_802154_rdev_set_cca_mode(&rdev->wpan_phy, cca); 92 ret = rdev->ops->set_cca_mode(&rdev->wpan_phy, cca); 93 trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 94 return ret; 95 } 96 97 static inline int 98 rdev_set_cca_ed_level(struct cfg802154_registered_device *rdev, s32 ed_level) 99 { 100 int ret; 101 102 trace_802154_rdev_set_cca_ed_level(&rdev->wpan_phy, ed_level); 103 ret = rdev->ops->set_cca_ed_level(&rdev->wpan_phy, ed_level); 104 trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 105 return ret; 106 } 107 108 static inline int 109 rdev_set_tx_power(struct cfg802154_registered_device *rdev, 110 s32 power) 111 { 112 int ret; 113 114 trace_802154_rdev_set_tx_power(&rdev->wpan_phy, power); 115 ret = rdev->ops->set_tx_power(&rdev->wpan_phy, power); 116 trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 117 return ret; 118 } 119 120 static inline int 121 rdev_set_pan_id(struct cfg802154_registered_device *rdev, 122 struct wpan_dev *wpan_dev, __le16 pan_id) 123 { 124 int ret; 125 126 trace_802154_rdev_set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id); 127 ret = rdev->ops->set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id); 128 trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 129 return ret; 130 } 131 132 static inline int 133 rdev_set_short_addr(struct cfg802154_registered_device *rdev, 134 struct wpan_dev *wpan_dev, __le16 short_addr) 135 { 136 int ret; 137 138 trace_802154_rdev_set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr); 139 ret = rdev->ops->set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr); 140 trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 141 return ret; 142 } 143 144 static inline int 145 rdev_set_backoff_exponent(struct cfg802154_registered_device *rdev, 146 struct wpan_dev *wpan_dev, u8 min_be, u8 max_be) 147 { 148 int ret; 149 150 trace_802154_rdev_set_backoff_exponent(&rdev->wpan_phy, wpan_dev, 151 min_be, max_be); 152 ret = rdev->ops->set_backoff_exponent(&rdev->wpan_phy, wpan_dev, 153 min_be, max_be); 154 trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 155 return ret; 156 } 157 158 static inline int 159 rdev_set_max_csma_backoffs(struct cfg802154_registered_device *rdev, 160 struct wpan_dev *wpan_dev, u8 max_csma_backoffs) 161 { 162 int ret; 163 164 trace_802154_rdev_set_csma_backoffs(&rdev->wpan_phy, wpan_dev, 165 max_csma_backoffs); 166 ret = rdev->ops->set_max_csma_backoffs(&rdev->wpan_phy, wpan_dev, 167 max_csma_backoffs); 168 trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 169 return ret; 170 } 171 172 static inline int 173 rdev_set_max_frame_retries(struct cfg802154_registered_device *rdev, 174 struct wpan_dev *wpan_dev, s8 max_frame_retries) 175 { 176 int ret; 177 178 trace_802154_rdev_set_max_frame_retries(&rdev->wpan_phy, wpan_dev, 179 max_frame_retries); 180 ret = rdev->ops->set_max_frame_retries(&rdev->wpan_phy, wpan_dev, 181 max_frame_retries); 182 trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 183 return ret; 184 } 185 186 static inline int 187 rdev_set_lbt_mode(struct cfg802154_registered_device *rdev, 188 struct wpan_dev *wpan_dev, bool mode) 189 { 190 int ret; 191 192 trace_802154_rdev_set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode); 193 ret = rdev->ops->set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode); 194 trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 195 return ret; 196 } 197 198 static inline int 199 rdev_set_ackreq_default(struct cfg802154_registered_device *rdev, 200 struct wpan_dev *wpan_dev, bool ackreq) 201 { 202 int ret; 203 204 trace_802154_rdev_set_ackreq_default(&rdev->wpan_phy, wpan_dev, 205 ackreq); 206 ret = rdev->ops->set_ackreq_default(&rdev->wpan_phy, wpan_dev, ackreq); 207 trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 208 return ret; 209 } 210 211 #endif /* __CFG802154_RDEV_OPS */ 212