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++; } }
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++; } }
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 {