@@ -272,13 +272,13 @@ static void key_stuck_wa(void)
272272 int wa_bit = * host_get_memmap (EC_CUSTOMIZED_MEMMAP_DISPLAY_ON );
273273
274274 if (wa_bit ) {
275- simulate_keyboard (SCANCODE_UNASSIGNED , 1 );
276- simulate_keyboard (SCANCODE_UNASSIGNED , 0 );
277- keyboard_clear_buffer ();
278275 * host_get_memmap (EC_CUSTOMIZED_MEMMAP_DISPLAY_ON ) = 0 ;
279276 hook_call_deferred (& key_stuck_wa_data , -1 );
277+ simulate_keyboard (SCANCODE_UNASSIGNED , 1 );
278+ simulate_keyboard (SCANCODE_UNASSIGNED , 0 );
280279 } else
281- hook_call_deferred (& key_stuck_wa_data , 250 * MSEC );
280+ hook_call_deferred (& key_stuck_wa_data , 10 * MSEC );
281+
282282}
283283
284284enum power_state power_handle_state (enum power_state state )
@@ -460,13 +460,15 @@ enum power_state power_handle_state(enum power_state state)
460460
461461 case POWER_S0ixS3 :
462462 CPRINTS ("PH S0ixS3" );
463+ hook_call_deferred (& key_stuck_wa_data , -1 );
463464 /* follow power sequence Disable S3 power */
464465 chipset_prepare_S3 (0 );
465466 CPRINTS ("PH S0ixS0->S3" );
466467 return POWER_S3 ;
467468
468469 case POWER_S3S0ix :
469470 CPRINTS ("PH S3->S0ix" );
471+ hook_call_deferred (& key_stuck_wa_data , 1 );
470472 /* Enable power for CPU check system */
471473 chipset_prepare_S3 (1 );
472474 CPRINTS ("PH S3S0ix->S0ix" );
@@ -476,8 +478,8 @@ enum power_state power_handle_state(enum power_state state)
476478 CPRINTS ("PH S0ixS0" );
477479 resume_ms_flag = 0 ;
478480 enter_ms_flag = 0 ;
479- hook_call_deferred (& key_stuck_wa_data , 10 * MSEC );
480481 lpc_s0ix_resume_restore_masks ();
482+ hook_call_deferred (& key_stuck_wa_data , 50 * MSEC );
481483 /* Call hooks now that rails are up */
482484 hook_notify (HOOK_CHIPSET_RESUME );
483485 CPRINTS ("PH S0ixS0->S0" );
0 commit comments