diff options
| -rw-r--r-- | drivers/input/keyboard/atkbd.c | 12 | 
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c index b45981870c7..7d26ab4818b 100644 --- a/drivers/input/keyboard/atkbd.c +++ b/drivers/input/keyboard/atkbd.c @@ -303,19 +303,19 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data,  	if (atkbd->translated) {  		if (atkbd->emul || -		    !(code == ATKBD_RET_EMUL0 || code == ATKBD_RET_EMUL1 || -		      code == ATKBD_RET_HANGUEL || code == ATKBD_RET_HANJA || -		     (code == ATKBD_RET_ERR && !atkbd->err_xl) || -	             (code == ATKBD_RET_BAT && !atkbd->bat_xl))) { +		    (code != ATKBD_RET_EMUL0 && code != ATKBD_RET_EMUL1 && +		     code != ATKBD_RET_HANGUEL && code != ATKBD_RET_HANJA && +		     (code != ATKBD_RET_ERR || atkbd->err_xl) && +	             (code != ATKBD_RET_BAT || atkbd->bat_xl))) {  			atkbd->release = code >> 7;  			code &= 0x7f;  		}  		if (!atkbd->emul) {  		     if ((code & 0x7f) == (ATKBD_RET_BAT & 0x7f)) -			atkbd->bat_xl = !atkbd->release; +			atkbd->bat_xl = !(data >> 7);  		     if ((code & 0x7f) == (ATKBD_RET_ERR & 0x7f)) -			atkbd->err_xl = !atkbd->release; +			atkbd->err_xl = !(data >> 7);  		}  	}  | 
