input: touch: raydium: Code drop V73.9
Xiaohui Tao [Wed, 28 May 2014 23:00:50 +0000 (16:00 -0700)]
Bug 1498826
Bug 1501967
Bug 200008806

Change-Id: Ic9179766890ebbd42bb064cd66e17a4ac959d7c4
Signed-off-by: Xiaohui Tao <xtao@nvidia.com>
Reviewed-on: http://git-master/r/416356
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Robert Collins <rcollins@nvidia.com>
Reviewed-by: Chao Xu <cxu@nvidia.com>

drivers/input/touchscreen/rm31080a_ts.c
include/linux/spi/rm31080a_ctrl.h

index b2d4e66..5258694 100644 (file)
@@ -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,
index fb2cf20..61069bf 100644 (file)
@@ -23,7 +23,7 @@ struct rm_tch_ctrl_para {
        unsigned char u8_analog_repeat_times;
        unsigned char u8_idle_digital_repeat_times;
        unsigned char u8_time2idle;
-       unsigned char u8_power_mode;
+       /*unsigned char u8_power_mode;*/
        unsigned char u8_kernel_msg;
        unsigned char u8_timer_trigger_scale;
        unsigned char u8_idle_mode_check;