d743bb5
diff --git a/hwdb/60-evdev.hwdb b/hwdb/60-evdev.hwdb
d743bb5
index fd9078393b..82814701b7 100644
d743bb5
--- a/hwdb/60-evdev.hwdb
d743bb5
+++ b/hwdb/60-evdev.hwdb
d743bb5
@@ -115,6 +115,13 @@ evdev:name:ETPS/2 Elantech Touchpad:dmi:*:svnASUSTeKCOMPUTERINC.:pn?550C?:*
d743bb5
  EVDEV_ABS_35=::31
d743bb5
  EVDEV_ABS_36=::30
d743bb5
 
d743bb5
+# Asus UX301L
d743bb5
+evdev:name:Elan Touchpad:dmi:*:svnASUSTeKCOMPUTERINC.:pnUX301LAA:*
d743bb5
+ EVDEV_ABS_00=::30
d743bb5
+ EVDEV_ABS_01=::29
d743bb5
+ EVDEV_ABS_35=::30
d743bb5
+ EVDEV_ABS_36=::29
d743bb5
+
d743bb5
 # Asus UX305
d743bb5
 evdev:name:Elan Touchpad:dmi:*:svnASUSTeKCOMPUTERINC.:pnUX305UA:*
d743bb5
  EVDEV_ABS_00=0:3097:32
d743bb5
@@ -178,6 +185,15 @@ evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:bvn*:bvr*:bd*:svnDellInc.:pnXPSM1530*
d743bb5
  EVDEV_ABS_00=85:947:15
d743bb5
  EVDEV_ABS_01=154:726:18
d743bb5
 
d743bb5
+#####
d743bb5
+# Sun
d743bb5
+#####
d743bb5
+
d743bb5
+# Fujitsu Component - USB Touch Panel
d743bb5
+evdev:input:b0003v0430p0530*
d743bb5
+ EVDEV_ABS_00=0:4096:16
d743bb5
+ EVDEV_ABS_01=0:4096:16
d743bb5
+
d743bb5
 #########################################
d743bb5
 # Google
d743bb5
 #########################################
d743bb5
@@ -338,6 +354,13 @@ evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnSAMSUNGELECTRONICSCO.,LTD.:pn305V4A/
d743bb5
  EVDEV_ABS_35=0:2480:28
d743bb5
  EVDEV_ABS_36=0:1116:24
d743bb5
 
d743bb5
+# Samsung 880Z5E
d743bb5
+evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnSAMSUNGELECTRONICSCO.,LTD.:pn870Z5E/880Z5E/680Z5E*
d743bb5
+ EVDEV_ABS_00=::30
d743bb5
+ EVDEV_ABS_01=::29
d743bb5
+ EVDEV_ABS_35=::30
d743bb5
+ EVDEV_ABS_36=::29
d743bb5
+
d743bb5
 #########################################
d743bb5
 # Toshiba
d743bb5
 #########################################
d743bb5
@@ -346,3 +369,12 @@ evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnSAMSUNGELECTRONICSCO.,LTD.:pn305V4A/
d743bb5
 evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:*svnTOSHIBA:pnTECRAM11*
d743bb5
  EVDEV_ABS_00=90:962:11
d743bb5
  EVDEV_ABS_01=51:681:14
d743bb5
+
d743bb5
+#########################################
d743bb5
+# Waltop
d743bb5
+#########################################
d743bb5
+
d743bb5
+# WALTOP International Corp. Slim Tablet
d743bb5
+evdev:input:b0003v172Fp0031*
d743bb5
+ EVDEV_ABS_00=0:10000:400
d743bb5
+ EVDEV_ABS_01=0:6250:400
d743bb5
diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb
d743bb5
index 1aa729f047..e8be567166 100644
d743bb5
--- a/hwdb/60-keyboard.hwdb
d743bb5
+++ b/hwdb/60-keyboard.hwdb
d743bb5
@@ -1,7 +1,14 @@
d743bb5
 # This file is part of systemd.
d743bb5
 #
d743bb5
-# Keyboard mapping of scan codes to key codes, and
d743bb5
-# scan codes to add to the AT keyboard's 'force-release' list.
d743bb5
+# This file contains 3 types of metadata to apply to keyboards and
d743bb5
+# keyboard-like input devices:
d743bb5
+# - Key mapping
d743bb5
+# - Hard-coded layouts
d743bb5
+# - Absence of modifier LEDs
d743bb5
+#
d743bb5
+# The matching process is the same for the different types of metadata.
d743bb5
+#
d743bb5
+# ########################### MATCHING #######################################
d743bb5
 #
d743bb5
 # The lookup keys are composed in:
d743bb5
 #   60-evdev.rules
d743bb5
@@ -40,6 +47,12 @@
d743bb5
 #    /sys/class/input/input?/capabilities/ev" and <vendor> is the
d743bb5
 #    firmware-provided string exported by the kernel DMI modalias,
d743bb5
 #    see /sys/class/dmi/id/modalias
d743bb5
+
d743bb5
+
d743bb5
+# ######################### KEY MAPPING ######################################
d743bb5
+#
d743bb5
+# Keyboard mapping of scan codes to key codes, and
d743bb5
+# scan codes to add to the AT keyboard's 'force-release' list.
d743bb5
 #
d743bb5
 # Scan codes are specified as:
d743bb5
 #   KEYBOARD_KEY_<hex scan code>=<key code identifier>
d743bb5
@@ -84,6 +97,7 @@
d743bb5
 evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*
d743bb5
 evdev:atkbd:dmi:bvn*:bvr*:bd*:svnGateway*:pnA0A1*:pvr*
d743bb5
 evdev:atkbd:dmi:bvn*:bvr*:bd*:svneMachines:pneMachines*E725:pvr*
d743bb5
+ KEYBOARD_KEY_86=wlan                                   # Fn+F3 or Fn+Q for comunication key
d743bb5
  KEYBOARD_KEY_a5=help                                   # Fn+F1
d743bb5
  KEYBOARD_KEY_a6=setup                                  # Fn+F2 Acer eSettings
d743bb5
  KEYBOARD_KEY_a7=battery                                # Fn+F3 Power Management
d743bb5
@@ -105,6 +119,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svneMachines:pneMachines*E725:pvr*
d743bb5
  KEYBOARD_KEY_f3=prog2                                  # "P2" programmable button
d743bb5
  KEYBOARD_KEY_f4=prog1                                  # "P1" programmable button
d743bb5
  KEYBOARD_KEY_f5=presentation
d743bb5
+ KEYBOARD_KEY_f6=power                                  # Power button
d743bb5
  KEYBOARD_KEY_f8=fn
d743bb5
  KEYBOARD_KEY_f9=prog1                                  # Launch NTI shadow
d743bb5
 
d743bb5
@@ -144,6 +159,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*C3[01]0*:pvr*
d743bb5
  KEYBOARD_KEY_6b=fn
d743bb5
  KEYBOARD_KEY_6c=screenlock                             # FIXME: lock tablet device/buttons
d743bb5
 
d743bb5
+# Travelmate P648-G2-MG
d743bb5
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*P648-G2-MG*:pvr*
d743bb5
+ KEYBOARD_KEY_8a=f20                                    # Microphone mute button; should be micmute
d743bb5
+
d743bb5
 # on some models this isn't brightnessup
d743bb5
 evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5210*:pvr*
d743bb5
 evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5220*:pvr*
d743bb5
@@ -158,6 +177,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*1640:*
d743bb5
 evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAOA*:pvr*
d743bb5
  KEYBOARD_KEY_a9=!switchvideomode                       # Fn+F5
d743bb5
 
d743bb5
+# Easynote models
d743bb5
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPackard*Bell*:pnEasynote*:pvr*
d743bb5
+ KEYBOARD_KEY_86=wlan                                   # Fn+F3 or Fn+Q for comunication key
d743bb5
+
d743bb5
 ###########################################################
d743bb5
 # Alienware
d743bb5
 ###########################################################
d743bb5
@@ -222,7 +245,7 @@ evdev:input:b0003v049Fp0051*
d743bb5
 ###########################################################
d743bb5
 
d743bb5
 evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:bvn*:bvr*:bd*:svncube:pni1-TF:*
d743bb5
- KEYBOARD_KEY_0=home
d743bb5
+ KEYBOARD_KEY_0=leftmeta
d743bb5
  KEYBOARD_KEY_1=power
d743bb5
 
d743bb5
 ###########################################################
d743bb5
@@ -291,6 +314,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:pvr*
d743bb5
  KEYBOARD_KEY_88=!                                      # wireless switch
d743bb5
  KEYBOARD_KEY_9e=!f21
d743bb5
 
d743bb5
+# Dell Latitude E7*
d743bb5
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*E7*:pvr*
d743bb5
+ KEYBOARD_KEY_88=unknown                                # Fn-PrtScr rfkill - handled in HW
d743bb5
+
d743bb5
 # Dell XPS
d743bb5
 evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr*
d743bb5
  KEYBOARD_KEY_8c=!unknown
d743bb5
@@ -831,6 +858,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMAXDATA:pnPro*7000*:pvr*
d743bb5
 ###########################################################
d743bb5
 
d743bb5
 # Akoya
d743bb5
+evdev:atkbd:dmi:bvn*:bvr*:svnMEDION*:pnS3409*:pvr*
d743bb5
 evdev:atkbd:dmi:bvn*:bvr*:svnMedion*:pnAkoya*:pvr*
d743bb5
  KEYBOARD_KEY_a0=!mute
d743bb5
  KEYBOARD_KEY_ae=!volumedown
d743bb5
@@ -1274,9 +1302,13 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDIXONSP:pnDIXON*:pvr*
d743bb5
  KEYBOARD_KEY_ae=!                                      # volume down
d743bb5
  KEYBOARD_KEY_b0=!                                      # volume up
d743bb5
 
d743bb5
-###########################################################
d743bb5
-# Fixed layout devices
d743bb5
-###########################################################
d743bb5
+######################### FIXED LAYOUT DEVICES #############################
d743bb5
+# This section lists devices for which only one keyboard layout is possible
d743bb5
+# or useful such as devices which "type" expecting the user's keymap to match
d743bb5
+# a particular one. For example, barcode readers and OTP keys.
d743bb5
+#
d743bb5
+# The layout must be an xkb compatible layout (defined with XKB_FIXED_LAYOUT),
d743bb5
+# with an accompanying variant (defined with XKB_FIXED_VARIANT) if necessary.
d743bb5
 
d743bb5
 # Yubico Yubico Yubikey II"
d743bb5
 evdev:input:b0003v1050p0010*
d743bb5
@@ -1288,3 +1320,16 @@ evdev:input:b0003v1050p0116*
d743bb5
 evdev:input:b0003v05FEp1010*
d743bb5
  XKB_FIXED_LAYOUT="us"
d743bb5
  XKB_FIXED_VARIANT=""
d743bb5
+
d743bb5
+######################### LACK OF MODIFIER LEDS ############################
d743bb5
+# This section lists keyboard which do not have their own LEDs for some
d743bb5
+# modifiers. Only Caps-Lock (KEYBOARD_LED_CAPSLOCK) and Num-Lock
d743bb5
+# (KEYBOARD_LED_CAPSLOCK) are currently handled and need their values set
d743bb5
+# to "0" to indicate the absence of LED.
d743bb5
+#
d743bb5
+# Presence of a LED is implicit when the property is absent.
d743bb5
+
d743bb5
+# Logitech K750
d743bb5
+evdev:input:b0003v046Dp4002*
d743bb5
+ KEYBOARD_LED_NUMLOCK=0
d743bb5
+ KEYBOARD_LED_CAPSLOCK=0
d743bb5
diff --git a/hwdb/60-sensor.hwdb b/hwdb/60-sensor.hwdb
d743bb5
index fcbdcabf30..2436ca7367 100644
d743bb5
--- a/hwdb/60-sensor.hwdb
d743bb5
+++ b/hwdb/60-sensor.hwdb
d743bb5
@@ -47,6 +47,22 @@
d743bb5
 sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP500LB*
d743bb5
  ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 0
d743bb5
 
d743bb5
+sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP300LJ*
d743bb5
+ ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
d743bb5
+
d743bb5
+#########################################
d743bb5
+# Endless
d743bb5
+#########################################
d743bb5
+sensor:modalias:acpi:ACCE0001*:dmi:*svnEndless*:*pnELT-NL3*
d743bb5
+ ACCEL_MOUNT_MATRIX=0, 1, 0; 0, 0, -1; -1, 0, 0
d743bb5
+
d743bb5
+#########################################
d743bb5
+# HP
d743bb5
+#########################################
d743bb5
+sensor:modalias:platform:lis3lv02d:dmi:*svn*Hewlett-Packard*:*pn*HPEliteBook8540w*
d743bb5
+sensor:modalias:platform:lis3lv02d:dmi:*svn*Hewlett-Packard*:*pn*HPEliteBook8560w*
d743bb5
+  ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 0, -1; 0, 1, 0
d743bb5
+
d743bb5
 #########################################
d743bb5
 # Winbook
d743bb5
 #########################################
d743bb5
diff --git a/hwdb/70-mouse.hwdb b/hwdb/70-mouse.hwdb
d743bb5
index 772534f495..d49c472926 100644
d743bb5
--- a/hwdb/70-mouse.hwdb
d743bb5
+++ b/hwdb/70-mouse.hwdb
d743bb5
@@ -244,6 +244,14 @@ mouse:usb:v093ap2510:name:PIXART USB OPTICAL MOUSE:
d743bb5
  MOUSE_DPI=1000@125
d743bb5
 
d743bb5
 ##########################################
d743bb5
+# IBM
d743bb5
+##########################################
d743bb5
+
d743bb5
+# IBM USB Travel Mouse (MO32BO)
d743bb5
+mouse:usb:v04b3p3107:name:*
d743bb5
+ MOUSE_DPI=800@125
d743bb5
+
d743bb5
+##########################################
d743bb5
 # Lenovo
d743bb5
 ##########################################
d743bb5
 
d743bb5
diff --git a/hwdb/70-pointingstick.hwdb b/hwdb/70-pointingstick.hwdb
d743bb5
index 65c87aeac7..f1a86ff20b 100644
d743bb5
--- a/hwdb/70-pointingstick.hwdb
d743bb5
+++ b/hwdb/70-pointingstick.hwdb
d743bb5
@@ -126,10 +126,16 @@ evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX1Ta
d743bb5
  POINTINGSTICK_SENSITIVITY=200
d743bb5
  POINTINGSTICK_CONST_ACCEL=1.0
d743bb5
 
d743bb5
-# Lenovo Thinkpad X200s / X201s
d743bb5
+# Lenovo Thinkpad X200/X201/X200s/X201s
d743bb5
 # Note these come with 2 revisions of keyboard, with the trackpoints having a
d743bb5
 # different sensitivity in the different revisions. 1.25 is a bit slow for the
d743bb5
 # least sensitive revision, but it is better to be a bit slow than too fast.
d743bb5
-evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX20?s:*
d743bb5
+evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX20?:*
d743bb5
+evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX20??:*
d743bb5
  POINTINGSTICK_SENSITIVITY=200
d743bb5
  POINTINGSTICK_CONST_ACCEL=1.25
d743bb5
+
d743bb5
+# Lenovo UltraNav SK-8845 (USB keyboard)
d743bb5
+evdev:input:b0003v06CBp0009*
d743bb5
+ POINTINGSTICK_CONST_ACCEL=2.5
d743bb5
+ POINTINGSTICK_SENSITIVITY=200
d743bb5
diff --git a/hwdb/70-touchpad.hwdb b/hwdb/70-touchpad.hwdb
d743bb5
index 82a4b7a575..12d97de69b 100644
d743bb5
--- a/hwdb/70-touchpad.hwdb
d743bb5
+++ b/hwdb/70-touchpad.hwdb
d743bb5
@@ -53,3 +53,10 @@ touchpad:usb:v05ac*
d743bb5
 ###########################################################
d743bb5
 touchpad:usb:v056a*
d743bb5
  ID_INPUT_TOUCHPAD_INTEGRATION=external
d743bb5
+
d743bb5
+###########################################################
d743bb5
+# Microsoft (Surface Type Covers)
d743bb5
+###########################################################
d743bb5
+touchpad:usb:v045ep07*
d743bb5
+ ID_INPUT_TOUCHPAD_INTEGRATION=internal
d743bb5
+ 
d743bb5
diff --git a/hwdb/parse_hwdb.py b/hwdb/parse_hwdb.py
d743bb5
index b57e6f75aa..adf8a1963e 100755
d743bb5
--- a/hwdb/parse_hwdb.py
d743bb5
+++ b/hwdb/parse_hwdb.py
d743bb5
@@ -1,4 +1,4 @@
d743bb5
-#!/usr/bin/python3
d743bb5
+#!/usr/bin/env python3
d743bb5
 # -*- Mode: python; coding: utf-8; indent-tabs-mode: nil -*- */
d743bb5
 #
d743bb5
 # This file is part of systemd. It is distrubuted under the MIT license, see
d743bb5
@@ -112,6 +112,8 @@ def property_grammar():
d743bb5
              ('ID_INPUT_TOUCHPAD_INTEGRATION', Or(('internal', 'external'))),
d743bb5
              ('XKB_FIXED_LAYOUT', STRING),
d743bb5
              ('XKB_FIXED_VARIANT', STRING),
d743bb5
+             ('KEYBOARD_LED_NUMLOCK', Literal('0')),
d743bb5
+             ('KEYBOARD_LED_CAPSLOCK', Literal('0')),
d743bb5
              ('ACCEL_MOUNT_MATRIX', mount_matrix),
d743bb5
             )
d743bb5
     fixed_props = [Literal(name)('NAME') - Suppress('=') - val('VALUE')