xref: /OK3568_Linux_fs/kernel/net/ieee802154/rdev-ops.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifndef __CFG802154_RDEV_OPS
3*4882a593Smuzhiyun #define __CFG802154_RDEV_OPS
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun #include <net/cfg802154.h>
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #include "core.h"
8*4882a593Smuzhiyun #include "trace.h"
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun static inline struct net_device *
rdev_add_virtual_intf_deprecated(struct cfg802154_registered_device * rdev,const char * name,unsigned char name_assign_type,int type)11*4882a593Smuzhiyun rdev_add_virtual_intf_deprecated(struct cfg802154_registered_device *rdev,
12*4882a593Smuzhiyun 				 const char *name,
13*4882a593Smuzhiyun 				 unsigned char name_assign_type,
14*4882a593Smuzhiyun 				 int type)
15*4882a593Smuzhiyun {
16*4882a593Smuzhiyun 	return rdev->ops->add_virtual_intf_deprecated(&rdev->wpan_phy, name,
17*4882a593Smuzhiyun 						      name_assign_type, type);
18*4882a593Smuzhiyun }
19*4882a593Smuzhiyun 
20*4882a593Smuzhiyun static inline void
rdev_del_virtual_intf_deprecated(struct cfg802154_registered_device * rdev,struct net_device * dev)21*4882a593Smuzhiyun rdev_del_virtual_intf_deprecated(struct cfg802154_registered_device *rdev,
22*4882a593Smuzhiyun 				 struct net_device *dev)
23*4882a593Smuzhiyun {
24*4882a593Smuzhiyun 	rdev->ops->del_virtual_intf_deprecated(&rdev->wpan_phy, dev);
25*4882a593Smuzhiyun }
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun static inline int
rdev_suspend(struct cfg802154_registered_device * rdev)28*4882a593Smuzhiyun rdev_suspend(struct cfg802154_registered_device *rdev)
29*4882a593Smuzhiyun {
30*4882a593Smuzhiyun 	int ret;
31*4882a593Smuzhiyun 	trace_802154_rdev_suspend(&rdev->wpan_phy);
32*4882a593Smuzhiyun 	ret = rdev->ops->suspend(&rdev->wpan_phy);
33*4882a593Smuzhiyun 	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
34*4882a593Smuzhiyun 	return ret;
35*4882a593Smuzhiyun }
36*4882a593Smuzhiyun 
37*4882a593Smuzhiyun static inline int
rdev_resume(struct cfg802154_registered_device * rdev)38*4882a593Smuzhiyun rdev_resume(struct cfg802154_registered_device *rdev)
39*4882a593Smuzhiyun {
40*4882a593Smuzhiyun 	int ret;
41*4882a593Smuzhiyun 	trace_802154_rdev_resume(&rdev->wpan_phy);
42*4882a593Smuzhiyun 	ret = rdev->ops->resume(&rdev->wpan_phy);
43*4882a593Smuzhiyun 	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
44*4882a593Smuzhiyun 	return ret;
45*4882a593Smuzhiyun }
46*4882a593Smuzhiyun 
47*4882a593Smuzhiyun static inline int
rdev_add_virtual_intf(struct cfg802154_registered_device * rdev,char * name,unsigned char name_assign_type,enum nl802154_iftype type,__le64 extended_addr)48*4882a593Smuzhiyun rdev_add_virtual_intf(struct cfg802154_registered_device *rdev, char *name,
49*4882a593Smuzhiyun 		      unsigned char name_assign_type,
50*4882a593Smuzhiyun 		      enum nl802154_iftype type, __le64 extended_addr)
51*4882a593Smuzhiyun {
52*4882a593Smuzhiyun 	int ret;
53*4882a593Smuzhiyun 
54*4882a593Smuzhiyun 	trace_802154_rdev_add_virtual_intf(&rdev->wpan_phy, name, type,
55*4882a593Smuzhiyun 					   extended_addr);
56*4882a593Smuzhiyun 	ret = rdev->ops->add_virtual_intf(&rdev->wpan_phy, name,
57*4882a593Smuzhiyun 					  name_assign_type, type,
58*4882a593Smuzhiyun 					  extended_addr);
59*4882a593Smuzhiyun 	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
60*4882a593Smuzhiyun 	return ret;
61*4882a593Smuzhiyun }
62*4882a593Smuzhiyun 
63*4882a593Smuzhiyun static inline int
rdev_del_virtual_intf(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev)64*4882a593Smuzhiyun rdev_del_virtual_intf(struct cfg802154_registered_device *rdev,
65*4882a593Smuzhiyun 		      struct wpan_dev *wpan_dev)
66*4882a593Smuzhiyun {
67*4882a593Smuzhiyun 	int ret;
68*4882a593Smuzhiyun 
69*4882a593Smuzhiyun 	trace_802154_rdev_del_virtual_intf(&rdev->wpan_phy, wpan_dev);
70*4882a593Smuzhiyun 	ret = rdev->ops->del_virtual_intf(&rdev->wpan_phy, wpan_dev);
71*4882a593Smuzhiyun 	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
72*4882a593Smuzhiyun 	return ret;
73*4882a593Smuzhiyun }
74*4882a593Smuzhiyun 
75*4882a593Smuzhiyun static inline int
rdev_set_channel(struct cfg802154_registered_device * rdev,u8 page,u8 channel)76*4882a593Smuzhiyun rdev_set_channel(struct cfg802154_registered_device *rdev, u8 page, u8 channel)
77*4882a593Smuzhiyun {
78*4882a593Smuzhiyun 	int ret;
79*4882a593Smuzhiyun 
80*4882a593Smuzhiyun 	trace_802154_rdev_set_channel(&rdev->wpan_phy, page, channel);
81*4882a593Smuzhiyun 	ret = rdev->ops->set_channel(&rdev->wpan_phy, page, channel);
82*4882a593Smuzhiyun 	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
83*4882a593Smuzhiyun 	return ret;
84*4882a593Smuzhiyun }
85*4882a593Smuzhiyun 
86*4882a593Smuzhiyun static inline int
rdev_set_cca_mode(struct cfg802154_registered_device * rdev,const struct wpan_phy_cca * cca)87*4882a593Smuzhiyun rdev_set_cca_mode(struct cfg802154_registered_device *rdev,
88*4882a593Smuzhiyun 		  const struct wpan_phy_cca *cca)
89*4882a593Smuzhiyun {
90*4882a593Smuzhiyun 	int ret;
91*4882a593Smuzhiyun 
92*4882a593Smuzhiyun 	trace_802154_rdev_set_cca_mode(&rdev->wpan_phy, cca);
93*4882a593Smuzhiyun 	ret = rdev->ops->set_cca_mode(&rdev->wpan_phy, cca);
94*4882a593Smuzhiyun 	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
95*4882a593Smuzhiyun 	return ret;
96*4882a593Smuzhiyun }
97*4882a593Smuzhiyun 
98*4882a593Smuzhiyun static inline int
rdev_set_cca_ed_level(struct cfg802154_registered_device * rdev,s32 ed_level)99*4882a593Smuzhiyun rdev_set_cca_ed_level(struct cfg802154_registered_device *rdev, s32 ed_level)
100*4882a593Smuzhiyun {
101*4882a593Smuzhiyun 	int ret;
102*4882a593Smuzhiyun 
103*4882a593Smuzhiyun 	trace_802154_rdev_set_cca_ed_level(&rdev->wpan_phy, ed_level);
104*4882a593Smuzhiyun 	ret = rdev->ops->set_cca_ed_level(&rdev->wpan_phy, ed_level);
105*4882a593Smuzhiyun 	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
106*4882a593Smuzhiyun 	return ret;
107*4882a593Smuzhiyun }
108*4882a593Smuzhiyun 
109*4882a593Smuzhiyun static inline int
rdev_set_tx_power(struct cfg802154_registered_device * rdev,s32 power)110*4882a593Smuzhiyun rdev_set_tx_power(struct cfg802154_registered_device *rdev,
111*4882a593Smuzhiyun 		  s32 power)
112*4882a593Smuzhiyun {
113*4882a593Smuzhiyun 	int ret;
114*4882a593Smuzhiyun 
115*4882a593Smuzhiyun 	trace_802154_rdev_set_tx_power(&rdev->wpan_phy, power);
116*4882a593Smuzhiyun 	ret = rdev->ops->set_tx_power(&rdev->wpan_phy, power);
117*4882a593Smuzhiyun 	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
118*4882a593Smuzhiyun 	return ret;
119*4882a593Smuzhiyun }
120*4882a593Smuzhiyun 
121*4882a593Smuzhiyun static inline int
rdev_set_pan_id(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,__le16 pan_id)122*4882a593Smuzhiyun rdev_set_pan_id(struct cfg802154_registered_device *rdev,
123*4882a593Smuzhiyun 		struct wpan_dev *wpan_dev, __le16 pan_id)
124*4882a593Smuzhiyun {
125*4882a593Smuzhiyun 	int ret;
126*4882a593Smuzhiyun 
127*4882a593Smuzhiyun 	trace_802154_rdev_set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id);
128*4882a593Smuzhiyun 	ret = rdev->ops->set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id);
129*4882a593Smuzhiyun 	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
130*4882a593Smuzhiyun 	return ret;
131*4882a593Smuzhiyun }
132*4882a593Smuzhiyun 
133*4882a593Smuzhiyun static inline int
rdev_set_short_addr(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,__le16 short_addr)134*4882a593Smuzhiyun rdev_set_short_addr(struct cfg802154_registered_device *rdev,
135*4882a593Smuzhiyun 		    struct wpan_dev *wpan_dev, __le16 short_addr)
136*4882a593Smuzhiyun {
137*4882a593Smuzhiyun 	int ret;
138*4882a593Smuzhiyun 
139*4882a593Smuzhiyun 	trace_802154_rdev_set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr);
140*4882a593Smuzhiyun 	ret = rdev->ops->set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr);
141*4882a593Smuzhiyun 	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
142*4882a593Smuzhiyun 	return ret;
143*4882a593Smuzhiyun }
144*4882a593Smuzhiyun 
145*4882a593Smuzhiyun static inline int
rdev_set_backoff_exponent(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,u8 min_be,u8 max_be)146*4882a593Smuzhiyun rdev_set_backoff_exponent(struct cfg802154_registered_device *rdev,
147*4882a593Smuzhiyun 			  struct wpan_dev *wpan_dev, u8 min_be, u8 max_be)
148*4882a593Smuzhiyun {
149*4882a593Smuzhiyun 	int ret;
150*4882a593Smuzhiyun 
151*4882a593Smuzhiyun 	trace_802154_rdev_set_backoff_exponent(&rdev->wpan_phy, wpan_dev,
152*4882a593Smuzhiyun 					       min_be, max_be);
153*4882a593Smuzhiyun 	ret = rdev->ops->set_backoff_exponent(&rdev->wpan_phy, wpan_dev,
154*4882a593Smuzhiyun 					      min_be, max_be);
155*4882a593Smuzhiyun 	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
156*4882a593Smuzhiyun 	return ret;
157*4882a593Smuzhiyun }
158*4882a593Smuzhiyun 
159*4882a593Smuzhiyun static inline int
rdev_set_max_csma_backoffs(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,u8 max_csma_backoffs)160*4882a593Smuzhiyun rdev_set_max_csma_backoffs(struct cfg802154_registered_device *rdev,
161*4882a593Smuzhiyun 			   struct wpan_dev *wpan_dev, u8 max_csma_backoffs)
162*4882a593Smuzhiyun {
163*4882a593Smuzhiyun 	int ret;
164*4882a593Smuzhiyun 
165*4882a593Smuzhiyun 	trace_802154_rdev_set_csma_backoffs(&rdev->wpan_phy, wpan_dev,
166*4882a593Smuzhiyun 					    max_csma_backoffs);
167*4882a593Smuzhiyun 	ret = rdev->ops->set_max_csma_backoffs(&rdev->wpan_phy, wpan_dev,
168*4882a593Smuzhiyun 					       max_csma_backoffs);
169*4882a593Smuzhiyun 	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
170*4882a593Smuzhiyun 	return ret;
171*4882a593Smuzhiyun }
172*4882a593Smuzhiyun 
173*4882a593Smuzhiyun static inline int
rdev_set_max_frame_retries(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,s8 max_frame_retries)174*4882a593Smuzhiyun rdev_set_max_frame_retries(struct cfg802154_registered_device *rdev,
175*4882a593Smuzhiyun 			   struct wpan_dev *wpan_dev, s8 max_frame_retries)
176*4882a593Smuzhiyun {
177*4882a593Smuzhiyun 	int ret;
178*4882a593Smuzhiyun 
179*4882a593Smuzhiyun 	trace_802154_rdev_set_max_frame_retries(&rdev->wpan_phy, wpan_dev,
180*4882a593Smuzhiyun 						max_frame_retries);
181*4882a593Smuzhiyun 	ret = rdev->ops->set_max_frame_retries(&rdev->wpan_phy, wpan_dev,
182*4882a593Smuzhiyun 					       max_frame_retries);
183*4882a593Smuzhiyun 	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
184*4882a593Smuzhiyun 	return ret;
185*4882a593Smuzhiyun }
186*4882a593Smuzhiyun 
187*4882a593Smuzhiyun static inline int
rdev_set_lbt_mode(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,bool mode)188*4882a593Smuzhiyun rdev_set_lbt_mode(struct cfg802154_registered_device *rdev,
189*4882a593Smuzhiyun 		  struct wpan_dev *wpan_dev, bool mode)
190*4882a593Smuzhiyun {
191*4882a593Smuzhiyun 	int ret;
192*4882a593Smuzhiyun 
193*4882a593Smuzhiyun 	trace_802154_rdev_set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode);
194*4882a593Smuzhiyun 	ret = rdev->ops->set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode);
195*4882a593Smuzhiyun 	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
196*4882a593Smuzhiyun 	return ret;
197*4882a593Smuzhiyun }
198*4882a593Smuzhiyun 
199*4882a593Smuzhiyun static inline int
rdev_set_ackreq_default(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,bool ackreq)200*4882a593Smuzhiyun rdev_set_ackreq_default(struct cfg802154_registered_device *rdev,
201*4882a593Smuzhiyun 			struct wpan_dev *wpan_dev, bool ackreq)
202*4882a593Smuzhiyun {
203*4882a593Smuzhiyun 	int ret;
204*4882a593Smuzhiyun 
205*4882a593Smuzhiyun 	trace_802154_rdev_set_ackreq_default(&rdev->wpan_phy, wpan_dev,
206*4882a593Smuzhiyun 					     ackreq);
207*4882a593Smuzhiyun 	ret = rdev->ops->set_ackreq_default(&rdev->wpan_phy, wpan_dev, ackreq);
208*4882a593Smuzhiyun 	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
209*4882a593Smuzhiyun 	return ret;
210*4882a593Smuzhiyun }
211*4882a593Smuzhiyun 
212*4882a593Smuzhiyun #ifdef CONFIG_IEEE802154_NL802154_EXPERIMENTAL
213*4882a593Smuzhiyun /* TODO this is already a nl802154, so move into ieee802154 */
214*4882a593Smuzhiyun static inline void
rdev_get_llsec_table(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,struct ieee802154_llsec_table ** table)215*4882a593Smuzhiyun rdev_get_llsec_table(struct cfg802154_registered_device *rdev,
216*4882a593Smuzhiyun 		     struct wpan_dev *wpan_dev,
217*4882a593Smuzhiyun 		     struct ieee802154_llsec_table **table)
218*4882a593Smuzhiyun {
219*4882a593Smuzhiyun 	rdev->ops->get_llsec_table(&rdev->wpan_phy, wpan_dev, table);
220*4882a593Smuzhiyun }
221*4882a593Smuzhiyun 
222*4882a593Smuzhiyun static inline void
rdev_lock_llsec_table(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev)223*4882a593Smuzhiyun rdev_lock_llsec_table(struct cfg802154_registered_device *rdev,
224*4882a593Smuzhiyun 		      struct wpan_dev *wpan_dev)
225*4882a593Smuzhiyun {
226*4882a593Smuzhiyun 	rdev->ops->lock_llsec_table(&rdev->wpan_phy, wpan_dev);
227*4882a593Smuzhiyun }
228*4882a593Smuzhiyun 
229*4882a593Smuzhiyun static inline void
rdev_unlock_llsec_table(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev)230*4882a593Smuzhiyun rdev_unlock_llsec_table(struct cfg802154_registered_device *rdev,
231*4882a593Smuzhiyun 			struct wpan_dev *wpan_dev)
232*4882a593Smuzhiyun {
233*4882a593Smuzhiyun 	rdev->ops->unlock_llsec_table(&rdev->wpan_phy, wpan_dev);
234*4882a593Smuzhiyun }
235*4882a593Smuzhiyun 
236*4882a593Smuzhiyun static inline int
rdev_get_llsec_params(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,struct ieee802154_llsec_params * params)237*4882a593Smuzhiyun rdev_get_llsec_params(struct cfg802154_registered_device *rdev,
238*4882a593Smuzhiyun 		      struct wpan_dev *wpan_dev,
239*4882a593Smuzhiyun 		      struct ieee802154_llsec_params *params)
240*4882a593Smuzhiyun {
241*4882a593Smuzhiyun 	return rdev->ops->get_llsec_params(&rdev->wpan_phy, wpan_dev, params);
242*4882a593Smuzhiyun }
243*4882a593Smuzhiyun 
244*4882a593Smuzhiyun static inline int
rdev_set_llsec_params(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,const struct ieee802154_llsec_params * params,u32 changed)245*4882a593Smuzhiyun rdev_set_llsec_params(struct cfg802154_registered_device *rdev,
246*4882a593Smuzhiyun 		      struct wpan_dev *wpan_dev,
247*4882a593Smuzhiyun 		      const struct ieee802154_llsec_params *params,
248*4882a593Smuzhiyun 		      u32 changed)
249*4882a593Smuzhiyun {
250*4882a593Smuzhiyun 	return rdev->ops->set_llsec_params(&rdev->wpan_phy, wpan_dev, params,
251*4882a593Smuzhiyun 					   changed);
252*4882a593Smuzhiyun }
253*4882a593Smuzhiyun 
254*4882a593Smuzhiyun static inline int
rdev_add_llsec_key(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,const struct ieee802154_llsec_key_id * id,const struct ieee802154_llsec_key * key)255*4882a593Smuzhiyun rdev_add_llsec_key(struct cfg802154_registered_device *rdev,
256*4882a593Smuzhiyun 		   struct wpan_dev *wpan_dev,
257*4882a593Smuzhiyun 		   const struct ieee802154_llsec_key_id *id,
258*4882a593Smuzhiyun 		   const struct ieee802154_llsec_key *key)
259*4882a593Smuzhiyun {
260*4882a593Smuzhiyun 	return rdev->ops->add_llsec_key(&rdev->wpan_phy, wpan_dev, id, key);
261*4882a593Smuzhiyun }
262*4882a593Smuzhiyun 
263*4882a593Smuzhiyun static inline int
rdev_del_llsec_key(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,const struct ieee802154_llsec_key_id * id)264*4882a593Smuzhiyun rdev_del_llsec_key(struct cfg802154_registered_device *rdev,
265*4882a593Smuzhiyun 		   struct wpan_dev *wpan_dev,
266*4882a593Smuzhiyun 		   const struct ieee802154_llsec_key_id *id)
267*4882a593Smuzhiyun {
268*4882a593Smuzhiyun 	return rdev->ops->del_llsec_key(&rdev->wpan_phy, wpan_dev, id);
269*4882a593Smuzhiyun }
270*4882a593Smuzhiyun 
271*4882a593Smuzhiyun static inline int
rdev_add_seclevel(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,const struct ieee802154_llsec_seclevel * sl)272*4882a593Smuzhiyun rdev_add_seclevel(struct cfg802154_registered_device *rdev,
273*4882a593Smuzhiyun 		  struct wpan_dev *wpan_dev,
274*4882a593Smuzhiyun 		  const struct ieee802154_llsec_seclevel *sl)
275*4882a593Smuzhiyun {
276*4882a593Smuzhiyun 	return rdev->ops->add_seclevel(&rdev->wpan_phy, wpan_dev, sl);
277*4882a593Smuzhiyun }
278*4882a593Smuzhiyun 
279*4882a593Smuzhiyun static inline int
rdev_del_seclevel(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,const struct ieee802154_llsec_seclevel * sl)280*4882a593Smuzhiyun rdev_del_seclevel(struct cfg802154_registered_device *rdev,
281*4882a593Smuzhiyun 		  struct wpan_dev *wpan_dev,
282*4882a593Smuzhiyun 		  const struct ieee802154_llsec_seclevel *sl)
283*4882a593Smuzhiyun {
284*4882a593Smuzhiyun 	return rdev->ops->del_seclevel(&rdev->wpan_phy, wpan_dev, sl);
285*4882a593Smuzhiyun }
286*4882a593Smuzhiyun 
287*4882a593Smuzhiyun static inline int
rdev_add_device(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,const struct ieee802154_llsec_device * dev_desc)288*4882a593Smuzhiyun rdev_add_device(struct cfg802154_registered_device *rdev,
289*4882a593Smuzhiyun 		struct wpan_dev *wpan_dev,
290*4882a593Smuzhiyun 		const struct ieee802154_llsec_device *dev_desc)
291*4882a593Smuzhiyun {
292*4882a593Smuzhiyun 	return rdev->ops->add_device(&rdev->wpan_phy, wpan_dev, dev_desc);
293*4882a593Smuzhiyun }
294*4882a593Smuzhiyun 
295*4882a593Smuzhiyun static inline int
rdev_del_device(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,__le64 extended_addr)296*4882a593Smuzhiyun rdev_del_device(struct cfg802154_registered_device *rdev,
297*4882a593Smuzhiyun 		struct wpan_dev *wpan_dev, __le64 extended_addr)
298*4882a593Smuzhiyun {
299*4882a593Smuzhiyun 	return rdev->ops->del_device(&rdev->wpan_phy, wpan_dev, extended_addr);
300*4882a593Smuzhiyun }
301*4882a593Smuzhiyun 
302*4882a593Smuzhiyun static inline int
rdev_add_devkey(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,__le64 extended_addr,const struct ieee802154_llsec_device_key * devkey)303*4882a593Smuzhiyun rdev_add_devkey(struct cfg802154_registered_device *rdev,
304*4882a593Smuzhiyun 		struct wpan_dev *wpan_dev, __le64 extended_addr,
305*4882a593Smuzhiyun 		const struct ieee802154_llsec_device_key *devkey)
306*4882a593Smuzhiyun {
307*4882a593Smuzhiyun 	return rdev->ops->add_devkey(&rdev->wpan_phy, wpan_dev, extended_addr,
308*4882a593Smuzhiyun 				     devkey);
309*4882a593Smuzhiyun }
310*4882a593Smuzhiyun 
311*4882a593Smuzhiyun static inline int
rdev_del_devkey(struct cfg802154_registered_device * rdev,struct wpan_dev * wpan_dev,__le64 extended_addr,const struct ieee802154_llsec_device_key * devkey)312*4882a593Smuzhiyun rdev_del_devkey(struct cfg802154_registered_device *rdev,
313*4882a593Smuzhiyun 		struct wpan_dev *wpan_dev, __le64 extended_addr,
314*4882a593Smuzhiyun 		const struct ieee802154_llsec_device_key *devkey)
315*4882a593Smuzhiyun {
316*4882a593Smuzhiyun 	return rdev->ops->del_devkey(&rdev->wpan_phy, wpan_dev, extended_addr,
317*4882a593Smuzhiyun 				     devkey);
318*4882a593Smuzhiyun }
319*4882a593Smuzhiyun #endif /* CONFIG_IEEE802154_NL802154_EXPERIMENTAL */
320*4882a593Smuzhiyun 
321*4882a593Smuzhiyun #endif /* __CFG802154_RDEV_OPS */
322