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); 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); } }
/** * input_inject_event() - send input event from input handler * @handle: input handle to send event through * @type: type of the event * @code: event code * @value: value of the event * * Similar to input_event() but will ignore event if device is * "grabbed" and handle injecting event is not the one that owns * the device. */ void input_inject_event(struct input_handle *handle, unsigned int type, unsigned int code, int value) { struct input_dev *dev = handle->dev; struct input_handle *grab; unsigned long flags; if (is_event_supported(type, dev->evbit, EV_MAX)) { spin_lock_irqsave(&dev->event_lock, flags); grab = rcu_dereference(dev->grab); if (!grab || grab == handle) 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; /* * 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); } }