diff options
Diffstat (limited to 'drivers/input')
-rw-r--r-- | drivers/input/touchscreen/rm31080a_ts.c | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/drivers/input/touchscreen/rm31080a_ts.c b/drivers/input/touchscreen/rm31080a_ts.c index b2d4e667a98c..52586948f5be 100644 --- a/drivers/input/touchscreen/rm31080a_ts.c +++ b/drivers/input/touchscreen/rm31080a_ts.c @@ -397,7 +397,6 @@ void raydium_change_scan_mode(u8 u8_touch_count) u16_nt_count_thd = (u16)g_st_ctrl.u8_time2idle * 100; if (u8_touch_count) { - u32_no_touch_count = 0; return; } @@ -522,8 +521,8 @@ void raydium_report_pointer(void *p) u8_last_touch_count = sp_tp->uc_touch_count; } - if (g_st_ctrl.u8_power_mode) - raydium_change_scan_mode(sp_tp->uc_touch_count); + /*if (g_st_ctrl.u8_power_mode) + raydium_change_scan_mode(sp_tp->uc_touch_count); */ kfree(sp_tp); } @@ -562,8 +561,8 @@ void raydium_report_pointer(void *p) i_count = max(u8_last_touch_count, sp_tp->uc_touch_count); if (!i_count) { - if (g_st_ctrl.u8_power_mode) - raydium_change_scan_mode(sp_tp->uc_touch_count); + /*if (g_st_ctrl.u8_power_mode) + raydium_change_scan_mode(sp_tp->uc_touch_count);*/ kfree(sp_tp); return; } @@ -683,8 +682,8 @@ void raydium_report_pointer(void *p) u8_last_touch_count = sp_tp->uc_touch_count; input_sync(g_input_dev); - if (g_st_ctrl.u8_power_mode) - raydium_change_scan_mode(sp_tp->uc_touch_count); + /*if (g_st_ctrl.u8_power_mode) + raydium_change_scan_mode(sp_tp->uc_touch_count);*/ kfree(sp_tp); } @@ -1740,6 +1739,7 @@ static void rm_tch_init_ts_structure_part(void) g_st_ts.b_init_finish = 0; g_st_ts.b_calc_finish = 0; g_st_ts.b_enable_scriber = 0; + g_st_ts.b_is_suspended = 0; #ifdef ENABLE_SLOW_SCAN g_st_ts.b_enable_slow_scan = false; #endif @@ -1753,9 +1753,6 @@ static void rm_tch_init_ts_structure_part(void) g_st_ts.u16_read_para = 0; rm_ctrl_watchdog_func(0); - if (g_st_ts.b_is_suspended == false) - rm_tch_ctrl_init(); - g_st_ts.b_is_suspended = 0; b_bl_updated = false; } @@ -2011,7 +2008,7 @@ static ssize_t rm_tch_touchfile_check_show(struct device *dev, struct device_attribute *attr, char *buf) { - return sprintf(buf, "0x%x\n", + return sprintf(buf, "Touch calibration file check status: 0x%x\n", g_st_ts.u8_touchfile_check); } @@ -2432,7 +2429,7 @@ static irqreturn_t rm_tch_irq(int irq, void *handle) trace_touchscreen_raydium_irq("Raydium_interrupt"); - if (g_st_ctrl.u8_power_mode && + if (/*g_st_ctrl.u8_power_mode &&*/ (g_st_ts.u8_scan_mode_state == RM_SCAN_IDLE_MODE)) { input_event(g_input_dev, EV_MSC, MSC_ACTIVITY, 1); #if (INPUT_PROTOCOL_CURRENT_SUPPORT == INPUT_PROTOCOL_TYPE_B) @@ -2456,8 +2453,8 @@ static void rm_tch_enter_test_mode(u8 flag) flush_workqueue(g_st_ts.rm_timer_workqueue); } else { /*leave test mode*/ g_st_ts.b_selftest_enable = 0; - rm_tch_init_ts_structure_part(); g_st_ts.b_is_suspended = false; + rm_tch_init_ts_structure_part(); } rm_tch_cmd_process(flag, g_st_rm_testmode_cmd, NULL); @@ -2481,7 +2478,12 @@ void rm_tch_set_variable(unsigned int index, unsigned int arg) g_st_ts.b_enable_scriber = (bool) arg; break; case RM_VARIABLE_AUTOSCAN_FLAG: - g_st_ctrl.u8_power_mode = (bool) arg; + /*g_st_ctrl.u8_power_mode = (bool) arg;*/ + if (g_st_ts.u8_scan_mode_state == RM_SCAN_ACTIVE_MODE) { + mutex_lock(&g_st_ts.mutex_scan_mode); + g_st_ts.u8_scan_mode_state = RM_SCAN_PRE_IDLE_MODE; + mutex_unlock(&g_st_ts.mutex_scan_mode); + } break; case RM_VARIABLE_TEST_VERSION: g_st_ts.u8_test_version = (u8) arg; @@ -2623,6 +2625,7 @@ static void rm_tch_init_ts_structure(void) g_st_ts.u8_resume_cnt = 0; g_st_ts.u8_touchfile_check = 0xFF; g_st_ts.u8_stylus_status = 0xFF; + rm_tch_ctrl_init(); } static int rm31080_voltage_notifier_1v8(struct notifier_block *nb, |