Commit 6d5a681dfb583b2f1eefe7cd5505419ca2d4d6c8

Authored by Stefano Panella
Committed by David Vrabel
1 parent c5995bd281

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