g_ft6x46_drv.touch_msg.tp_event = MC_TP_INVALID;
int32_t mem_ret;
-
- fts_touch_process();
-
+ static int fail_count = 0;
+ if (fts_touch_process() != ERRCODE_SUCC)
+ {
+ fail_count ++ ;
+ }else{
+ fail_count = 0;
+ }
+ if (fail_count > 10){
+ hal_custom_resume_touch();
+ }
mem_ret = memcpy_s(data_buf, sizeof(input_event_info), &(g_ft6x46_drv.touch_msg), sizeof(input_event_info));
if (mem_ret != EOK) {
void touch_screen_resume(void)
{
- uint32_t irq_sts = osal_irq_lock();
+ // uint32_t irq_sts = osal_irq_lock();
uapi_gpio_disable_interrupt(TOUCH_INT_GPIO); // close tp_int gpio interrupt
i2c_recovery_reg(TOUCH_I2C_BUS);
#if defined(TPTYPE_TMA525B)
#elif defined(TPTYPE_ZTW523)
ztw523_resume();
#elif defined(TPTYPE_FT6X46)
- ft6x46_resume();
+ if( ft6x46_resume() != ERRCODE_SUCC)
+ {
+ ft6x46_resume();
+ }
#else
ztw523_resume();
#endif
uapi_gpio_enable_interrupt(TOUCH_INT_GPIO); // open tp_int gpio interrupt
- osal_irq_restore(irq_sts);
+ // osal_irq_restore(irq_sts);
}
void touch_suspend_for_i2c(void)