mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-24 23:52:40 +00:00
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>
This commit is contained in:
parent
c5995bd281
commit
6d5a681dfb
2 changed files with 28 additions and 1 deletions
|
@ -168,6 +168,18 @@ static int cmd_rsv_terminate(struct uwb_rc *rc,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int cmd_ie_add(struct uwb_rc *rc, struct uwb_dbg_cmd_ie *ie_to_add)
|
||||||
|
{
|
||||||
|
return uwb_rc_ie_add(rc,
|
||||||
|
(const struct uwb_ie_hdr *) ie_to_add->data,
|
||||||
|
ie_to_add->len);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int cmd_ie_rm(struct uwb_rc *rc, struct uwb_dbg_cmd_ie *ie_to_rm)
|
||||||
|
{
|
||||||
|
return uwb_rc_ie_rm(rc, ie_to_rm->data[0]);
|
||||||
|
}
|
||||||
|
|
||||||
static int command_open(struct inode *inode, struct file *file)
|
static int command_open(struct inode *inode, struct file *file)
|
||||||
{
|
{
|
||||||
file->private_data = inode->i_private;
|
file->private_data = inode->i_private;
|
||||||
|
@ -195,6 +207,12 @@ static ssize_t command_write(struct file *file, const char __user *buf,
|
||||||
case UWB_DBG_CMD_RSV_TERMINATE:
|
case UWB_DBG_CMD_RSV_TERMINATE:
|
||||||
ret = cmd_rsv_terminate(rc, &cmd.rsv_terminate);
|
ret = cmd_rsv_terminate(rc, &cmd.rsv_terminate);
|
||||||
break;
|
break;
|
||||||
|
case UWB_DBG_CMD_IE_ADD:
|
||||||
|
ret = cmd_ie_add(rc, &cmd.ie_add);
|
||||||
|
break;
|
||||||
|
case UWB_DBG_CMD_IE_RM:
|
||||||
|
ret = cmd_ie_rm(rc, &cmd.ie_rm);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
@ -332,7 +350,7 @@ void uwb_dbg_add_rc(struct uwb_rc *rc)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* uwb_dbg_add_rc - remove a radio controller's debug interface
|
* uwb_dbg_del_rc - remove a radio controller's debug interface
|
||||||
* @rc: the radio controller
|
* @rc: the radio controller
|
||||||
*/
|
*/
|
||||||
void uwb_dbg_del_rc(struct uwb_rc *rc)
|
void uwb_dbg_del_rc(struct uwb_rc *rc)
|
||||||
|
|
|
@ -32,6 +32,8 @@
|
||||||
enum uwb_dbg_cmd_type {
|
enum uwb_dbg_cmd_type {
|
||||||
UWB_DBG_CMD_RSV_ESTABLISH = 1,
|
UWB_DBG_CMD_RSV_ESTABLISH = 1,
|
||||||
UWB_DBG_CMD_RSV_TERMINATE = 2,
|
UWB_DBG_CMD_RSV_TERMINATE = 2,
|
||||||
|
UWB_DBG_CMD_IE_ADD = 3,
|
||||||
|
UWB_DBG_CMD_IE_RM = 4,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct uwb_dbg_cmd_rsv_establish {
|
struct uwb_dbg_cmd_rsv_establish {
|
||||||
|
@ -46,11 +48,18 @@ struct uwb_dbg_cmd_rsv_terminate {
|
||||||
int index;
|
int index;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct uwb_dbg_cmd_ie {
|
||||||
|
__u8 data[128];
|
||||||
|
int len;
|
||||||
|
};
|
||||||
|
|
||||||
struct uwb_dbg_cmd {
|
struct uwb_dbg_cmd {
|
||||||
__u32 type;
|
__u32 type;
|
||||||
union {
|
union {
|
||||||
struct uwb_dbg_cmd_rsv_establish rsv_establish;
|
struct uwb_dbg_cmd_rsv_establish rsv_establish;
|
||||||
struct uwb_dbg_cmd_rsv_terminate rsv_terminate;
|
struct uwb_dbg_cmd_rsv_terminate rsv_terminate;
|
||||||
|
struct uwb_dbg_cmd_ie ie_add;
|
||||||
|
struct uwb_dbg_cmd_ie ie_rm;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue