@@ -3032,10 +3032,12 @@ static void mxt_reset_slots(struct mxt_data *data)
30323032 mxt_input_sync (data );
30333033}
30343034
3035- static void mxt_start (struct mxt_data * data )
3035+ static int mxt_start (struct mxt_data * data )
30363036{
3037+ int ret ;
3038+
30373039 if (!data -> suspended || data -> in_bootloader )
3038- return ;
3040+ return 0 ;
30393041
30403042 switch (data -> pdata -> suspend_mode ) {
30413043 case MXT_SUSPEND_T9_CTRL :
@@ -3060,28 +3062,42 @@ static void mxt_start(struct mxt_data *data)
30603062 */
30613063 mxt_process_messages_until_invalid (data );
30623064
3063- mxt_set_t7_power_cfg (data , MXT_POWER_CFG_RUN );
3065+ ret = mxt_set_t7_power_cfg (data , MXT_POWER_CFG_RUN );
3066+ if (ret )
3067+ return ret ;
30643068
30653069 /* Recalibrate since chip has been in deep sleep */
3066- mxt_t6_command (data , MXT_COMMAND_CALIBRATE , 1 , false);
3070+ ret = mxt_t6_command (data , MXT_COMMAND_CALIBRATE , 1 , false);
3071+ if (ret )
3072+ return ret ;
3073+
3074+ ret = mxt_acquire_irq (data );
3075+ if (ret )
3076+ return ret ;
30673077
3068- mxt_acquire_irq (data );
30693078 break ;
30703079 }
30713080
30723081 data -> suspended = false;
3082+
3083+ return 0 ;
30733084}
30743085
3075- static void mxt_stop (struct mxt_data * data )
3086+ static int mxt_stop (struct mxt_data * data )
30763087{
3088+ int ret ;
3089+
30773090 if (data -> suspended || data -> in_bootloader )
3078- return ;
3091+ return 0 ;
30793092
30803093 switch (data -> pdata -> suspend_mode ) {
30813094 case MXT_SUSPEND_T9_CTRL :
30823095 /* Touch disable */
3083- mxt_write_object (data ,
3096+ ret = mxt_write_object (data ,
30843097 MXT_TOUCH_MULTI_T9 , MXT_T9_CTRL , 0 );
3098+ if (ret )
3099+ return ret ;
3100+
30853101 break ;
30863102
30873103 case MXT_SUSPEND_REGULATOR :
@@ -3094,29 +3110,40 @@ static void mxt_stop(struct mxt_data *data)
30943110 default :
30953111 disable_irq (data -> irq );
30963112
3097- mxt_set_t7_power_cfg (data , MXT_POWER_CFG_DEEPSLEEP );
3113+ ret = mxt_set_t7_power_cfg (data , MXT_POWER_CFG_DEEPSLEEP );
3114+ if (ret )
3115+ return ret ;
30983116
30993117 mxt_reset_slots (data );
31003118 break ;
31013119 }
31023120
31033121 data -> suspended = true;
3122+ return 0 ;
31043123}
31053124
31063125static int mxt_input_open (struct input_dev * dev )
31073126{
31083127 struct mxt_data * data = input_get_drvdata (dev );
3128+ int ret ;
31093129
3110- mxt_start (data );
3130+ ret = mxt_start (data );
31113131
3112- return 0 ;
3132+ if (ret )
3133+ dev_err (& data -> client -> dev , "%s failed rc=%d\n" , __func__ , ret );
3134+
3135+ return ret ;
31133136}
31143137
31153138static void mxt_input_close (struct input_dev * dev )
31163139{
31173140 struct mxt_data * data = input_get_drvdata (dev );
3141+ int ret ;
31183142
3119- mxt_stop (data );
3143+ ret = mxt_stop (data );
3144+
3145+ if (ret )
3146+ dev_err (& data -> client -> dev , "%s failed rc=%d\n" , __func__ , ret );
31203147}
31213148
31223149#ifdef CONFIG_OF
0 commit comments