Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9b104c12 authored by Vojtech Pavlik's avatar Vojtech Pavlik Committed by Dmitry Torokhov
Browse files

Input: atkbd - fix complaints about 'releasing unknown key 0x7f'



Fix bat_xl and err_xl logic causing atkbd to complain about 'unknown
key 0x7f'. Noted by Ben LaHaise.

Signed-off-by: default avatarVojtech Pavlik <vojtech@suse.cz>
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent 50a598de
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -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);
		}
	}