From 10175bee9295f6e0b450c7d37db0235461fba44b Mon Sep 17 00:00:00 2001 From: OrionU Date: Sun, 8 Feb 2015 10:20:06 -0600 Subject: [PATCH 01/13] update header files from 3.19 --- src/kernel/Makefile | 2 +- src/kernel/hid-ids.h | 129 +++++++++++++++++++++++++++++++++++-- src/kernel/usbhid/usbhid.h | 9 +-- 3 files changed, 128 insertions(+), 12 deletions(-) diff --git a/src/kernel/Makefile b/src/kernel/Makefile index ee91069..43e09e5 100644 --- a/src/kernel/Makefile +++ b/src/kernel/Makefile @@ -12,4 +12,4 @@ build: clean: make -C $(KDIR) M=$(PWD) clean install: - make -C $(KDIR) M=$(PWD) modules_install \ No newline at end of file + make -C $(KDIR) M=$(PWD) modules_install diff --git a/src/kernel/hid-ids.h b/src/kernel/hid-ids.h index 38535c9..9243359 100644 --- a/src/kernel/hid-ids.h +++ b/src/kernel/hid-ids.h @@ -67,6 +67,9 @@ #define USB_VENDOR_ID_ALPS 0x0433 #define USB_DEVICE_ID_IBM_GAMEPAD 0x1101 +#define USB_VENDOR_ID_ANTON 0x1130 +#define USB_DEVICE_ID_ANTON_TOUCH_PAD 0x3101 + #define USB_VENDOR_ID_APPLE 0x05ac #define USB_DEVICE_ID_APPLE_MIGHTYMOUSE 0x0304 #define USB_DEVICE_ID_APPLE_MAGICMOUSE 0x030d @@ -135,6 +138,10 @@ #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS 0x023b #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI 0x0255 #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ISO 0x0256 +#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_JIS 0x0257 +#define USB_DEVICE_ID_APPLE_WELLSPRING8_ANSI 0x0290 +#define USB_DEVICE_ID_APPLE_WELLSPRING8_ISO 0x0291 +#define USB_DEVICE_ID_APPLE_WELLSPRING8_JIS 0x0292 #define USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY 0x030a #define USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY 0x030b #define USB_DEVICE_ID_APPLE_IRCONTROL 0x8240 @@ -237,6 +244,10 @@ #define USB_VENDOR_ID_CYGNAL 0x10c4 #define USB_DEVICE_ID_CYGNAL_RADIO_SI470X 0x818a +#define USB_DEVICE_ID_FOCALTECH_FTXXXX_MULTITOUCH 0x81b9 +#define USB_DEVICE_ID_CYGNAL_CP2112 0xea90 + +#define USB_DEVICE_ID_CYGNAL_RADIO_SI4713 0x8244 #define USB_VENDOR_ID_CYPRESS 0x04b4 #define USB_DEVICE_ID_CYPRESS_MOUSE 0x0001 @@ -248,6 +259,9 @@ #define USB_DEVICE_ID_CYPRESS_BARCODE_4 0xed81 #define USB_DEVICE_ID_CYPRESS_TRUETOUCH 0xc001 +#define USB_VENDOR_ID_DATA_MODUL 0x7374 +#define USB_VENDOR_ID_DATA_MODUL_EASYMAXTOUCH 0x1201 + #define USB_VENDOR_ID_DEALEXTREAME 0x10c5 #define USB_DEVICE_ID_DEALEXTREAME_RADIO_SI4701 0x819a @@ -272,22 +286,31 @@ #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_725E 0x725e #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7262 0x7262 #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B 0x726b -#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72AA 0x72aa #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1 0x72a1 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72AA 0x72aa +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72C4 0x72c4 +#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72D0 0x72d0 #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72FA 0x72fa #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302 0x7302 #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7349 0x7349 #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_73F7 0x73f7 #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001 0xa001 -#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7224 0x7224 -#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72D0 0x72d0 -#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72C4 0x72c4 + +#define USB_VENDOR_ID_ELAN 0x04f3 +#define USB_DEVICE_ID_ELAN_TOUCHSCREEN 0x0089 +#define USB_DEVICE_ID_ELAN_TOUCHSCREEN_009B 0x009b +#define USB_DEVICE_ID_ELAN_TOUCHSCREEN_0103 0x0103 +#define USB_DEVICE_ID_ELAN_TOUCHSCREEN_010c 0x010c +#define USB_DEVICE_ID_ELAN_TOUCHSCREEN_016F 0x016f #define USB_VENDOR_ID_ELECOM 0x056e #define USB_DEVICE_ID_ELECOM_BM084 0x0061 #define USB_VENDOR_ID_DREAM_CHEEKY 0x1d34 +#define USB_VENDOR_ID_ELITEGROUP 0x03fc +#define USB_DEVICE_ID_ELITEGROUP_05D8 0x05d8 + #define USB_VENDOR_ID_ELO 0x04E7 #define USB_DEVICE_ID_ELO_TS2515 0x0022 #define USB_DEVICE_ID_ELO_TS2700 0x0020 @@ -307,6 +330,7 @@ #define USB_VENDOR_ID_ETURBOTOUCH 0x22b9 #define USB_DEVICE_ID_ETURBOTOUCH 0x0006 +#define USB_DEVICE_ID_ETURBOTOUCH_2968 0x2968 #define USB_VENDOR_ID_EZKEY 0x0518 #define USB_DEVICE_ID_BTC_8193 0x0002 @@ -327,6 +351,11 @@ #define USB_VENDOR_ID_GENERAL_TOUCH 0x0dfc #define USB_DEVICE_ID_GENERAL_TOUCH_WIN7_TWOFINGERS 0x0003 #define USB_DEVICE_ID_GENERAL_TOUCH_WIN8_PWT_TENFINGERS 0x0100 +#define USB_DEVICE_ID_GENERAL_TOUCH_WIN8_PIT_0101 0x0101 +#define USB_DEVICE_ID_GENERAL_TOUCH_WIN8_PIT_0102 0x0102 +#define USB_DEVICE_ID_GENERAL_TOUCH_WIN8_PIT_0106 0x0106 +#define USB_DEVICE_ID_GENERAL_TOUCH_WIN8_PIT_010A 0x010a +#define USB_DEVICE_ID_GENERAL_TOUCH_WIN8_PIT_E100 0xe100 #define USB_VENDOR_ID_GLAB 0x06c2 #define USB_DEVICE_ID_4_PHIDGETSERVO_30 0x0038 @@ -425,6 +454,9 @@ #define USB_DEVICE_ID_UGCI_FLYING 0x0020 #define USB_DEVICE_ID_UGCI_FIGHTING 0x0030 +#define USB_VENDOR_ID_HUION 0x256c +#define USB_DEVICE_ID_HUION_TABLET 0x006e + #define USB_VENDOR_ID_IDEACOM 0x1cb6 #define USB_DEVICE_ID_IDEACOM_IDC6650 0x6650 #define USB_DEVICE_ID_IDEACOM_IDC6651 0x6651 @@ -432,6 +464,15 @@ #define USB_VENDOR_ID_ILITEK 0x222a #define USB_DEVICE_ID_ILITEK_MULTITOUCH 0x0001 +#define USB_VENDOR_ID_INTEL_0 0x8086 +#define USB_VENDOR_ID_INTEL_1 0x8087 +#define USB_DEVICE_ID_INTEL_HID_SENSOR_0 0x09fa +#define USB_DEVICE_ID_INTEL_HID_SENSOR_1 0x0a04 + +#define USB_VENDOR_ID_STM_0 0x0483 +#define USB_DEVICE_ID_STM_HID_SENSOR 0x91d1 +#define USB_DEVICE_ID_STM_HID_SENSOR_1 0x9100 + #define USB_VENDOR_ID_ION 0x15e4 #define USB_DEVICE_ID_ICADE 0x0132 @@ -440,6 +481,13 @@ #define USB_VENDOR_ID_HOLTEK_ALT 0x04d9 #define USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD 0xa055 +#define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A04A 0xa04a +#define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A067 0xa067 +#define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A070 0xa070 +#define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A072 0xa072 +#define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081 0xa081 +#define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A0C2 0xa0c2 +#define USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD_A096 0xa096 #define USB_VENDOR_ID_IMATION 0x0718 #define USB_DEVICE_ID_DISC_STAKKA 0xd000 @@ -447,6 +495,11 @@ #define USB_VENDOR_ID_IRTOUCHSYSTEMS 0x6615 #define USB_DEVICE_ID_IRTOUCH_INFRARED_USB 0x0070 +#define USB_VENDOR_ID_JABRA 0x0b0e +#define USB_DEVICE_ID_JABRA_SPEAK_410 0x0412 +#define USB_DEVICE_ID_JABRA_SPEAK_510 0x0420 +#define USB_DEVICE_ID_JABRA_GN9350E 0x9350 + #define USB_VENDOR_ID_JESS 0x0c45 #define USB_DEVICE_ID_JESS_YUREX 0x1010 @@ -467,9 +520,13 @@ #define USB_VENDOR_ID_KYE 0x0458 #define USB_DEVICE_ID_KYE_ERGO_525V 0x0087 +#define USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE 0x0138 +#define USB_DEVICE_ID_GENIUS_MANTICORE 0x0153 +#define USB_DEVICE_ID_GENIUS_GX_IMPERATOR 0x4018 #define USB_DEVICE_ID_KYE_GPEN_560 0x5003 #define USB_DEVICE_ID_KYE_EASYPEN_I405X 0x5010 #define USB_DEVICE_ID_KYE_MOUSEPEN_I608X 0x5011 +#define USB_DEVICE_ID_KYE_MOUSEPEN_I608X_2 0x501a #define USB_DEVICE_ID_KYE_EASYPEN_M610X 0x5013 #define USB_VENDOR_ID_LABTEC 0x1020 @@ -515,12 +572,15 @@ #define USB_VENDOR_ID_LENOVO 0x17ef #define USB_DEVICE_ID_LENOVO_TPKBD 0x6009 +#define USB_DEVICE_ID_LENOVO_CUSBKBD 0x6047 +#define USB_DEVICE_ID_LENOVO_CBTKBD 0x6048 #define USB_VENDOR_ID_LG 0x1fd2 #define USB_DEVICE_ID_LG_MULTITOUCH 0x0064 #define USB_VENDOR_ID_LOGITECH 0x046d #define USB_DEVICE_ID_LOGITECH_AUDIOHUB 0x0a0e +#define USB_DEVICE_ID_LOGITECH_T651 0xb00c #define USB_DEVICE_ID_LOGITECH_RECEIVER 0xc101 #define USB_DEVICE_ID_LOGITECH_HARMONY_FIRST 0xc110 #define USB_DEVICE_ID_LOGITECH_HARMONY_LAST 0xc14f @@ -528,6 +588,7 @@ #define USB_DEVICE_ID_LOGITECH_RUMBLEPAD_CORD 0xc20a #define USB_DEVICE_ID_LOGITECH_RUMBLEPAD 0xc211 #define USB_DEVICE_ID_LOGITECH_EXTREME_3D 0xc215 +#define USB_DEVICE_ID_LOGITECH_DUAL_ACTION 0xc216 #define USB_DEVICE_ID_LOGITECH_RUMBLEPAD2 0xc218 #define USB_DEVICE_ID_LOGITECH_RUMBLEPAD2_2 0xc219 #define USB_DEVICE_ID_LOGITECH_WINGMAN_F3D 0xc283 @@ -554,6 +615,7 @@ #define USB_DEVICE_ID_DINOVO_EDGE 0xc714 #define USB_DEVICE_ID_DINOVO_MINI 0xc71f #define USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2 0xca03 +#define USB_DEVICE_ID_LOGITECH_VIBRATION_WHEEL 0xca04 #define USB_VENDOR_ID_LUMIO 0x202e #define USB_DEVICE_ID_CRYSTALTOUCH 0x0006 @@ -561,6 +623,7 @@ #define USB_VENDOR_ID_MADCATZ 0x0738 #define USB_DEVICE_ID_MADCATZ_BEATPAD 0x4540 +#define USB_DEVICE_ID_MADCATZ_RAT9 0x1709 #define USB_VENDOR_ID_MCC 0x09db #define USB_DEVICE_ID_MCC_PMD1024LS 0x0076 @@ -578,6 +641,7 @@ #define USB_VENDOR_ID_MICROSOFT 0x045e #define USB_DEVICE_ID_SIDEWINDER_GV 0x003b +#define USB_DEVICE_ID_MS_OFFICE_KB 0x0048 #define USB_DEVICE_ID_WIRELESS_OPTICAL_DESKTOP_3_0 0x009d #define USB_DEVICE_ID_MS_NE4K 0x00db #define USB_DEVICE_ID_MS_NE4K_JP 0x00dc @@ -586,6 +650,10 @@ #define USB_DEVICE_ID_MS_PRESENTER_8K_USB 0x0713 #define USB_DEVICE_ID_MS_DIGITAL_MEDIA_3K 0x0730 #define USB_DEVICE_ID_MS_COMFORT_MOUSE_4500 0x076c +#define USB_DEVICE_ID_MS_SURFACE_PRO_2 0x0799 +#define USB_DEVICE_ID_MS_TOUCH_COVER_2 0x07a7 +#define USB_DEVICE_ID_MS_TYPE_COVER_2 0x07a9 +#define USB_DEVICE_ID_MS_TYPE_COVER_3 0x07dc #define USB_VENDOR_ID_MOJO 0x8282 #define USB_DEVICE_ID_RETRO_ADAPTER 0x3201 @@ -594,7 +662,7 @@ #define USB_DEVICE_ID_GENIUS_KB29E 0x3004 #define USB_VENDOR_ID_MSI 0x1770 -#define USB_DEVICE_ID_MSI_GX680R_LED_PANEL 0xff00 +#define USB_DEVICE_ID_MSI_GT683R_LED_PANEL 0xff00 #define USB_VENDOR_ID_NATIONAL_SEMICONDUCTOR 0x0400 #define USB_DEVICE_ID_N_S_HARMONY 0xc359 @@ -611,6 +679,7 @@ #define USB_VENDOR_ID_NEXIO 0x1870 #define USB_DEVICE_ID_NEXIO_MULTITOUCH_420 0x010d +#define USB_DEVICE_ID_NEXIO_MULTITOUCH_PTI0750 0x0110 #define USB_VENDOR_ID_NEXTWINDOW 0x1926 #define USB_DEVICE_ID_NEXTWINDOW_TOUCHSCREEN 0x0003 @@ -643,6 +712,7 @@ #define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_16 0x0012 #define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_17 0x0013 #define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_18 0x0014 +#define USB_DEVICE_ID_NTRIG_DUOSENSE 0x1500 #define USB_VENDOR_ID_ONTRAK 0x0a07 #define USB_DEVICE_ID_ONTRAK_ADU100 0x0064 @@ -651,6 +721,8 @@ #define USB_DEVICE_ID_ORTEK_PKB1700 0x1700 #define USB_DEVICE_ID_ORTEK_WKB2000 0x2000 +#define USB_VENDOR_ID_PLANTRONICS 0x047f + #define USB_VENDOR_ID_PANASONIC 0x04da #define USB_DEVICE_ID_PANABOARD_UBT780 0x1044 #define USB_DEVICE_ID_PANABOARD_UBT880 0x104d @@ -662,6 +734,9 @@ #define USB_VENDOR_ID_PENMOUNT 0x14e1 #define USB_DEVICE_ID_PENMOUNT_PCI 0x3500 +#define USB_DEVICE_ID_PENMOUNT_1610 0x1610 +#define USB_DEVICE_ID_PENMOUNT_1640 0x1640 +#define USB_DEVICE_ID_PENMOUNT_6000 0x6000 #define USB_VENDOR_ID_PETALYNX 0x18b1 #define USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE 0x0037 @@ -673,6 +748,8 @@ #define USB_DEVICE_ID_PI_ENGINEERING_VEC_USB_FOOTPEDAL 0xff #define USB_VENDOR_ID_PIXART 0x093a +#define USB_DEVICE_ID_PIXART_USB_OPTICAL_MOUSE_ID2 0x0137 +#define USB_DEVICE_ID_PIXART_USB_OPTICAL_MOUSE 0x2510 #define USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN 0x8001 #define USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN1 0x8002 #define USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN2 0x8003 @@ -701,21 +778,30 @@ #define USB_DEVICE_ID_ROCCAT_KONE 0x2ced #define USB_DEVICE_ID_ROCCAT_KONEPLUS 0x2d51 #define USB_DEVICE_ID_ROCCAT_KONEPURE 0x2dbe +#define USB_DEVICE_ID_ROCCAT_KONEPURE_OPTICAL 0x2db4 #define USB_DEVICE_ID_ROCCAT_KONEXTD 0x2e22 #define USB_DEVICE_ID_ROCCAT_KOVAPLUS 0x2d50 #define USB_DEVICE_ID_ROCCAT_LUA 0x2c2e #define USB_DEVICE_ID_ROCCAT_PYRA_WIRED 0x2c24 #define USB_DEVICE_ID_ROCCAT_PYRA_WIRELESS 0x2cf6 +#define USB_DEVICE_ID_ROCCAT_RYOS_MK 0x3138 +#define USB_DEVICE_ID_ROCCAT_RYOS_MK_GLOW 0x31ce +#define USB_DEVICE_ID_ROCCAT_RYOS_MK_PRO 0x3232 #define USB_DEVICE_ID_ROCCAT_SAVU 0x2d5a #define USB_VENDOR_ID_SAITEK 0x06a3 #define USB_DEVICE_ID_SAITEK_RUMBLEPAD 0xff17 #define USB_DEVICE_ID_SAITEK_PS1000 0x0621 +#define USB_DEVICE_ID_SAITEK_RAT7 0x0cd7 +#define USB_DEVICE_ID_SAITEK_MMO7 0x0cd0 #define USB_VENDOR_ID_SAMSUNG 0x0419 #define USB_DEVICE_ID_SAMSUNG_IR_REMOTE 0x0001 #define USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE 0x0600 +#define USB_VENDOR_ID_SEMICO 0x1a2c +#define USB_DEVICE_ID_SEMICO_USB_KEYKOARD 0x0023 + #define USB_VENDOR_ID_SENNHEISER 0x1395 #define USB_DEVICE_ID_SENNHEISER_BTD500USB 0x002c @@ -725,15 +811,27 @@ #define USB_VENDOR_ID_SIGMATEL 0x066F #define USB_DEVICE_ID_SIGMATEL_STMP3780 0x3780 +#define USB_VENDOR_ID_SIS_TOUCH 0x0457 +#define USB_DEVICE_ID_SIS9200_TOUCH 0x9200 +#define USB_DEVICE_ID_SIS817_TOUCH 0x0817 +#define USB_DEVICE_ID_SIS_TS 0x1013 +#define USB_DEVICE_ID_SIS1030_TOUCH 0x1030 + #define USB_VENDOR_ID_SKYCABLE 0x1223 #define USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER 0x3F07 +#define USB_VENDOR_ID_SMK 0x0609 +#define USB_DEVICE_ID_SMK_PS3_BDREMOTE 0x0306 + #define USB_VENDOR_ID_SONY 0x054c #define USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE 0x024b #define USB_DEVICE_ID_SONY_VAIO_VGP_MOUSE 0x0374 #define USB_DEVICE_ID_SONY_PS3_BDREMOTE 0x0306 #define USB_DEVICE_ID_SONY_PS3_CONTROLLER 0x0268 +#define USB_DEVICE_ID_SONY_PS4_CONTROLLER 0x05c4 #define USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER 0x042f +#define USB_DEVICE_ID_SONY_BUZZ_CONTROLLER 0x0002 +#define USB_DEVICE_ID_SONY_WIRELESS_BUZZ_CONTROLLER 0x1000 #define USB_VENDOR_ID_SOUNDGRAPH 0x15c2 #define USB_DEVICE_ID_SOUNDGRAPH_IMON_FIRST 0x0034 @@ -771,6 +869,14 @@ #define USB_DEVICE_ID_SYNAPTICS_COMP_TP 0x0009 #define USB_DEVICE_ID_SYNAPTICS_WTP 0x0010 #define USB_DEVICE_ID_SYNAPTICS_DPAD 0x0013 +#define USB_DEVICE_ID_SYNAPTICS_LTS1 0x0af8 +#define USB_DEVICE_ID_SYNAPTICS_LTS2 0x1d10 +#define USB_DEVICE_ID_SYNAPTICS_HD 0x0ac3 +#define USB_DEVICE_ID_SYNAPTICS_QUAD_HD 0x1ac3 +#define USB_DEVICE_ID_SYNAPTICS_TP_V103 0x5710 + +#define USB_VENDOR_ID_TEXAS_INSTRUMENTS 0x2047 +#define USB_DEVICE_ID_TEXAS_INSTRUMENTS_LENOVO_YOGA 0x0855 #define USB_VENDOR_ID_THINGM 0x27b8 #define USB_DEVICE_ID_BLINK1 0x01ed @@ -835,6 +941,9 @@ #define USB_DEVICE_ID_VERNIER_CYCLOPS 0x0004 #define USB_DEVICE_ID_VERNIER_LCSPEC 0x0006 +#define USB_VENDOR_ID_VTL 0x0306 +#define USB_DEVICE_ID_VTL_MULTITOUCH_FF3F 0xff3f + #define USB_VENDOR_ID_WACOM 0x056a #define USB_DEVICE_ID_WACOM_GRAPHIRE_BLUETOOTH 0x81 #define USB_DEVICE_ID_WACOM_INTUOS4_BLUETOOTH 0x00BD @@ -864,12 +973,18 @@ #define USB_DEVICE_ID_SUPER_DUAL_BOX_PRO 0x8802 #define USB_DEVICE_ID_SUPER_JOY_BOX_5_PRO 0x8804 +#define USB_VENDOR_ID_WISTRON 0x0fb8 +#define USB_DEVICE_ID_WISTRON_OPTICAL_TOUCH 0x1109 + #define USB_VENDOR_ID_X_TENSIONS 0x1ae7 #define USB_DEVICE_ID_SPEEDLINK_VAD_CEZANNE 0x9001 #define USB_VENDOR_ID_XAT 0x2505 #define USB_DEVICE_ID_XAT_CSR 0x0220 +#define USB_VENDOR_ID_XIN_MO 0x16c0 +#define USB_DEVICE_ID_XIN_MO_DUAL_ARCADE 0x05e1 + #define USB_VENDOR_ID_XIROKU 0x1477 #define USB_DEVICE_ID_XIROKU_SPX 0x1006 #define USB_DEVICE_ID_XIROKU_MPX 0x1007 @@ -895,4 +1010,8 @@ #define USB_VENDOR_ID_PRIMAX 0x0461 #define USB_DEVICE_ID_PRIMAX_KEYBOARD 0x4e05 + +#define USB_VENDOR_ID_RISO_KAGAKU 0x1294 /* Riso Kagaku Corp. */ +#define USB_DEVICE_ID_RI_KA_WEBMAIL 0x1320 /* Webmail Notifier */ + #endif diff --git a/src/kernel/usbhid/usbhid.h b/src/kernel/usbhid/usbhid.h index 68318b2..807922b 100644 --- a/src/kernel/usbhid/usbhid.h +++ b/src/kernel/usbhid/usbhid.h @@ -34,12 +34,9 @@ #include /* API provided by hid-core.c for USB HID drivers */ -int usbhid_wait_io(struct hid_device* hid); void usbhid_close(struct hid_device *hid); int usbhid_open(struct hid_device *hid); void usbhid_init_reports(struct hid_device *hid); -void usbhid_submit_report -(struct hid_device *hid, struct hid_report *report, unsigned char dir); int usbhid_get_power(struct hid_device *hid); void usbhid_put_power(struct hid_device *hid); struct usb_interface *usbhid_find_interface(int minor); @@ -53,9 +50,9 @@ struct usb_interface *usbhid_find_interface(int minor); #define HID_CLEAR_HALT 6 #define HID_DISCONNECTED 7 #define HID_STARTED 8 -#define HID_REPORTED_IDLE 9 #define HID_KEYS_PRESSED 10 -#define HID_LED_ON 11 +#define HID_NO_BANDWIDTH 11 +#define HID_RESUME_RUNNING 12 /* * USB-specific HID struct, to be pointed to @@ -96,10 +93,10 @@ struct usbhid_device { unsigned int retry_delay; /* Delay length in ms */ struct work_struct reset_work; /* Task context for resets */ wait_queue_head_t wait; /* For sleeping */ - int ledcount; /* counting the number of active leds */ }; #define hid_to_usb_dev(hid_dev) \ container_of(hid_dev->dev.parent->parent, struct usb_device, dev) #endif + From 93e48b58addd1ec4c675bd44afab51b938711d71 Mon Sep 17 00:00:00 2001 From: David Hou Date: Fri, 24 Jul 2015 13:58:41 -0700 Subject: [PATCH 02/13] Update for Linux 4.1.3 --- src/kernel/hid-ids.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/kernel/hid-ids.h b/src/kernel/hid-ids.h index 9243359..7ce93d9 100644 --- a/src/kernel/hid-ids.h +++ b/src/kernel/hid-ids.h @@ -164,6 +164,7 @@ #define USB_DEVICE_ID_ATEN_2PORTKVM 0x2204 #define USB_DEVICE_ID_ATEN_4PORTKVM 0x2205 #define USB_DEVICE_ID_ATEN_4PORTKVMC 0x2208 +#define USB_DEVICE_ID_ATEN_CS682 0x2213 #define USB_VENDOR_ID_ATMEL 0x03eb #define USB_DEVICE_ID_ATMEL_MULTITOUCH 0x211c @@ -189,6 +190,11 @@ #define USB_VENDOR_ID_BERKSHIRE 0x0c98 #define USB_DEVICE_ID_BERKSHIRE_PCWD 0x1140 +#define USB_VENDOR_ID_BETOP_2185BFM 0x11c2 +#define USB_VENDOR_ID_BETOP_2185PC 0x11c0 +#define USB_VENDOR_ID_BETOP_2185V2PC 0x8380 +#define USB_VENDOR_ID_BETOP_2185V2BFM 0x20bc + #define USB_VENDOR_ID_BTC 0x046e #define USB_DEVICE_ID_BTC_EMPREX_REMOTE 0x5578 #define USB_DEVICE_ID_BTC_EMPREX_REMOTE_2 0x5577 @@ -454,6 +460,11 @@ #define USB_DEVICE_ID_UGCI_FLYING 0x0020 #define USB_DEVICE_ID_UGCI_FIGHTING 0x0030 +#define USB_VENDOR_ID_HP 0x03f0 +#define USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0A4A 0x0a4a +#define USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0B4A 0x0b4a +#define USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE 0x134a + #define USB_VENDOR_ID_HUION 0x256c #define USB_DEVICE_ID_HUION_TABLET 0x006e @@ -528,6 +539,7 @@ #define USB_DEVICE_ID_KYE_MOUSEPEN_I608X 0x5011 #define USB_DEVICE_ID_KYE_MOUSEPEN_I608X_2 0x501a #define USB_DEVICE_ID_KYE_EASYPEN_M610X 0x5013 +#define USB_DEVICE_ID_KYE_PENSKETCH_M912 0x5015 #define USB_VENDOR_ID_LABTEC 0x1020 #define USB_DEVICE_ID_LABTEC_WIRELESS_KEYBOARD 0x0006 @@ -581,10 +593,14 @@ #define USB_VENDOR_ID_LOGITECH 0x046d #define USB_DEVICE_ID_LOGITECH_AUDIOHUB 0x0a0e #define USB_DEVICE_ID_LOGITECH_T651 0xb00c +#define USB_DEVICE_ID_LOGITECH_C077 0xc007 #define USB_DEVICE_ID_LOGITECH_RECEIVER 0xc101 #define USB_DEVICE_ID_LOGITECH_HARMONY_FIRST 0xc110 #define USB_DEVICE_ID_LOGITECH_HARMONY_LAST 0xc14f #define USB_DEVICE_ID_LOGITECH_HARMONY_PS3 0x0306 +#define USB_DEVICE_ID_LOGITECH_MOUSE_C01A 0xc01a +#define USB_DEVICE_ID_LOGITECH_MOUSE_C05A 0xc05a +#define USB_DEVICE_ID_LOGITECH_MOUSE_C06A 0xc06a #define USB_DEVICE_ID_LOGITECH_RUMBLEPAD_CORD 0xc20a #define USB_DEVICE_ID_LOGITECH_RUMBLEPAD 0xc211 #define USB_DEVICE_ID_LOGITECH_EXTREME_3D 0xc215 @@ -638,6 +654,7 @@ #define USB_DEVICE_ID_PICKIT2 0x0033 #define USB_DEVICE_ID_PICOLCD 0xc002 #define USB_DEVICE_ID_PICOLCD_BOOTLOADER 0xf002 +#define USB_DEVICE_ID_PICK16F1454 0x0042 #define USB_VENDOR_ID_MICROSOFT 0x045e #define USB_DEVICE_ID_SIDEWINDER_GV 0x003b @@ -648,12 +665,14 @@ #define USB_DEVICE_ID_MS_LK6K 0x00f9 #define USB_DEVICE_ID_MS_PRESENTER_8K_BT 0x0701 #define USB_DEVICE_ID_MS_PRESENTER_8K_USB 0x0713 +#define USB_DEVICE_ID_MS_NE7K 0x071d #define USB_DEVICE_ID_MS_DIGITAL_MEDIA_3K 0x0730 #define USB_DEVICE_ID_MS_COMFORT_MOUSE_4500 0x076c #define USB_DEVICE_ID_MS_SURFACE_PRO_2 0x0799 #define USB_DEVICE_ID_MS_TOUCH_COVER_2 0x07a7 #define USB_DEVICE_ID_MS_TYPE_COVER_2 0x07a9 #define USB_DEVICE_ID_MS_TYPE_COVER_3 0x07dc +#define USB_DEVICE_ID_MS_TYPE_COVER_3_JP 0x07dd #define USB_VENDOR_ID_MOJO 0x8282 #define USB_DEVICE_ID_RETRO_ADAPTER 0x3201 @@ -768,6 +787,9 @@ #define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3001 0x3001 #define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3008 0x3008 +#define USB_VENDOR_ID_RAZER 0x1532 +#define USB_DEVICE_ID_RAZER_BLADE_14 0x011D + #define USB_VENDOR_ID_REALTEK 0x0bda #define USB_DEVICE_ID_REALTEK_READER 0x0152 @@ -792,6 +814,7 @@ #define USB_VENDOR_ID_SAITEK 0x06a3 #define USB_DEVICE_ID_SAITEK_RUMBLEPAD 0xff17 #define USB_DEVICE_ID_SAITEK_PS1000 0x0621 +#define USB_DEVICE_ID_SAITEK_RAT7_OLD 0x0ccb #define USB_DEVICE_ID_SAITEK_RAT7 0x0cd7 #define USB_DEVICE_ID_SAITEK_MMO7 0x0cd0 @@ -886,6 +909,7 @@ #define USB_VENDOR_ID_TIVO 0x150a #define USB_DEVICE_ID_TIVO_SLIDE_BT 0x1200 #define USB_DEVICE_ID_TIVO_SLIDE 0x1201 +#define USB_DEVICE_ID_TIVO_SLIDE_PRO 0x1203 #define USB_VENDOR_ID_TOPSEED 0x0766 #define USB_DEVICE_ID_TOPSEED_CYBERLINK 0x0204 @@ -1008,6 +1032,7 @@ #define USB_DEVICE_ID_ZYTRONIC_ZXY100 0x0005 #define USB_VENDOR_ID_PRIMAX 0x0461 +#define USB_DEVICE_ID_PRIMAX_MOUSE_4D22 0x4d22 #define USB_DEVICE_ID_PRIMAX_KEYBOARD 0x4e05 From df798970c1d2523a6a08cd9f6293da627ab2364f Mon Sep 17 00:00:00 2001 From: David Hou Date: Wed, 19 Aug 2015 15:34:37 -0700 Subject: [PATCH 03/13] Update for Linux 4.2 --- src/kernel/hid-ids.h | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/src/kernel/hid-ids.h b/src/kernel/hid-ids.h index 7ce93d9..b3b225b 100644 --- a/src/kernel/hid-ids.h +++ b/src/kernel/hid-ids.h @@ -142,6 +142,9 @@ #define USB_DEVICE_ID_APPLE_WELLSPRING8_ANSI 0x0290 #define USB_DEVICE_ID_APPLE_WELLSPRING8_ISO 0x0291 #define USB_DEVICE_ID_APPLE_WELLSPRING8_JIS 0x0292 +#define USB_DEVICE_ID_APPLE_WELLSPRING9_ANSI 0x0272 +#define USB_DEVICE_ID_APPLE_WELLSPRING9_ISO 0x0273 +#define USB_DEVICE_ID_APPLE_WELLSPRING9_JIS 0x0274 #define USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY 0x030a #define USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY 0x030b #define USB_DEVICE_ID_APPLE_IRCONTROL 0x8240 @@ -227,6 +230,7 @@ #define USB_DEVICE_ID_CHICONY_TACTICAL_PAD 0x0418 #define USB_DEVICE_ID_CHICONY_MULTI_TOUCH 0xb19d #define USB_DEVICE_ID_CHICONY_WIRELESS 0x0618 +#define USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE 0x1053 #define USB_DEVICE_ID_CHICONY_WIRELESS2 0x1123 #define USB_DEVICE_ID_CHICONY_AK1D 0x1125 @@ -363,16 +367,6 @@ #define USB_DEVICE_ID_GENERAL_TOUCH_WIN8_PIT_010A 0x010a #define USB_DEVICE_ID_GENERAL_TOUCH_WIN8_PIT_E100 0xe100 -#define USB_VENDOR_ID_GLAB 0x06c2 -#define USB_DEVICE_ID_4_PHIDGETSERVO_30 0x0038 -#define USB_DEVICE_ID_1_PHIDGETSERVO_30 0x0039 -#define USB_DEVICE_ID_0_0_4_IF_KIT 0x0040 -#define USB_DEVICE_ID_0_16_16_IF_KIT 0x0044 -#define USB_DEVICE_ID_8_8_8_IF_KIT 0x0045 -#define USB_DEVICE_ID_0_8_7_IF_KIT 0x0051 -#define USB_DEVICE_ID_0_8_8_IF_KIT 0x0053 -#define USB_DEVICE_ID_PHIDGET_MOTORCONTROL 0x0058 - #define USB_VENDOR_ID_GOODTOUCH 0x1aad #define USB_DEVICE_ID_GOODTOUCH_000f 0x000f @@ -586,6 +580,7 @@ #define USB_DEVICE_ID_LENOVO_TPKBD 0x6009 #define USB_DEVICE_ID_LENOVO_CUSBKBD 0x6047 #define USB_DEVICE_ID_LENOVO_CBTKBD 0x6048 +#define USB_DEVICE_ID_LENOVO_TPPRODOCK 0x6067 #define USB_VENDOR_ID_LG 0x1fd2 #define USB_DEVICE_ID_LG_MULTITOUCH 0x0064 @@ -673,6 +668,7 @@ #define USB_DEVICE_ID_MS_TYPE_COVER_2 0x07a9 #define USB_DEVICE_ID_MS_TYPE_COVER_3 0x07dc #define USB_DEVICE_ID_MS_TYPE_COVER_3_JP 0x07dd +#define USB_DEVICE_ID_MS_POWER_COVER 0x07da #define USB_VENDOR_ID_MOJO 0x8282 #define USB_DEVICE_ID_RETRO_ADAPTER 0x3201 @@ -852,6 +848,7 @@ #define USB_DEVICE_ID_SONY_PS3_BDREMOTE 0x0306 #define USB_DEVICE_ID_SONY_PS3_CONTROLLER 0x0268 #define USB_DEVICE_ID_SONY_PS4_CONTROLLER 0x05c4 +#define USB_DEVICE_ID_SONY_MOTION_CONTROLLER 0x03d5 #define USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER 0x042f #define USB_DEVICE_ID_SONY_BUZZ_CONTROLLER 0x0002 #define USB_DEVICE_ID_SONY_WIRELESS_BUZZ_CONTROLLER 0x1000 @@ -958,13 +955,6 @@ #define USB_DEVICE_ID_VELLEMAN_K8061_FIRST 0x8061 #define USB_DEVICE_ID_VELLEMAN_K8061_LAST 0x8068 -#define USB_VENDOR_ID_VERNIER 0x08f7 -#define USB_DEVICE_ID_VERNIER_LABPRO 0x0001 -#define USB_DEVICE_ID_VERNIER_GOTEMP 0x0002 -#define USB_DEVICE_ID_VERNIER_SKIP 0x0003 -#define USB_DEVICE_ID_VERNIER_CYCLOPS 0x0004 -#define USB_DEVICE_ID_VERNIER_LCSPEC 0x0006 - #define USB_VENDOR_ID_VTL 0x0306 #define USB_DEVICE_ID_VTL_MULTITOUCH_FF3F 0xff3f @@ -983,9 +973,6 @@ #define USB_VENDOR_ID_WISEGROUP 0x0925 #define USB_DEVICE_ID_SMARTJOY_PLUS 0x0005 -#define USB_DEVICE_ID_1_PHIDGETSERVO_20 0x8101 -#define USB_DEVICE_ID_4_PHIDGETSERVO_20 0x8104 -#define USB_DEVICE_ID_8_8_4_IF_KIT 0x8201 #define USB_DEVICE_ID_SUPER_JOY_BOX_3 0x8888 #define USB_DEVICE_ID_QUAD_USB_JOYPAD 0x8800 #define USB_DEVICE_ID_DUAL_USB_JOYPAD 0x8866 @@ -1039,4 +1026,11 @@ #define USB_VENDOR_ID_RISO_KAGAKU 0x1294 /* Riso Kagaku Corp. */ #define USB_DEVICE_ID_RI_KA_WEBMAIL 0x1320 /* Webmail Notifier */ +#define USB_VENDOR_ID_MULTIPLE_1781 0x1781 +#define USB_DEVICE_ID_RAPHNET_4NES4SNES_OLD 0x0a8d + +#define USB_VENDOR_ID_DRACAL_RAPHNET 0x289b +#define USB_DEVICE_ID_RAPHNET_2NES2SNES 0x0002 +#define USB_DEVICE_ID_RAPHNET_4NES4SNES 0x0003 + #endif From e514e3c95276225e49bcaef4b2e001600a950fb7 Mon Sep 17 00:00:00 2001 From: Woodrow Douglass Date: Thu, 7 Apr 2016 14:27:23 -0400 Subject: [PATCH 04/13] Remap input events to be more amenable to default X11 mapping (in debian). Update .Xmodmap to match legacy mapping. --- misc/.Xmodmap | 20 +++++++++---------- src/kernel/hid-lg-g710-plus.c | 36 +++++++++++++++++++++-------------- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/misc/.Xmodmap b/misc/.Xmodmap index 0774e8f..f53d0af 100644 --- a/misc/.Xmodmap +++ b/misc/.Xmodmap @@ -1,10 +1,10 @@ -keycode 191 = XF86Launch0 -keycode 192 = XF86Launch1 -keycode 193 = XF86Launch2 -keycode 194 = XF86Launch3 -keycode 195 = XF86Launch4 -keycode 196 = XF86Launch5 -keycode 197 = XF86Launch6 -keycode 198 = XF86Launch7 -keycode 199 = XF86Launch8 -keycode 200 = XF86Launch9 +keycode 156 = XF86Launch0 +keycode 157 = XF86Launch1 +keycode 210 = XF86Launch2 +keycode 211 = XF86Launch3 +keycode 192 = XF86Launch4 +keycode 193 = XF86Launch5 +keycode 194 = XF86Launch6 +keycode 195 = XF86Launch7 +keycode 196 = XF86Launch8 +keycode 128 = XF86Launch9 diff --git a/src/kernel/hid-lg-g710-plus.c b/src/kernel/hid-lg-g710-plus.c index a0db963..8317853 100644 --- a/src/kernel/hid-lg-g710-plus.c +++ b/src/kernel/hid-lg-g710-plus.c @@ -36,16 +36,16 @@ static const u8 g710_plus_key_map[LOGITECH_KEY_MAP_SIZE] = { 0, /* unused */ 0, /* unused */ 0, /* unused */ - KEY_F13, /* M1 */ - KEY_F14, /* M2 */ - KEY_F15, /* M3 */ - KEY_F16, /* MR */ - KEY_F17, /* G1 */ - KEY_F18, /* G2 */ - KEY_F19, /* G3 */ - KEY_F20, /* G4 */ - KEY_F21, /* G5 */ - KEY_F22, /* G6 */ + KEY_PROG1, /* M1 */ + KEY_PROG2, /* M2 */ + KEY_PROG3, /* M3 */ + KEY_PROG4, /* MR */ + KEY_F14, /* G1 */ + KEY_F15, /* G2 */ + KEY_F16, /* G3 */ + KEY_F17, /* G4 */ + KEY_F18, /* G5 */ + KEY_SCALE, /* G6 */ 0, /* unused */ 0, /* unused */ }; @@ -131,13 +131,21 @@ static int lg_g710_plus_raw_event(struct hid_device *hdev, struct hid_report *re } } -static int lg_g710_plus_input_mapping(struct hid_device *hdev, struct hid_input *hi, struct hid_field *field, struct hid_usage *usage, unsigned long **bit, int *max) -{ +static void lg_g710_plus_input_configured(struct hid_device *hdev, + struct hid_input *hi) { struct lg_g710_plus_data* data = lg_g710_plus_get_data(hdev); + u8 i; + if (data != NULL && data->input_dev == NULL) { data->input_dev= hi->input; } - return 0; + + set_bit(EV_KEY, data->input_dev->evbit); + for (i = 0; i < LOGITECH_KEY_MAP_SIZE; i++) { + if (g710_plus_key_map[i] != 0) { + set_bit(g710_plus_key_map[i], data->input_dev->keybit); + } + } } enum req_type { @@ -335,7 +343,7 @@ static struct hid_driver lg_g710_plus_driver = { .name = "hid-lg-g710-plus", .id_table = lg_g710_plus_devices, .raw_event = lg_g710_plus_raw_event, - .input_mapping = lg_g710_plus_input_mapping, + .input_configured = lg_g710_plus_input_configured, .probe= lg_g710_plus_probe, .remove= lg_g710_plus_remove, }; From a9443298699f1004a936928a2f3a69631b20653f Mon Sep 17 00:00:00 2001 From: Woodrow Douglass Date: Thu, 7 Apr 2016 21:46:22 -0400 Subject: [PATCH 05/13] only report keys that we actually have. --- src/kernel/hid-lg-g710-plus.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/kernel/hid-lg-g710-plus.c b/src/kernel/hid-lg-g710-plus.c index 8317853..282d849 100644 --- a/src/kernel/hid-lg-g710-plus.c +++ b/src/kernel/hid-lg-g710-plus.c @@ -135,17 +135,34 @@ static void lg_g710_plus_input_configured(struct hid_device *hdev, struct hid_input *hi) { struct lg_g710_plus_data* data = lg_g710_plus_get_data(hdev); u8 i; - + struct list_head *feature_report_list = &hdev->report_enum[HID_FEATURE_REPORT].report_list; + + if (list_empty(feature_report_list)) { + //bail on the keyboard device, we only want the aux key device. + return; + } + if (data != NULL && data->input_dev == NULL) { data->input_dev= hi->input; } set_bit(EV_KEY, data->input_dev->evbit); + memset(data->input_dev->keybit, 0, sizeof(data->input_dev->keybit)); + //add the synthetic keys for (i = 0; i < LOGITECH_KEY_MAP_SIZE; i++) { if (g710_plus_key_map[i] != 0) { set_bit(g710_plus_key_map[i], data->input_dev->keybit); } } + //also, add the media keys back + set_bit(KEY_PLAYPAUSE); + set_bit(KEY_STOPCD); + set_bit(KEY_PREVIOUSSONG); + set_bit(KEY_NEXTSONG); + set_bit(KEY_VOLUMEUP); + set_bit(KEY_VOLUMEDOWN); + set_bit(KEY_MUTE); + } enum req_type { From d528043db1012b6cb40747d612bce3353d146cbe Mon Sep 17 00:00:00 2001 From: vixi Date: Wed, 11 May 2016 10:14:05 +0430 Subject: [PATCH 06/13] The input_configured callback was recently changed to return an 'int' --- .gitignore | 114 ++++++++++++++++++++++++++++++++++ src/kernel/hid-lg-g710-plus.c | 25 ++++---- 2 files changed, 127 insertions(+), 12 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fd3a355 --- /dev/null +++ b/.gitignore @@ -0,0 +1,114 @@ +# +# NOTE! Don't add files that are generated in specific +# subdirectories here. Add them in the ".gitignore" file +# in that subdirectory instead. +# +# NOTE! Please use 'git ls-files -i --exclude-standard' +# command after changing this file, to see if there are +# any tracked files which get ignored after the change. +# +# Normal rules +# +.* +*.o +*.o.* +*.a +*.s +*.ko +*.so +*.so.dbg +*.mod.c +*.i +*.lst +*.symtypes +*.order +*.elf +*.bin +*.tar +*.gz +*.bz2 +*.lzma +*.xz +*.lz4 +*.lzo +*.patch +*.gcno +modules.builtin +Module.symvers +*.dwo +*.su + +# +# Top-level generic files +# +/tags +/TAGS +/linux +/vmlinux +/vmlinux.32 +/vmlinux-gdb.py +/vmlinuz +/System.map +/Module.markers + +# +# Debian directory (make deb-pkg) +# +/debian/ + +# +# tar directory (make tar*-pkg) +# +/tar-install/ + +# +# git files that we don't want to ignore even it they are dot-files +# +!.gitignore +!.mailmap + +# +# Generated include files +# +include/config +include/generated +arch/*/include/generated + +# stgit generated dirs +patches-* + +# quilt's files +patches +series + +# cscope files +cscope.* +ncscope.* + +# gnu global files +GPATH +GRTAGS +GSYMS +GTAGS + +# id-utils files +ID + +*.orig +*~ +\#*# + +# +# Leavings from module signing +# +extra_certificates +signing_key.pem +signing_key.priv +signing_key.x509 +x509.genkey + +# Kconfig presets +all.config + +# Kdevelop4 +*.kdev4 diff --git a/src/kernel/hid-lg-g710-plus.c b/src/kernel/hid-lg-g710-plus.c index 282d849..dce0465 100644 --- a/src/kernel/hid-lg-g710-plus.c +++ b/src/kernel/hid-lg-g710-plus.c @@ -63,7 +63,7 @@ struct lg_g710_plus_data { struct hid_report *gamemode_report; /* Controls the backlight of other buttons */ u16 macro_button_state; /* Holds the last state of the G1-G6, M1-MR buttons. Required to know which buttons were pressed and which were released */ - struct hid_device *hdev; + struct hid_device *hdev; struct input_dev *input_dev; struct attribute_group attr_group; @@ -131,7 +131,7 @@ static int lg_g710_plus_raw_event(struct hid_device *hdev, struct hid_report *re } } -static void lg_g710_plus_input_configured(struct hid_device *hdev, +static int lg_g710_plus_input_configured(struct hid_device *hdev, struct hid_input *hi) { struct lg_g710_plus_data* data = lg_g710_plus_get_data(hdev); u8 i; @@ -139,13 +139,13 @@ static void lg_g710_plus_input_configured(struct hid_device *hdev, if (list_empty(feature_report_list)) { //bail on the keyboard device, we only want the aux key device. - return; + return 0; } if (data != NULL && data->input_dev == NULL) { data->input_dev= hi->input; } - + set_bit(EV_KEY, data->input_dev->evbit); memset(data->input_dev->keybit, 0, sizeof(data->input_dev->keybit)); //add the synthetic keys @@ -155,14 +155,15 @@ static void lg_g710_plus_input_configured(struct hid_device *hdev, } } //also, add the media keys back - set_bit(KEY_PLAYPAUSE); - set_bit(KEY_STOPCD); - set_bit(KEY_PREVIOUSSONG); - set_bit(KEY_NEXTSONG); - set_bit(KEY_VOLUMEUP); - set_bit(KEY_VOLUMEDOWN); - set_bit(KEY_MUTE); - + set_bit(KEY_PLAYPAUSE, data->input_dev->keybit); + set_bit(KEY_STOPCD, data->input_dev->keybit); + set_bit(KEY_PREVIOUSSONG, data->input_dev->keybit); + set_bit(KEY_NEXTSONG, data->input_dev->keybit); + set_bit(KEY_VOLUMEUP, data->input_dev->keybit); + set_bit(KEY_VOLUMEDOWN, data->input_dev->keybit); + set_bit(KEY_MUTE, data->input_dev->keybit); + + return 0; } enum req_type { From 9e340e034766f51813f15a256d4c5a9e5f20cb17 Mon Sep 17 00:00:00 2001 From: Woodrow Douglass Date: Tue, 24 May 2016 09:35:42 -0400 Subject: [PATCH 07/13] do the kernel version dance. --- src/kernel/hid-lg-g710-plus.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/kernel/hid-lg-g710-plus.c b/src/kernel/hid-lg-g710-plus.c index dce0465..5870adc 100644 --- a/src/kernel/hid-lg-g710-plus.c +++ b/src/kernel/hid-lg-g710-plus.c @@ -131,15 +131,22 @@ static int lg_g710_plus_raw_event(struct hid_device *hdev, struct hid_report *re } } +#if LINUX_VERSION_CODE > KERNEL_VERSION(4,3,0) +#define CONFIGURED_SUCCESS 0 static int lg_g710_plus_input_configured(struct hid_device *hdev, struct hid_input *hi) { +#else +#define CONFIGURED_SUCCESS +static void lg_g710_plus_input_configured(struct hid_device *hdev, + struct hid_input *hi) { +#endif struct lg_g710_plus_data* data = lg_g710_plus_get_data(hdev); u8 i; struct list_head *feature_report_list = &hdev->report_enum[HID_FEATURE_REPORT].report_list; if (list_empty(feature_report_list)) { //bail on the keyboard device, we only want the aux key device. - return 0; + return CONFIGURED_SUCCESS; } if (data != NULL && data->input_dev == NULL) { @@ -163,7 +170,7 @@ static int lg_g710_plus_input_configured(struct hid_device *hdev, set_bit(KEY_VOLUMEDOWN, data->input_dev->keybit); set_bit(KEY_MUTE, data->input_dev->keybit); - return 0; + return CONFIGURED_SUCCESS; } enum req_type { From 1e893b8af380a4f9dfa51f86bc1a1d40dc13d252 Mon Sep 17 00:00:00 2001 From: Woodrow Douglass Date: Tue, 24 May 2016 12:02:10 -0400 Subject: [PATCH 08/13] new kernels get proper led-class devices for the m leds. triggers don't seem to work yet... --- src/kernel/hid-lg-g710-plus.c | 98 ++++++++++++++++++++++++++++++++++- 1 file changed, 97 insertions(+), 1 deletion(-) diff --git a/src/kernel/hid-lg-g710-plus.c b/src/kernel/hid-lg-g710-plus.c index 5870adc..c79e2e6 100644 --- a/src/kernel/hid-lg-g710-plus.c +++ b/src/kernel/hid-lg-g710-plus.c @@ -72,6 +72,13 @@ struct lg_g710_plus_data { spinlock_t lock; /* lock for communication with user space */ struct completion ready; /* ready indicator */ + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0) + struct led_classdev m1; + struct led_classdev m2; + struct led_classdev m3; + struct led_classdev mr; +#endif }; static ssize_t lg_g710_plus_show_led_macro(struct device *device, struct device_attribute *attr, char *buf); @@ -186,6 +193,12 @@ static void hidhw_request(struct hid_device *hdev, struct hid_report *report, en #endif } + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0) +static int brightness_set_sync(struct led_classdev *led_cdev, + enum led_brightness brightness); +#endif + static int lg_g710_plus_initialize(struct hid_device *hdev) { int ret = 0; struct lg_g710_plus_data *data; @@ -209,6 +222,28 @@ static int lg_g710_plus_initialize(struct hid_device *hdev) { } ret= sysfs_create_group(&hdev->dev.kobj, &data->attr_group); + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0) +#define SETUP_LED(x, color) { \ + int name_sz = strlen(dev_name(&hdev->dev)) \ + + strlen(#color) + strlen(#x) + 3; \ + char *name = devm_kzalloc(&hdev->dev, \ + name_sz, GFP_KERNEL); \ + snprintf(name, name_sz, "%s:%s:%s", \ + dev_name(&hdev->dev), #color, #x); \ + data->x.name = name; \ + data->x.brightness_set_blocking = brightness_set_sync; \ + data->x.brightness = 0; \ + data->x.max_brightness = 1; \ + led_classdev_register(&hdev->dev, &data->x); \ + } + + SETUP_LED(m1, yellow); + SETUP_LED(m2, yellow); + SETUP_LED(m3, yellow); + SETUP_LED(mr, red); +#endif + return ret; } @@ -266,7 +301,7 @@ static int lg_g710_plus_probe(struct hid_device *hdev, const struct hid_device_i hid_hw_stop(hdev); goto err_free; } - + return 0; err_free: @@ -281,9 +316,24 @@ static void lg_g710_plus_remove(struct hid_device *hdev) struct lg_g710_plus_data* data = lg_g710_plus_get_data(hdev); struct list_head *feature_report_list = &hdev->report_enum[HID_FEATURE_REPORT].report_list; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0) + if (data != NULL) { + struct list_head *feature_report_list = &hdev->report_enum[HID_FEATURE_REPORT].report_list; + + if (!list_empty(feature_report_list)) { + //only unregister these for the aux key device. + led_classdev_unregister(&data->m1); + led_classdev_unregister(&data->m2); + led_classdev_unregister(&data->m3); + led_classdev_unregister(&data->mr); + } + } +#endif + if (data != NULL && !list_empty(feature_report_list)) sysfs_remove_group(&hdev->dev.kobj, &data->attr_group); + hid_hw_stop(hdev); if (data != NULL) { kfree(data); @@ -358,6 +408,52 @@ static ssize_t lg_g710_plus_store_led_keys(struct device *device, struct device_ return count; } +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0) +static int brightness_set_sync(struct led_classdev *led_cdev, + enum led_brightness brightness) { + struct device *dev = led_cdev->dev->parent; + struct hid_device *hdev = container_of(dev, struct hid_device, dev); + struct lg_g710_plus_data* data = hid_get_drvdata(hdev); + + spin_lock(&data->lock); + { + s32 *mask = NULL; + u8 shift = 0; + if (led_cdev == &data->m1) { + mask = &data->mr_buttons_led_report->field[0]->value[0]; + shift = 4; + } + else if (led_cdev == &data->m2) { + mask = &data->mr_buttons_led_report->field[0]->value[0]; + shift = 5; + } + else if (led_cdev == &data->m3) { + mask = &data->mr_buttons_led_report->field[0]->value[0]; + shift = 6; + } + else if (led_cdev == &data->mr) { + mask = &data->mr_buttons_led_report->field[0]->value[0]; + shift = 7; + } + + if (mask != NULL) { + if (brightness == LED_OFF) { + *mask = (*mask) & ~(1 << shift); + } + else { + *mask = (*mask) | (1 << shift); + } + } + + } + + hidhw_request(data->hdev, data->mr_buttons_led_report, REQTYPE_WRITE); + spin_unlock(&data->lock); + + return 0; +} +#endif + static const struct hid_device_id lg_g710_plus_devices[] = { { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_KEYBOARD_G710_PLUS) }, { } From 009c030d2372672e43dc79030eca00651b5955f0 Mon Sep 17 00:00:00 2001 From: Woodrow Douglass Date: Thu, 26 May 2016 11:05:07 -0400 Subject: [PATCH 09/13] led names are less crazy, and triggers work now. --- src/kernel/hid-lg-g710-plus.c | 67 ++++++++++++++++++++++------------- 1 file changed, 43 insertions(+), 24 deletions(-) diff --git a/src/kernel/hid-lg-g710-plus.c b/src/kernel/hid-lg-g710-plus.c index c79e2e6..2f41970 100644 --- a/src/kernel/hid-lg-g710-plus.c +++ b/src/kernel/hid-lg-g710-plus.c @@ -74,10 +74,10 @@ struct lg_g710_plus_data { struct completion ready; /* ready indicator */ #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0) - struct led_classdev m1; - struct led_classdev m2; - struct led_classdev m3; - struct led_classdev mr; + struct g710_led_s { + struct led_classdev cd; + struct work_struct work; + } m1, m2, m3, mr; #endif }; @@ -197,8 +197,22 @@ static void hidhw_request(struct hid_device *hdev, struct hid_report *report, en #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0) static int brightness_set_sync(struct led_classdev *led_cdev, enum led_brightness brightness); + +static void led_work(struct work_struct *work) { + struct g710_led_s *led = container_of(work, struct g710_led_s, work); + brightness_set_sync(&led->cd, led->cd.brightness); +} + +static void brightness_set(struct led_classdev *led_cdev, + enum led_brightness brightness) { + struct g710_led_s *led = container_of(led_cdev, struct g710_led_s, cd); + led_cdev->brightness = brightness; + dev_err(led_cdev->dev, "schedule_work\n"); + schedule_work(&led->work); +} #endif + static int lg_g710_plus_initialize(struct hid_device *hdev) { int ret = 0; struct lg_g710_plus_data *data; @@ -224,18 +238,21 @@ static int lg_g710_plus_initialize(struct hid_device *hdev) { ret= sysfs_create_group(&hdev->dev.kobj, &data->attr_group); #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0) -#define SETUP_LED(x, color) { \ - int name_sz = strlen(dev_name(&hdev->dev)) \ - + strlen(#color) + strlen(#x) + 3; \ - char *name = devm_kzalloc(&hdev->dev, \ - name_sz, GFP_KERNEL); \ - snprintf(name, name_sz, "%s:%s:%s", \ - dev_name(&hdev->dev), #color, #x); \ - data->x.name = name; \ - data->x.brightness_set_blocking = brightness_set_sync; \ - data->x.brightness = 0; \ - data->x.max_brightness = 1; \ - led_classdev_register(&hdev->dev, &data->x); \ +#define SETUP_LED(x, color) { \ + int name_sz = strlen(dev_name(&data->input_dev->dev)) \ + + strlen(#color) + strlen(#x) + 3; \ + char *name = devm_kzalloc(&hdev->dev, \ + name_sz, GFP_KERNEL); \ + snprintf(name, name_sz, "%s:%s:%s", \ + dev_name(&data->input_dev->dev), #color, #x); \ + \ + INIT_WORK(&data->x.work, led_work); \ + data->x.cd.name = name; \ + data->x.cd.brightness_set = brightness_set; \ + data->x.cd.brightness_set_blocking = brightness_set_sync; \ + data->x.cd.brightness = 0; \ + data->x.cd.max_brightness = 1; \ + led_classdev_register(&hdev->dev, &data->x.cd); \ } SETUP_LED(m1, yellow); @@ -322,10 +339,10 @@ static void lg_g710_plus_remove(struct hid_device *hdev) if (!list_empty(feature_report_list)) { //only unregister these for the aux key device. - led_classdev_unregister(&data->m1); - led_classdev_unregister(&data->m2); - led_classdev_unregister(&data->m3); - led_classdev_unregister(&data->mr); + led_classdev_unregister(&data->m1.cd); + led_classdev_unregister(&data->m2.cd); + led_classdev_unregister(&data->m3.cd); + led_classdev_unregister(&data->mr.cd); } } #endif @@ -415,23 +432,25 @@ static int brightness_set_sync(struct led_classdev *led_cdev, struct hid_device *hdev = container_of(dev, struct hid_device, dev); struct lg_g710_plus_data* data = hid_get_drvdata(hdev); + dev_err(led_cdev->dev, "brightness set\n"); + spin_lock(&data->lock); { s32 *mask = NULL; u8 shift = 0; - if (led_cdev == &data->m1) { + if (led_cdev == &data->m1.cd) { mask = &data->mr_buttons_led_report->field[0]->value[0]; shift = 4; } - else if (led_cdev == &data->m2) { + else if (led_cdev == &data->m2.cd) { mask = &data->mr_buttons_led_report->field[0]->value[0]; shift = 5; } - else if (led_cdev == &data->m3) { + else if (led_cdev == &data->m3.cd) { mask = &data->mr_buttons_led_report->field[0]->value[0]; shift = 6; } - else if (led_cdev == &data->mr) { + else if (led_cdev == &data->mr.cd) { mask = &data->mr_buttons_led_report->field[0]->value[0]; shift = 7; } From 6678210c7d17512c161bec79f4835975f4108586 Mon Sep 17 00:00:00 2001 From: Woodrow Douglass Date: Thu, 26 May 2016 11:11:53 -0400 Subject: [PATCH 10/13] remove some debug statements. --- src/kernel/hid-lg-g710-plus.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/kernel/hid-lg-g710-plus.c b/src/kernel/hid-lg-g710-plus.c index 2f41970..1d0e07a 100644 --- a/src/kernel/hid-lg-g710-plus.c +++ b/src/kernel/hid-lg-g710-plus.c @@ -207,7 +207,6 @@ static void brightness_set(struct led_classdev *led_cdev, enum led_brightness brightness) { struct g710_led_s *led = container_of(led_cdev, struct g710_led_s, cd); led_cdev->brightness = brightness; - dev_err(led_cdev->dev, "schedule_work\n"); schedule_work(&led->work); } #endif @@ -432,8 +431,6 @@ static int brightness_set_sync(struct led_classdev *led_cdev, struct hid_device *hdev = container_of(dev, struct hid_device, dev); struct lg_g710_plus_data* data = hid_get_drvdata(hdev); - dev_err(led_cdev->dev, "brightness set\n"); - spin_lock(&data->lock); { s32 *mask = NULL; From 4b084462e38ada78356488e4a7e9582c428171f5 Mon Sep 17 00:00:00 2001 From: Woodrow Douglass Date: Mon, 6 Jun 2016 09:28:21 -0400 Subject: [PATCH 11/13] add more led hooks, some safety. --- src/kernel/hid-lg-g710-plus.c | 125 ++++++++++++++++++++++++---------- 1 file changed, 88 insertions(+), 37 deletions(-) diff --git a/src/kernel/hid-lg-g710-plus.c b/src/kernel/hid-lg-g710-plus.c index 1d0e07a..87ed48b 100644 --- a/src/kernel/hid-lg-g710-plus.c +++ b/src/kernel/hid-lg-g710-plus.c @@ -77,7 +77,7 @@ struct lg_g710_plus_data { struct g710_led_s { struct led_classdev cd; struct work_struct work; - } m1, m2, m3, mr; + } *m1, *m2, *m3, *mr, *keys, *wasd; #endif }; @@ -206,6 +206,8 @@ static void led_work(struct work_struct *work) { static void brightness_set(struct led_classdev *led_cdev, enum led_brightness brightness) { struct g710_led_s *led = container_of(led_cdev, struct g710_led_s, cd); + if ((led_cdev->flags & LED_UNREGISTERING) != 0) + return; //do nothing if we're shutting down. led_cdev->brightness = brightness; schedule_work(&led->work); } @@ -237,27 +239,42 @@ static int lg_g710_plus_initialize(struct hid_device *hdev) { ret= sysfs_create_group(&hdev->dev.kobj, &data->attr_group); #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0) -#define SETUP_LED(x, color) { \ - int name_sz = strlen(dev_name(&data->input_dev->dev)) \ - + strlen(#color) + strlen(#x) + 3; \ - char *name = devm_kzalloc(&hdev->dev, \ - name_sz, GFP_KERNEL); \ - snprintf(name, name_sz, "%s:%s:%s", \ - dev_name(&data->input_dev->dev), #color, #x); \ - \ - INIT_WORK(&data->x.work, led_work); \ - data->x.cd.name = name; \ - data->x.cd.brightness_set = brightness_set; \ - data->x.cd.brightness_set_blocking = brightness_set_sync; \ - data->x.cd.brightness = 0; \ - data->x.cd.max_brightness = 1; \ - led_classdev_register(&hdev->dev, &data->x.cd); \ +#define SETUP_LED(x, color, max) { \ + int name_sz = strlen(dev_name(&data->input_dev->dev)) \ + + strlen(#color) + strlen(#x) + 3; \ + char *name = devm_kzalloc(&hdev->dev, \ + name_sz, GFP_KERNEL); \ + if (name != NULL) { \ + data->x = devm_kzalloc(&hdev->dev, \ + sizeof(*data->x), GFP_KERNEL); \ + if (data->x != NULL) { \ + snprintf(name, name_sz, "%s:%s:%s", \ + dev_name(&data->input_dev->dev), #color, #x); \ + \ + INIT_WORK(&data->x->work, led_work); \ + data->x->cd.name = name; \ + data->x->cd.brightness_set = brightness_set; \ + data->x->cd.brightness_set_blocking = brightness_set_sync; \ + data->x->cd.brightness = 0; \ + data->x->cd.max_brightness = max; \ + if (0 != led_classdev_register(&hdev->dev, &data->x->cd)) { \ + devm_kfree(&hdev->dev, name); \ + devm_kfree(&hdev->dev, data->x); \ + data->x = NULL; \ + } \ + } \ + else { \ + devm_kfree(&hdev->dev, name); \ + } \ + } \ } - SETUP_LED(m1, yellow); - SETUP_LED(m2, yellow); - SETUP_LED(m3, yellow); - SETUP_LED(mr, red); + SETUP_LED(m1, yellow, 1); + SETUP_LED(m2, yellow, 1); + SETUP_LED(m3, yellow, 1); + SETUP_LED(mr, red, 1); + SETUP_LED(keys, white, 4); + SETUP_LED(wasd, white, 4); #endif return ret; @@ -334,14 +351,23 @@ static void lg_g710_plus_remove(struct hid_device *hdev) #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0) if (data != NULL) { - struct list_head *feature_report_list = &hdev->report_enum[HID_FEATURE_REPORT].report_list; - - if (!list_empty(feature_report_list)) { - //only unregister these for the aux key device. - led_classdev_unregister(&data->m1.cd); - led_classdev_unregister(&data->m2.cd); - led_classdev_unregister(&data->m3.cd); - led_classdev_unregister(&data->mr.cd); + if (data->m1) { + led_classdev_unregister(&data->m1->cd); + } + if (data->m2) { + led_classdev_unregister(&data->m2->cd); + } + if (data->m3) { + led_classdev_unregister(&data->m3->cd); + } + if (data->mr) { + led_classdev_unregister(&data->mr->cd); + } + if (data->keys) { + led_classdev_unregister(&data->keys->cd); + } + if (data->wasd) { + led_classdev_unregister(&data->wasd->cd); } } #endif @@ -430,40 +456,65 @@ static int brightness_set_sync(struct led_classdev *led_cdev, struct device *dev = led_cdev->dev->parent; struct hid_device *hdev = container_of(dev, struct hid_device, dev); struct lg_g710_plus_data* data = hid_get_drvdata(hdev); + bool mk = false; spin_lock(&data->lock); { s32 *mask = NULL; u8 shift = 0; - if (led_cdev == &data->m1.cd) { + if (data->m1 != NULL && led_cdev == &data->m1->cd) { mask = &data->mr_buttons_led_report->field[0]->value[0]; shift = 4; + mk = true; } - else if (led_cdev == &data->m2.cd) { + else if (data->m2 != NULL && led_cdev == &data->m2->cd) { mask = &data->mr_buttons_led_report->field[0]->value[0]; shift = 5; + mk = true; } - else if (led_cdev == &data->m3.cd) { + else if (data->m3 != NULL && led_cdev == &data->m3->cd) { mask = &data->mr_buttons_led_report->field[0]->value[0]; shift = 6; + mk = true; } - else if (led_cdev == &data->mr.cd) { + else if (data->mr != NULL && led_cdev == &data->mr->cd) { mask = &data->mr_buttons_led_report->field[0]->value[0]; shift = 7; + mk = true; + } + else if (data->wasd != NULL && led_cdev == &data->wasd->cd) { + mask = &data->other_buttons_led_report->field[0]->value[0]; + mk = false; + } + else if (data->keys != NULL && led_cdev == &data->keys->cd) { + mask = &data->other_buttons_led_report->field[0]->value[1]; + mk = false; } if (mask != NULL) { - if (brightness == LED_OFF) { - *mask = (*mask) & ~(1 << shift); + + if (mk) { + if (brightness == LED_OFF) { + *mask = (*mask) & ~(1 << shift); + } + else { + *mask = (*mask) | (1 << shift); + } } else { - *mask = (*mask) | (1 << shift); + *mask = 4 - brightness; } } + + } + + if (mk) { + hidhw_request(data->hdev, data->mr_buttons_led_report, REQTYPE_WRITE); + } + else { + hidhw_request(data->hdev, data->other_buttons_led_report, REQTYPE_WRITE); } - - hidhw_request(data->hdev, data->mr_buttons_led_report, REQTYPE_WRITE); spin_unlock(&data->lock); return 0; From 63713452247688de6f660419bb708f437c870bb3 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Thu, 16 Nov 2017 03:29:13 +0100 Subject: [PATCH 12/13] Fix dkms building for currently not running kernel If you are using dkms to build the module for a installed kernel, that is not runnig during compilation, you need to pass the kernel version from dkms to the makefile. --- src/kernel/dkms.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/kernel/dkms.conf b/src/kernel/dkms.conf index af0d1b3..8eedc61 100644 --- a/src/kernel/dkms.conf +++ b/src/kernel/dkms.conf @@ -1,8 +1,8 @@ BUILT_MODULE_NAME=hid-lg-g710-plus PACKAGE_NAME=hid-lg-g710-plus PACKAGE_VERSION=0.1 -MAKE="make" -CLEAN="make clean" +MAKE="make KVERSION=$kernelver" +CLEAN="make clean KVERSION=$kernelver" DEST_MODULE_LOCATION="/updates" REMAKE_INITRD=yes AUTOINSTALL="yes" From 8629802232680d5220107f0a0f5bb64d5d968959 Mon Sep 17 00:00:00 2001 From: jonpas Date: Fri, 7 Jul 2023 13:36:31 +0200 Subject: [PATCH 13/13] Remove deprecated REMAKE_INITRD dkms option --- src/kernel/dkms.conf | 1 - 1 file changed, 1 deletion(-) diff --git a/src/kernel/dkms.conf b/src/kernel/dkms.conf index 8eedc61..c2579d5 100644 --- a/src/kernel/dkms.conf +++ b/src/kernel/dkms.conf @@ -4,5 +4,4 @@ PACKAGE_VERSION=0.1 MAKE="make KVERSION=$kernelver" CLEAN="make clean KVERSION=$kernelver" DEST_MODULE_LOCATION="/updates" -REMAKE_INITRD=yes AUTOINSTALL="yes"