Exemplo n.º 1
0
static int mcs6000_ts_ioctl(struct inode *inode, struct file *flip,
		     unsigned int cmd, unsigned long arg)
{
	int err = -1;
	/* int size; */

	switch (_IOC_TYPE(cmd)) {
		case MCS6000_TS_DOWN_IOCTL_MAGIC:
			err = mcs6000_ts_ioctl_down(inode, flip, cmd, arg);
			break;
		case MCS6000_TS_IOCTL_MAGIC :
			switch(cmd){
				case MCS6000_TS_IOCTL_FW_VER:
				{
					unsigned char fw_ver, hw_ver;
					mcs6000_firmware_info(&fw_ver, &hw_ver);
					err = fw_ver;
					break;
				}
				case MCS6000_TS_IOCTL_MAIN_ON:
				case MCS6000_TS_IOCTL_MAIN_OFF:
					break;
			}
			break;
		default:
			printk(KERN_ERR "%s unknow ioctl\n", __FUNCTION__);
			err = -EINVAL;
			break;
	}
	return err;
}
static int mcs6000_ts_ioctl(struct inode *inode, struct file *flip,
		     unsigned int cmd, unsigned long arg)
{
	int err = -1;
	/* int size; */

	switch (_IOC_TYPE(cmd)) {
		case MCS6000_TS_DOWN_IOCTL_MAGIC:
			err = mcs6000_ts_ioctl_down(inode, flip, cmd, arg);
			break;
		case MCS6000_TS_IOCTL_MAGIC :
			switch(cmd){
				case MCS6000_TS_IOCTL_FW_VER:
					mcs6000_firmware_info();
					err = mcs6000_ts_dev.input_dev->id.version;
					break;
				/* LGE_CHANGE [[email protected]] 2010-06-21,
				 * add HW_VER
				 */
				case MCS6000_TS_IOCTL_HW_VER:
					mcs6000_firmware_info();
					err = mcs6000_ts_dev.input_dev->id.product;
					break;
				case MCS6000_TS_IOCTL_MAIN_ON:
				case MCS6000_TS_IOCTL_MAIN_OFF:
				case MCS6000_TS_IOCTL_SUB_ON:
				case MCS6000_TS_IOCTL_SUB_OFF:
					break;
			}
			break;
		default:
			printk(KERN_ERR "[sub]%s unknow ioctl\n", __FUNCTION__);
			err = -EINVAL;
			break;
	}
	return err;
}