HP Elitebook 2170p is weird compared with many other Elitebooks supported by coreboot, for its keyboard scan codes under coreboot are different with those under oem firmware, regardless of the same set of EC firmware blobs are used. The scan codes under oem firmware conform to the upstream 60-keyboard.hwdb, and my discovery should be only applied to those HP Elitebook 2170p running coreboot, so I updated the 61-2170p-kb.hwdb. (attached)
# Imitation of oem firmware evdev:atkbd:dmi:bvncoreboot:bvr*:bd*:svnHewlett-Packard*:pn*EliteBook2170p:* # coreboot default evdev:atkbd:dmi:bvncoreboot:bvr*:bd*:svnHP*:pn*EliteBook2170p:* KEYBOARD_KEY_66=backspace KEYBOARD_KEY_be=battery # Fn+F2 KEYBOARD_KEY_d7=switchvideomode # Fn+F4 KEYBOARD_KEY_a3=mute # Fn+F5 KEYBOARD_KEY_a1=volumedown # Fn+F6 KEYBOARD_KEY_a2=volumeup # Fn+F7 KEYBOARD_KEY_a4=brightnessdown # Fn+F9 KEYBOARD_KEY_c3=brightnessup # Fn+F10 KEYBOARD_KEY_e3=wlan # Fn+F12