Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6d5a681d authored by Stefano Panella's avatar Stefano Panella Committed by David Vrabel
Browse files

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: default avatarStefano Panella <stefano.panella@csr.com>
Signed-off-by: default avatarDavid Vrabel <david.vrabel@csr.com>
parent c5995bd2
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -168,6 +168,18 @@ static int cmd_rsv_terminate(struct uwb_rc *rc,
	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)
{
	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:
		ret = cmd_rsv_terminate(rc, &cmd.rsv_terminate);
		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:
		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
 */
void uwb_dbg_del_rc(struct uwb_rc *rc)
+9 −0
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@
enum uwb_dbg_cmd_type {
	UWB_DBG_CMD_RSV_ESTABLISH = 1,
	UWB_DBG_CMD_RSV_TERMINATE = 2,
	UWB_DBG_CMD_IE_ADD = 3,
	UWB_DBG_CMD_IE_RM = 4,
};

struct uwb_dbg_cmd_rsv_establish {
@@ -46,11 +48,18 @@ struct uwb_dbg_cmd_rsv_terminate {
	int index;
};

struct uwb_dbg_cmd_ie {
	__u8 data[128];
	int len;
};

struct uwb_dbg_cmd {
	__u32 type;
	union {
		struct uwb_dbg_cmd_rsv_establish rsv_establish;
		struct uwb_dbg_cmd_rsv_terminate rsv_terminate;
		struct uwb_dbg_cmd_ie ie_add;
		struct uwb_dbg_cmd_ie ie_rm;
	};
};