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

Commit 240206fc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull input updates from Dmitry Torokhov:

 - several new key mappings for HID

 - a host of new ACPI IDs used to identify Elan touchpads in Lenovo
   laptops

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: snvs_pwrkey - initialize necessary driver data before enabling IRQ
  HID: input: add mapping for "Toggle Display" key
  HID: input: add mapping for "Full Screen" key
  HID: input: add mapping for keyboard Brightness Up/Down/Toggle keys
  HID: input: add mapping for Expose/Overview key
  HID: input: fix mapping of aspect ratio key
  [media] doc-rst: switch to new names for Full Screen/Aspect keys
  Input: document meanings of KEY_SCREEN and KEY_ZOOM
  Input: elan_i2c - add hardware ID for multiple Lenovo laptops
parents 6d906f99 bf2a7ca3
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -623,7 +623,7 @@ the remote via /dev/input/event devices.

    -  .. row 78

       -  ``KEY_SCREEN``
       -  ``KEY_ASPECT_RATIO``

       -  Select screen aspect ratio

@@ -631,7 +631,7 @@ the remote via /dev/input/event devices.

    -  .. row 79

       -  ``KEY_ZOOM``
       -  ``KEY_FULL_SCREEN``

       -  Put device into zoom/full screen mode

+16 −1
Original line number Diff line number Diff line
@@ -680,6 +680,14 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
			break;
		}

		if ((usage->hid & 0xf0) == 0xb0) {	/* SC - Display */
			switch (usage->hid & 0xf) {
			case 0x05: map_key_clear(KEY_SWITCHVIDEOMODE); break;
			default: goto ignore;
			}
			break;
		}

		/*
		 * Some lazy vendors declare 255 usages for System Control,
		 * leading to the creation of ABS_X|Y axis and too many others.
@@ -902,7 +910,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
		case 0x06a: map_key_clear(KEY_GREEN);		break;
		case 0x06b: map_key_clear(KEY_BLUE);		break;
		case 0x06c: map_key_clear(KEY_YELLOW);		break;
		case 0x06d: map_key_clear(KEY_ZOOM);		break;
		case 0x06d: map_key_clear(KEY_ASPECT_RATIO);	break;

		case 0x06f: map_key_clear(KEY_BRIGHTNESSUP);		break;
		case 0x070: map_key_clear(KEY_BRIGHTNESSDOWN);		break;
@@ -911,6 +919,10 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
		case 0x074: map_key_clear(KEY_BRIGHTNESS_MAX);		break;
		case 0x075: map_key_clear(KEY_BRIGHTNESS_AUTO);		break;

		case 0x079: map_key_clear(KEY_KBDILLUMUP);	break;
		case 0x07a: map_key_clear(KEY_KBDILLUMDOWN);	break;
		case 0x07c: map_key_clear(KEY_KBDILLUMTOGGLE);	break;

		case 0x082: map_key_clear(KEY_VIDEO_NEXT);	break;
		case 0x083: map_key_clear(KEY_LAST);		break;
		case 0x084: map_key_clear(KEY_ENTER);		break;
@@ -1022,6 +1034,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
		case 0x22d: map_key_clear(KEY_ZOOMIN);		break;
		case 0x22e: map_key_clear(KEY_ZOOMOUT);		break;
		case 0x22f: map_key_clear(KEY_ZOOMRESET);	break;
		case 0x232: map_key_clear(KEY_FULL_SCREEN);	break;
		case 0x233: map_key_clear(KEY_SCROLLUP);	break;
		case 0x234: map_key_clear(KEY_SCROLLDOWN);	break;
		case 0x238: /* AC Pan */
@@ -1045,6 +1058,8 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
		case 0x2cb: map_key_clear(KEY_KBDINPUTASSIST_ACCEPT);	break;
		case 0x2cc: map_key_clear(KEY_KBDINPUTASSIST_CANCEL);	break;

		case 0x29f: map_key_clear(KEY_SCALE);		break;

		default: map_key_clear(KEY_UNKNOWN);
		}
		break;
+3 −3
Original line number Diff line number Diff line
@@ -148,6 +148,9 @@ static int imx_snvs_pwrkey_probe(struct platform_device *pdev)
		return error;
	}

	pdata->input = input;
	platform_set_drvdata(pdev, pdata);

	error = devm_request_irq(&pdev->dev, pdata->irq,
			       imx_snvs_pwrkey_interrupt,
			       0, pdev->name, pdev);
@@ -163,9 +166,6 @@ static int imx_snvs_pwrkey_probe(struct platform_device *pdev)
		return error;
	}

	pdata->input = input;
	platform_set_drvdata(pdev, pdata);

	device_init_wakeup(&pdev->dev, pdata->wakeup);

	return 0;
+25 −0
Original line number Diff line number Diff line
@@ -1339,21 +1339,46 @@ static const struct acpi_device_id elan_acpi_id[] = {
	{ "ELAN0600", 0 },
	{ "ELAN0601", 0 },
	{ "ELAN0602", 0 },
	{ "ELAN0603", 0 },
	{ "ELAN0604", 0 },
	{ "ELAN0605", 0 },
	{ "ELAN0606", 0 },
	{ "ELAN0607", 0 },
	{ "ELAN0608", 0 },
	{ "ELAN0609", 0 },
	{ "ELAN060B", 0 },
	{ "ELAN060C", 0 },
	{ "ELAN060F", 0 },
	{ "ELAN0610", 0 },
	{ "ELAN0611", 0 },
	{ "ELAN0612", 0 },
	{ "ELAN0615", 0 },
	{ "ELAN0616", 0 },
	{ "ELAN0617", 0 },
	{ "ELAN0618", 0 },
	{ "ELAN0619", 0 },
	{ "ELAN061A", 0 },
	{ "ELAN061B", 0 },
	{ "ELAN061C", 0 },
	{ "ELAN061D", 0 },
	{ "ELAN061E", 0 },
	{ "ELAN061F", 0 },
	{ "ELAN0620", 0 },
	{ "ELAN0621", 0 },
	{ "ELAN0622", 0 },
	{ "ELAN0623", 0 },
	{ "ELAN0624", 0 },
	{ "ELAN0625", 0 },
	{ "ELAN0626", 0 },
	{ "ELAN0627", 0 },
	{ "ELAN0628", 0 },
	{ "ELAN0629", 0 },
	{ "ELAN062A", 0 },
	{ "ELAN062B", 0 },
	{ "ELAN062C", 0 },
	{ "ELAN062D", 0 },
	{ "ELAN0631", 0 },
	{ "ELAN0632", 0 },
	{ "ELAN1000", 0 },
	{ }
};
+4 −2
Original line number Diff line number Diff line
@@ -439,10 +439,12 @@
#define KEY_TITLE		0x171
#define KEY_SUBTITLE		0x172
#define KEY_ANGLE		0x173
#define KEY_ZOOM		0x174
#define KEY_FULL_SCREEN		0x174	/* AC View Toggle */
#define KEY_ZOOM		KEY_FULL_SCREEN
#define KEY_MODE		0x175
#define KEY_KEYBOARD		0x176
#define KEY_SCREEN		0x177
#define KEY_ASPECT_RATIO	0x177	/* HUTRR37: Aspect */
#define KEY_SCREEN		KEY_ASPECT_RATIO
#define KEY_PC			0x178	/* Media Select Computer */
#define KEY_TV			0x179	/* Media Select TV */
#define KEY_TV2			0x17a	/* Media Select Cable */