void button_bad_polling(void) { int btn_pressed = 0; int report_key = 0; while(bad_polling == 1) { msleep(50); button_value = AOTOMfp_Get_Key_Value(); if (button_value != INVALID_KEY) { dprintk(5, "got button: %X\n", button_value); if (mode_digit == DIGIT8 ) VFD_Show_Ico(DOT2,LOG_ON); else YWPANEL_VFD_SetLed(1, LOG_ON); if (1 == btn_pressed) { if (report_key != button_value) { input_report_key(button_dev, report_key, 0); input_sync(button_dev); } else { continue; } } report_key = button_value; btn_pressed = 1; switch(button_value) { case KEY_LEFT: case KEY_RIGHT: case KEY_UP: case KEY_DOWN: case KEY_OK: case KEY_MENU: //case KEY_EXIT: case KEY_POWER: input_report_key(button_dev, button_value, 1); input_sync(button_dev); break; default: dprintk(5, "[BTN] unknown button_value?\n"); } } else { if(btn_pressed) { btn_pressed = 0; msleep(80); if (mode_digit == DIGIT8 ) VFD_Show_Ico(DOT2,LOG_OFF); else YWPANEL_VFD_SetLed(1, LOG_OFF); input_report_key(button_dev, report_key, 0); input_sync(button_dev); } } } up(&button_sem); }
static void button_bad_polling(struct work_struct *work) { int btn_pressed = 0; int report_key = 0; while(bad_polling == 1) { int button_value; msleep(50); button_value = AOTOMfp_Get_Key_Value(); if (button_value != INVALID_KEY) { dprintk(5, "got button: %X\n", button_value); flashLED(LED_GREEN, 100); //VFD_Show_Ico(DOT2,LOG_ON); //YWPANEL_VFD_SetLed(1, LOG_ON); if (1 == btn_pressed) { if (report_key == button_value) continue; input_report_key(button_dev, report_key, 0); input_sync(button_dev); } report_key = button_value; btn_pressed = 1; switch(button_value) { case KEY_LEFT: case KEY_RIGHT: case KEY_UP: case KEY_DOWN: case KEY_OK: case KEY_MENU: case KEY_EXIT: case KEY_POWER: input_report_key(button_dev, button_value, 1); input_sync(button_dev); break; default: dprintk(5, "[BTN] unknown button_value %d\n", button_value); } } else { if(btn_pressed) { btn_pressed = 0; //msleep(80); //VFD_Show_Ico(DOT2,LOG_OFF); //YWPANEL_VFD_SetLed(1, LOG_OFF); input_report_key(button_dev, report_key, 0); input_sync(button_dev); } } } bad_polling = 2; }