void input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value) { unsigned long flags; if (is_event_supported(type, dev->evbit, EV_MAX)) { spin_lock_irqsave(&dev->event_lock, flags); add_input_randomness(type, code, value); input_handle_event(dev, type, code, value); spin_unlock_irqrestore(&dev->event_lock, flags); } }
void input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value) { unsigned long flags; if (is_event_supported(type, dev->evbit, EV_MAX)) { //henry+mouse speed setting if(type==EV_REL && (code==REL_X || code==REL_Y)){ //printk("Henry>>add speed!\n"); value=(int) ( (value * m_speed) / 4); } spin_lock_irqsave(&dev->event_lock, flags); add_input_randomness(type, code, value); input_handle_event(dev, type, code, value); spin_unlock_irqrestore(&dev->event_lock, flags); } }
void input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value) { unsigned long flags; if (is_event_supported(type, dev->evbit, EV_MAX)) { spin_lock_irqsave(&dev->event_lock, flags); add_input_randomness(type, code, value); #ifdef CONFIG_FAKE_PM if(code == 116) input_handle_event(dev, type, code, value); else if(if_in_suspend == 0) { #endif input_handle_event(dev, type, code, value); #ifdef CONFIG_FAKE_PM } #endif spin_unlock_irqrestore(&dev->event_lock, flags); } }
void input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value) { unsigned long flags; /* * Forced upload mode key string (tkhwang) */ #ifdef CONFIG_KERNEL_DEBUG_SEC static bool first=0, second=0, third = 0; #if defined (CONFIG_KEYPAD_S3C) if(strcmp(dev->name,"s3c-keypad")==0) { if(value) { if(code==KERNEL_SEC_FORCED_UPLOAD_1ST_KEY) { first =1; } if(first==1 && code==KERNEL_SEC_FORCED_UPLOAD_2ND_KEY) { if ( (KERNEL_SEC_DEBUG_LEVEL_MID == kernel_sec_get_debug_level()) || KERNEL_SEC_DEBUG_LEVEL_HIGH == kernel_sec_get_debug_level() ) { // Display the working callstack for the debugging. dump_stack(); if (kernel_sec_viraddr_wdt_reset_reg) { kernel_sec_set_cp_upload(); kernel_sec_save_final_context(); // Save theh final context. kernel_sec_set_upload_cause(UPLOAD_CAUSE_FORCED_UPLOAD); kernel_sec_hw_reset(false); // Reboot. } } } } else { if(code==KERNEL_SEC_FORCED_UPLOAD_1ST_KEY) { first = 0; } } } #endif //CONFIG_KEYPAD_S3C #if defined (CONFIG_KEYBOARD_GPIO) if(strcmp(dev->name,"gpio-keys")==0) { if(value) { if(code == KEY_VOLUMEUP) first = true; if(code == KEY_POWER) second = true; if(code == KEY_VOLUMEDOWN) third = true; if(first&&second&&third) { if (kernel_sec_viraddr_wdt_reset_reg) { printk("[%s][line:%d]\n",__func__, __LINE__); kernel_sec_set_cp_upload(); kernel_sec_save_final_context(); // Save theh final context. kernel_sec_set_upload_cause(UPLOAD_CAUSE_FORCED_UPLOAD); kernel_sec_hw_reset(false); // Reboot. } } } else { if(code == KEY_VOLUMEUP) first = false; if(code == KEY_POWER) second = false; if(code == KEY_VOLUMEDOWN) third = false; } } #endif //CONFIG_KEYBOARD_GPIO #endif // CONFIG_KERNEL_DEBUG_SEC if (is_event_supported(type, dev->evbit, EV_MAX)) { spin_lock_irqsave(&dev->event_lock, flags); add_input_randomness(type, code, value); input_handle_event(dev, type, code, value); spin_unlock_irqrestore(&dev->event_lock, flags); } }
void input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value) { unsigned long flags; /* * Forced upload mode key string (tkhwang) */ #ifdef CONFIG_KERNEL_DEBUG_SEC static int first=0, second=0; if(strcmp(dev->name,"s3c-keypad")==0) { if(value) { if(code==KERNEL_SEC_FORCED_UPLOAD_1ST_KEY) { first =1; } if(first==1 && code==KERNEL_SEC_FORCED_UPLOAD_2ND_KEY) { printk(KERN_ERR"level %d reg %x \n",kernel_sec_get_debug_level(), kernel_sec_viraddr_wdt_reset_reg); if ( (KERNEL_SEC_DEBUG_LEVEL_MID == kernel_sec_get_debug_level()) || KERNEL_SEC_DEBUG_LEVEL_HIGH == kernel_sec_get_debug_level() ) { printk(KERN_ERR" USER Press volume key + Power key ==> Force RAM DUMP \n"); #if 0 // Display the working callstack for the debugging. dump_stack(); if (kernel_sec_viraddr_wdt_reset_reg) { kernel_sec_set_cp_upload(); kernel_sec_save_final_context(); // Save theh final context. kernel_sec_set_upload_cause(UPLOAD_CAUSE_FORCED_UPLOAD); kernel_sec_hw_reset(false); // Reboot. } #endif } } } else { if(code==KERNEL_SEC_FORCED_UPLOAD_1ST_KEY) { first = 0; } } } #endif // CONFIG_KERNEL_DEBUG_SEC if (is_event_supported(type, dev->evbit, EV_MAX)) { spin_lock_irqsave(&dev->event_lock, flags); add_input_randomness(type, code, value); input_handle_event(dev, type, code, value); spin_unlock_irqrestore(&dev->event_lock, flags); } }
void input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value) { struct input_handle *handle = dev->handle; /* * Filter non-events, and bad input values out. */ if (type > EV_MAX || !test_bit(type, dev->evbit)) return; switch (type) { case EV_KEY: if (code > KEY_MAX || !test_bit(code, dev->keybit) || !!test_bit(code, dev->key) == value) return; if (value == 2) break; change_bit(code, dev->key); if (test_bit(EV_REP, dev->evbit) && dev->timer.function) { if (value) { mod_timer(&dev->timer, jiffies + dev->rep[REP_DELAY]); dev->repeat_key = code; break; } if (dev->repeat_key == code) del_timer(&dev->timer); } break; case EV_ABS: if (code > ABS_MAX || !test_bit(code, dev->absbit) || (value == dev->abs[code])) return; dev->abs[code] = value; break; case EV_REL: if (code > REL_MAX || !test_bit(code, dev->relbit) || (value == 0)) return; break; case EV_LED: if (code > LED_MAX || !test_bit(code, dev->ledbit) || !!test_bit(code, dev->led) == value) return; change_bit(code, dev->led); if (dev->event) dev->event(dev, type, code, value); break; case EV_SND: if (code > SND_MAX || !test_bit(code, dev->sndbit) || !!test_bit(code, dev->snd) == value) return; change_bit(code, dev->snd); if (dev->event) dev->event(dev, type, code, value); break; case EV_REP: if (code > REP_MAX || dev->rep[code] == value) return; dev->rep[code] = value; if (dev->event) dev->event(dev, type, code, value); break; } /* * Add randomness. */ #if 0 /* BUG */ add_input_randomness(((unsigned long) dev) ^ (type << 24) ^ (code << 16) ^ value); #endif /* * Distribute the event to handler modules. */ while (handle) { handle->handler->event(handle, type, code, value); handle = handle->dnext; } }