Exemple #1
0
static void kr3dm_early_suspend(struct early_suspend *handler)
{
#ifdef SECURITY_HOLE_SUPPORT
		printk(" %s \n",__func__); 
		kr3dm_set_mode(KR3DM_MODE_SLEEP);
	
		if (kr3dm.state & ACC_ENABLED) 
			kr3dm_acc_disable();
#else
	is_kr3dm_sleep=true;
	kr3dm_set_mode( KR3DM_MODE_SLEEP );
#endif
}
Exemple #2
0
static void kr3dm_late_resume(struct early_suspend *handler)
{
#ifdef SECURITY_HOLE_SUPPORT
		printk(" %s \n",__func__); 
	
		if (kr3dm.state & ACC_ENABLED)
			kr3dm_acc_enable();
	
		kr3dm_set_mode(KR3DM_MODE_NORMAL);
#else
		kr3dm_set_mode( KR3DM_MODE_NORMAL );
		msleep(3);
		is_kr3dm_sleep=false;
#endif
}
Exemple #3
0
static int kr3dm_accelerometer_resume( struct platform_device* pdev )
{
#ifdef SECURITY_HOLE_SUPPORT
		printk(" %s \n",__func__); 
	
		if (kr3dm.state & ACC_ENABLED)
			kr3dm_acc_enable();
	
		kr3dm_set_mode(KR3DM_MODE_NORMAL);
		return 0;
	
#else
		return 0;
#endif
}
Exemple #4
0
static int kr3dm_accelerometer_suspend( struct platform_device* pdev, pm_message_t state )
{
#ifdef SECURITY_HOLE_SUPPORT
		printk(" %s \n",__func__); 
		kr3dm_set_mode(KR3DM_MODE_SLEEP);
	
		if (kr3dm.state & ACC_ENABLED) 
			kr3dm_acc_disable();
		
		return 0;
	
#else
		return 0;
#endif
}
Exemple #5
0
int kr3dm_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,  unsigned long arg)
{
	int err = 0;
	unsigned char data[3];
	kr3dmacc_t accels;
	unsigned char val1 = 0x27;

	/* check cmd */
	if(_IOC_TYPE(cmd) != KR3DM_IOC_MAGIC)
	{
		printk("cmd magic type error\n");
		return -ENOTTY;
	}
	if(_IOC_NR(cmd) > KR3DM_IOC_MAXNR)
	{
		printk("cmd number error\n");
		return -ENOTTY;
	}

	if(_IOC_DIR(cmd) & _IOC_READ)
		err = !access_ok(VERIFY_WRITE,(void __user*)arg, _IOC_SIZE(cmd));
	else if(_IOC_DIR(cmd) & _IOC_WRITE)
		err = !access_ok(VERIFY_READ, (void __user*)arg, _IOC_SIZE(cmd));
	if(err)
	{
		printk("cmd access_ok error\n");
		return -EFAULT;
	}

	switch(cmd)
	{
		case KR3DM_READ_ACCEL_XYZ:
			err = kr3dm_read_accel_xyz(&accels);
			if(copy_to_user((kr3dmacc_t*)arg, &accels, sizeof(kr3dmacc_t))!=0)
			{
				printk("copy_to error\n");
				return -EFAULT;
			}
			return err;

		case KR3DM_SET_RANGE:
			if(copy_from_user(data,(unsigned char*)arg,1)!=0)
			{
				printk("[KR3DM] copy_from_user error\n");
				return -EFAULT;
			}
			err = kr3dm_set_range(*data);
			return err;

		case KR3DM_SET_MODE:
			if(copy_from_user(data,(unsigned char*)arg,1)!=0)
			{
				printk("[KR3DM] copy_from_user error\n");
				return -EFAULT;
			}
			err = kr3dm_set_mode(*data);
			return err;

		case KR3DM_SET_BANDWIDTH:
			if(copy_from_user(data,(unsigned char*)arg,1)!=0)
			{
				printk("[KR3DM] copy_from_user error\n");
				return -EFAULT;
			}
			err = kr3dm_set_bandwidth(*data);
			return err;

		default:
			return 0;
	}
	return 0;
}
static void kr3dm_late_resume(struct early_suspend *handler)
{

	kr3dm_set_mode( KR3DM_MODE_NORMAL );
}
static void kr3dm_early_suspend(struct early_suspend *handler)
{

	kr3dm_set_mode( KR3DM_MODE_SLEEP );
}
Exemple #8
0
static void kr3dm_late_resume(struct early_suspend *handler)
{
	kr3dm_set_mode( KR3DM_MODE_NORMAL );
	msleep(3);
	is_kr3dm_sleep=false;
}