static ssize_t hsic_sysmon_char_write(struct file *file, const char __user *ubuf,
				 size_t count, loff_t *ppos)
{
	struct sysmon_char_dev	*dev = sysmon_dev;
	int ret;
	int i = 0;

	if (!dev)
		return -ENODEV;

	if (copy_from_user(dev->buf, ubuf, count)) {
		pr_err("error copying for writing");
		return 0;
	}
	for (i = 0 ; i < count; i++)
		pr_err("%c", dev->buf[i]);

	ret = hsic_sysmon_write(HSIC_SYSMON_DEV_EXT_MODEM,
				dev->buf, count, 1000);
	if (ret < 0) {
		pr_err("error writing to hsic_sysmon");
		return ret;
	}

	return count;
}
static ssize_t sysmon_test_write(struct file *file, const char __user *ubuf,
				 size_t count, loff_t *ppos)
{
	struct sysmon_test_dev *dev = sysmon_dev;
	enum hsic_sysmon_device_id id =
				(enum hsic_sysmon_device_id)file->private_data;
	int ret;

	if (!dev)
		return -ENODEV;

	/*                                                       */
	if (count > RD_BUF_SIZE)
		count = RD_BUF_SIZE;

	if (copy_from_user(dev->buf, ubuf, count)) {
		pr_err("error copying for writing");
		return -EFAULT;
	}

	ret = hsic_sysmon_write(id, dev->buf, count, 1000);
	if (ret < 0) {
		pr_err("error writing to hsic_sysmon");
		return ret;
	}

	return count;
}