Commit 6d5a681dfb583b2f1eefe7cd5505419ca2d4d6c8
Committed by
David Vrabel
1 parent
c5995bd281
Exists in
master
and in
20 other branches
uwb: add commands to add/remove IEs to the debug interface
Add the commands UWB_DBG_CMD_IE_ADD and UWB_DBG_CMD_IE_RM to the debug interface and make them call uwb_rc_ie_add() and uwb_rc_ie_rm(). Signed-off-by: Stefano Panella <stefano.panella@csr.com> Signed-off-by: David Vrabel <david.vrabel@csr.com>
Showing 2 changed files with 28 additions and 1 deletions Side-by-side Diff
drivers/uwb/uwb-debug.c
... | ... | @@ -168,6 +168,18 @@ |
168 | 168 | return 0; |
169 | 169 | } |
170 | 170 | |
171 | +static int cmd_ie_add(struct uwb_rc *rc, struct uwb_dbg_cmd_ie *ie_to_add) | |
172 | +{ | |
173 | + return uwb_rc_ie_add(rc, | |
174 | + (const struct uwb_ie_hdr *) ie_to_add->data, | |
175 | + ie_to_add->len); | |
176 | +} | |
177 | + | |
178 | +static int cmd_ie_rm(struct uwb_rc *rc, struct uwb_dbg_cmd_ie *ie_to_rm) | |
179 | +{ | |
180 | + return uwb_rc_ie_rm(rc, ie_to_rm->data[0]); | |
181 | +} | |
182 | + | |
171 | 183 | static int command_open(struct inode *inode, struct file *file) |
172 | 184 | { |
173 | 185 | file->private_data = inode->i_private; |
... | ... | @@ -195,6 +207,12 @@ |
195 | 207 | case UWB_DBG_CMD_RSV_TERMINATE: |
196 | 208 | ret = cmd_rsv_terminate(rc, &cmd.rsv_terminate); |
197 | 209 | break; |
210 | + case UWB_DBG_CMD_IE_ADD: | |
211 | + ret = cmd_ie_add(rc, &cmd.ie_add); | |
212 | + break; | |
213 | + case UWB_DBG_CMD_IE_RM: | |
214 | + ret = cmd_ie_rm(rc, &cmd.ie_rm); | |
215 | + break; | |
198 | 216 | default: |
199 | 217 | return -EINVAL; |
200 | 218 | } |
... | ... | @@ -332,7 +350,7 @@ |
332 | 350 | } |
333 | 351 | |
334 | 352 | /** |
335 | - * uwb_dbg_add_rc - remove a radio controller's debug interface | |
353 | + * uwb_dbg_del_rc - remove a radio controller's debug interface | |
336 | 354 | * @rc: the radio controller |
337 | 355 | */ |
338 | 356 | void uwb_dbg_del_rc(struct uwb_rc *rc) |
include/linux/uwb/debug-cmd.h
... | ... | @@ -32,6 +32,8 @@ |
32 | 32 | enum uwb_dbg_cmd_type { |
33 | 33 | UWB_DBG_CMD_RSV_ESTABLISH = 1, |
34 | 34 | UWB_DBG_CMD_RSV_TERMINATE = 2, |
35 | + UWB_DBG_CMD_IE_ADD = 3, | |
36 | + UWB_DBG_CMD_IE_RM = 4, | |
35 | 37 | }; |
36 | 38 | |
37 | 39 | struct uwb_dbg_cmd_rsv_establish { |
38 | 40 | |
... | ... | @@ -46,11 +48,18 @@ |
46 | 48 | int index; |
47 | 49 | }; |
48 | 50 | |
51 | +struct uwb_dbg_cmd_ie { | |
52 | + __u8 data[128]; | |
53 | + int len; | |
54 | +}; | |
55 | + | |
49 | 56 | struct uwb_dbg_cmd { |
50 | 57 | __u32 type; |
51 | 58 | union { |
52 | 59 | struct uwb_dbg_cmd_rsv_establish rsv_establish; |
53 | 60 | struct uwb_dbg_cmd_rsv_terminate rsv_terminate; |
61 | + struct uwb_dbg_cmd_ie ie_add; | |
62 | + struct uwb_dbg_cmd_ie ie_rm; | |
54 | 63 | }; |
55 | 64 | }; |
56 | 65 |