Ejemplo n.º 1
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)\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++;
	}
}
Ejemplo n.º 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++;
	}
}
Ejemplo n.º 3
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); 


#if (CONFIG_SPICA_REV == CONFIG_SPICA_TEST_REV01)	// Temporary Code by SYS.LSI
        u32 wake_key;

	if (keypad_sleep_flag) {
		i = 0;
		while (press_mask) {
			if (press_mask & 1) {
				wake_key = GET_KEYCODE(i+index);
				if(wake_key == ENDCALL_KEY || wake_key == HOLD_KEY) {
					keypad_sleep_flag = 0;
					input_report_key(dev, wake_key,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));
				}
			}
			press_mask >>= 1;
			i++;
		}
		i = 0;
		while (release_mask) {
			if (release_mask & 1) {
				wake_key = GET_KEYCODE(i+index);
				if(wake_key == ENDCALL_KEY || wake_key == HOLD_KEY)
					input_report_key(dev, wake_key,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));
			}
			release_mask >>= 1;
			i++;
		}
	}
	else {