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

	if (!dev)
		return -ENODEV;

	ret = hsic_sysmon_read(HSIC_SYSMON_DEV_EXT_MODEM, dev->buf, RD_BUF_SIZE,
				&dev->buflen, 0);
	if (!ret)
		return simple_read_from_buffer(ubuf, count, ppos,
					dev->buf, dev->buflen);

	return 0;
}
static ssize_t sysmon_test_read(struct file *file, 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;

	ret = hsic_sysmon_read(id, dev->buf, RD_BUF_SIZE, &dev->buflen, 3000);
	if (!ret)
		return simple_read_from_buffer(ubuf, count, ppos,
					dev->buf, dev->buflen);

	return 0;
}