Re: [PATCH] Input: atkbd - correct MSC_SCAN events for force_release keys

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sunday, September 28, 2014 11:13:24 PM you wrote:
> Without the change either no scancode would be reported on release
> of force_release keys, or - if the key is marked as force_release
> erroneously - the release event and the scancode would be reported
> in separate reports to the input layer.
> 
> Signed-off-by: Stefan Brüns <stefan.bruens@xxxxxxxxxxxxxx>
> ---
>  drivers/input/keyboard/atkbd.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
> index 2dd1d0d..6375ae6 100644
> --- a/drivers/input/keyboard/atkbd.c
> +++ b/drivers/input/keyboard/atkbd.c
> @@ -456,8 +456,9 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data,
>  
>  	keycode = atkbd->keycode[code];
>  
> -	if (keycode != ATKBD_KEY_NULL)
> -		input_event(dev, EV_MSC, MSC_SCAN, code);
> +	if (!(atkbd->release && test_bit(code, atkbd->force_release_mask)))
> +		if (keycode != ATKBD_KEY_NULL)
> +			input_event(dev, EV_MSC, MSC_SCAN, code);
>  
>  	switch (keycode) {
>  	case ATKBD_KEY_NULL:
> @@ -511,6 +512,7 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data,
>  		input_sync(dev);
>  
>  		if (value && test_bit(code, atkbd->force_release_mask)) {
> +			input_event(dev, EV_MSC, MSC_SCAN, code);
>  			input_report_key(dev, keycode, 0);
>  			input_sync(dev);
>  		}
> 

Ping!

Kind regards,

Stefan

-- 
Stefan Brüns  /  Bergstraße 21  /  52062 Aachen
home: +49 241 53809034     mobile: +49 151 50412019
work: +49 2405 49936-424
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux