static void process_input_report (struct s3c_keypad *s3c_keypad, u32 prevmask, u32 keymask, u32 index)
{
	struct input_dev              *dev = s3c_keypad->dev;
	int i=0;
	u32 press_mask = ((keymask ^ prevmask) & keymask); 
	u32 release_mask = ((keymask ^ prevmask) & prevmask); 

	i = 0;
	while (press_mask) {
		if (press_mask & 1) {
			input_report_key(dev, GET_KEYCODE(i+index),1);
			DPRINTK(": Pressed (index: %d, Keycode: %d)\n", i+index, GET_KEYCODE(i+index));
			dprintk(KPD_PRS, ": Pressed (index: %d, Keycode: %d)\n", i+index, GET_KEYCODE(i+index));
			if(i+index==40)
				set_lock_oj_event(1);
		}
		press_mask >>= 1;
		i++;
	}

	i = 0;
	while (release_mask) {
		if (release_mask & 1) {
			input_report_key(dev,GET_KEYCODE(i+index),0);
			DPRINTK(": Released (index: %d, Keycode: %d)\n", i+index, GET_KEYCODE(i+index));
			dprintk(KPD_RLS, ": Released (index: %d, Keycode: %d)\n", i+index, GET_KEYCODE(i+index));

			if(i+index==40)
				set_lock_oj_event(0);
		}
		release_mask >>= 1;
		i++;
	}
}
Example #2
0
static void process_input_report (struct s3c_keypad *s3c_keypad, u32 prevmask, u32 keymask, u32 index)
{
	struct input_dev              *dev = s3c_keypad->dev;
	int i=0;
	u32 press_mask = ((keymask ^ prevmask) & keymask);
	u32 release_mask = ((keymask ^ prevmask) & prevmask);

	i = 0;
	while (press_mask) {
		if (press_mask & 1) {
			input_report_key(dev, GET_KEYCODE(i+index),1);
			DPRINTK(": Pressed (index: %d, Keycode: %d) line : %d\n", i+index, GET_KEYCODE(i+index),__LINE__);
			DPRINTK(": Pressed (index: %d, Keycode: %d)\n", i+index, GET_KEYCODE(i+index),__LINE__);
#if !defined(CONFIG_MACH_MAX)&&!defined(CONFIG_MACH_VITAL)
#if defined(CONFIG_MOUSE_OPTJOY)
			if(i+index==40)
				set_lock_oj_event(1);
#endif
#endif
		}
		press_mask >>= 1;
		i++;
	}

	i = 0;
	while (release_mask) {
		if (release_mask & 1) {
			input_report_key(dev,GET_KEYCODE(i+index),0);
			DPRINTK(": Released (index: %d, Keycode: %d) line : %d\n", i+index, GET_KEYCODE(i+index),__LINE__);
			DPRINTK(": Released (index: %d, Keycode: %d)\n", i+index, GET_KEYCODE(i+index),__LINE__);
#if !defined(CONFIG_MACH_MAX)&&!defined(CONFIG_MACH_VITAL)
#if defined(CONFIG_MOUSE_OPTJOY)
			if(i+index==40)
				set_lock_oj_event(0);
#endif
#endif
		}
		release_mask >>= 1;
		i++;
	}
}