@ -206,33 +206,6 @@ static int cros_ec_keyb_work(struct notifier_block *nb,
return NOTIFY_DONE ;
}
/* Clear any keys in the buffer */
static void cros_ec_keyb_clear_keyboard ( struct cros_ec_keyb * ckdev )
{
uint8_t old_state [ ckdev - > cols ] ;
uint8_t new_state [ ckdev - > cols ] ;
unsigned long duration ;
int i , ret ;
/*
* Keep reading until we see that the scan state does not change .
* That indicates that we are done .
*
* Assume that the EC keyscan buffer is at most 32 deep .
*/
duration = jiffies ;
ret = cros_ec_keyb_get_state ( ckdev , new_state ) ;
for ( i = 1 ; ! ret & & i < 32 ; i + + ) {
memcpy ( old_state , new_state , sizeof ( old_state ) ) ;
ret = cros_ec_keyb_get_state ( ckdev , new_state ) ;
if ( 0 = = memcmp ( old_state , new_state , sizeof ( old_state ) ) )
break ;
}
duration = jiffies - duration ;
dev_info ( ckdev - > dev , " Discarded %d keyscan(s) in %dus \n " , i ,
jiffies_to_usecs ( duration ) ) ;
}
static int cros_ec_keyb_probe ( struct platform_device * pdev )
{
struct cros_ec_device * ec = dev_get_drvdata ( pdev - > dev . parent ) ;
@ -299,6 +272,33 @@ static int cros_ec_keyb_probe(struct platform_device *pdev)
}
# ifdef CONFIG_PM_SLEEP
/* Clear any keys in the buffer */
static void cros_ec_keyb_clear_keyboard ( struct cros_ec_keyb * ckdev )
{
uint8_t old_state [ ckdev - > cols ] ;
uint8_t new_state [ ckdev - > cols ] ;
unsigned long duration ;
int i , ret ;
/*
* Keep reading until we see that the scan state does not change .
* That indicates that we are done .
*
* Assume that the EC keyscan buffer is at most 32 deep .
*/
duration = jiffies ;
ret = cros_ec_keyb_get_state ( ckdev , new_state ) ;
for ( i = 1 ; ! ret & & i < 32 ; i + + ) {
memcpy ( old_state , new_state , sizeof ( old_state ) ) ;
ret = cros_ec_keyb_get_state ( ckdev , new_state ) ;
if ( 0 = = memcmp ( old_state , new_state , sizeof ( old_state ) ) )
break ;
}
duration = jiffies - duration ;
dev_info ( ckdev - > dev , " Discarded %d keyscan(s) in %dus \n " , i ,
jiffies_to_usecs ( duration ) ) ;
}
static int cros_ec_keyb_resume ( struct device * dev )
{
struct cros_ec_keyb * ckdev = dev_get_drvdata ( dev ) ;