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

Commit cf0f3608 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "diag: Add support for querying supported peripheral information"

parents dbc238f4 01d314a3
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -402,6 +402,11 @@ struct diag_logging_mode_param_t {
	uint8_t mode_param;
} __packed;

struct diag_con_all_param_t {
	uint32_t diag_con_all;
	uint32_t num_peripherals;
};

struct diag_md_session_t {
	int pid;
	int peripheral_mask;
+20 −0
Original line number Diff line number Diff line
@@ -2099,6 +2099,7 @@ long diagchar_compat_ioctl(struct file *filp,
	uint16_t remote_dev;
	struct diag_dci_client_tbl *dci_client = NULL;
	struct diag_logging_mode_param_t mode_param;
	struct diag_con_all_param_t con_param;

	switch (iocmd) {
	case DIAG_IOCTL_COMMAND_REG:
@@ -2210,6 +2211,15 @@ long diagchar_compat_ioctl(struct file *filp,
	case DIAG_IOCTL_HDLC_TOGGLE:
		result = diag_ioctl_hdlc_toggle(ioarg);
		break;
	case DIAG_IOCTL_QUERY_CON_ALL:
		con_param.diag_con_all = DIAG_CON_ALL;
		con_param.num_peripherals = NUM_PERIPHERALS;
		if (copy_to_user((void __user *)ioarg, &con_param,
				sizeof(struct diag_con_all_param_t)))
			result = -EFAULT;
		else
			result = 0;
		break;
	}
	return result;
}
@@ -2224,6 +2234,7 @@ long diagchar_ioctl(struct file *filp,
	uint16_t remote_dev;
	struct diag_dci_client_tbl *dci_client = NULL;
	struct diag_logging_mode_param_t mode_param;
	struct diag_con_all_param_t con_param;

	switch (iocmd) {
	case DIAG_IOCTL_COMMAND_REG:
@@ -2335,6 +2346,15 @@ long diagchar_ioctl(struct file *filp,
	case DIAG_IOCTL_HDLC_TOGGLE:
		result = diag_ioctl_hdlc_toggle(ioarg);
		break;
	case DIAG_IOCTL_QUERY_CON_ALL:
		con_param.diag_con_all = DIAG_CON_ALL;
		con_param.num_peripherals = NUM_PERIPHERALS;
		if (copy_to_user((void __user *)ioarg, &con_param,
				sizeof(struct diag_con_all_param_t)))
			result = -EFAULT;
		else
			result = 0;
		break;
	}
	return result;
}
+2 −1
Original line number Diff line number Diff line
/* Copyright (c) 2008-2016, The Linux Foundation. All rights reserved.
/* Copyright (c) 2008-2016, 2018, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -66,6 +66,7 @@
#define DIAG_IOCTL_PERIPHERAL_BUF_DRAIN		36
#define DIAG_IOCTL_REGISTER_CALLBACK	37
#define DIAG_IOCTL_HDLC_TOGGLE	38
#define DIAG_IOCTL_QUERY_CON_ALL	40

/* PC Tools IDs */
#define APQ8060_TOOLS_ID	4062