* [PATCH] HID: hid-lg: Add USBID for Logitech G29 Wheel @ 2015-07-24 1:10 Simon Wood 2015-07-29 12:10 ` Jiri Kosina 2015-09-03 2:02 ` simon 0 siblings, 2 replies; 6+ messages in thread From: Simon Wood @ 2015-07-24 1:10 UTC (permalink / raw) To: linux-input; +Cc: linux-kernel, Jiri Kosina, Simon Wood Since this wheel is now available, and the USBID is listed on their website, this patch adds it to allow the hid-lg4ff force feedback driver to find it. I do not have this wheel to test with, but this should at least get it working in emulation mode. Note: There is probably more work required for adjust HID descriptor and handle switching between emulation and native modes. Signed-off-by: Simon Wood <simon@mungewell.org> --- drivers/hid/hid-ids.h | 1 + drivers/hid/hid-lg.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index b04b082..653bfd4 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -599,6 +599,7 @@ #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_G29_WHEEL 0xc24f #define USB_DEVICE_ID_LOGITECH_WINGMAN_F3D 0xc283 #define USB_DEVICE_ID_LOGITECH_FORCE3D_PRO 0xc286 #define USB_DEVICE_ID_LOGITECH_FLIGHT_SYSTEM_G940 0xc287 diff --git a/drivers/hid/hid-lg.c b/drivers/hid/hid-lg.c index 429340d..5332fb7 100644 --- a/drivers/hid/hid-lg.c +++ b/drivers/hid/hid-lg.c @@ -776,6 +776,8 @@ static const struct hid_device_id lg_devices[] = { .driver_data = LG_FF }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2_2), .driver_data = LG_FF }, + { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G29_WHEEL), + .driver_data = LG_FF4 }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WINGMAN_F3D), .driver_data = LG_FF }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_FORCE3D_PRO), -- 2.1.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] HID: hid-lg: Add USBID for Logitech G29 Wheel 2015-07-24 1:10 [PATCH] HID: hid-lg: Add USBID for Logitech G29 Wheel Simon Wood @ 2015-07-29 12:10 ` Jiri Kosina 2015-09-03 2:02 ` simon 1 sibling, 0 replies; 6+ messages in thread From: Jiri Kosina @ 2015-07-29 12:10 UTC (permalink / raw) To: Simon Wood; +Cc: linux-input, linux-kernel On Thu, 23 Jul 2015, Simon Wood wrote: > Since this wheel is now available, and the USBID is listed on their website, > this patch adds it to allow the hid-lg4ff force feedback driver to find it. > > I do not have this wheel to test with, but this should at least get it working > in emulation mode. > > Note: There is probably more work required for adjust HID descriptor and handle > switching between emulation and native modes. > > Signed-off-by: Simon Wood <simon@mungewell.org> I have applied this to for-4.3/logitech (and kept the "Note:" above in the changelog). -- Jiri Kosina SUSE Labs ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] HID: hid-lg: Add USBID for Logitech G29 Wheel 2015-07-24 1:10 [PATCH] HID: hid-lg: Add USBID for Logitech G29 Wheel Simon Wood @ 2015-09-03 2:02 ` simon 2015-09-03 2:02 ` simon 1 sibling, 0 replies; 6+ messages in thread From: simon @ 2015-09-03 2:02 UTC (permalink / raw) To: Simon Wood; +Cc: linux-input, linux-kernel, Jiri Kosina, Simon Wood [-- Attachment #1: Type: text/plain, Size: 1999 bytes --] > I do not have this wheel to test with, but this should at least get it > working in emulation mode. > > Note: There is probably more work required for adjust HID descriptor and > handle switching between emulation and native modes. I was able to get some more information, but as yet have not been able to get time on the real hardware. Attached is a 2nd patch which should improve the support, I'll formally submit it next week.... But if anyone can test it first that would be great. There's a pre-built Debian/Ubuntu kernel here: https://dl.dropboxusercontent.com/u/34518077/linux-headers-4.2.0-g29%2B_20150831_i386.deb https://dl.dropboxusercontent.com/u/34518077/linux-image-4.2.0-g29%2B_20150831_i386.deb The wheel will need to be in PS3 mode set with switch behind LEDs, and should connect first as a DF-EX (220' turn) and then automatically reconnect as G29 (900' turn). The mode should be selectable something like -- root@retrobox:/home/simon# cd /sys/bus/hid/devices/0003\:046D\:C29B.0002 root@retrobox:/sys/bus/hid/devices/0003:046D:C29B.0002# ls alternate_modes country driver hidraw input leds modalias power range real_id report_descriptor subsystem uevent root@retrobox:/sys/bus/hid/devices/0003:046D:C29B.0002# cat alternate_modes native: G27 Racing Wheel * DF-EX: Driving Force / Formula EX DFP: Driving Force Pro G25: G25 Racing Wheel G27: G27 Racing Wheel * root@retrobox:/sys/bus/hid/devices/0003:046D:C29B.0002# echo G25 > alternate_modes -- The LEDs should also work -- root@retrobox:/home/simon/linux-git# cd /sys/class/leds/ root@retrobox:/sys/class/leds# ls 0003:046D:C29B.0005::RPM1 0003:046D:C29B.0005::RPM4 input3::numlock tpacpi::power tpacpi::thinkvantage 0003:046D:C29B.0005::RPM2 0003:046D:C29B.0005::RPM5 input3::scrolllock tpacpi::standby 0003:046D:C29B.0005::RPM3 input3::capslock phy0-led tpacpi::thinklight root@retrobox:/sys/class/leds# echo 1 > 0003\:046D\:C29B.0005\:\:RPM1/brightness -- Cheers, Simon [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: g29_ps3.patch --] [-- Type: text/x-patch; name="g29_ps3.patch", Size: 6763 bytes --] diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index e6fce23..2e9c706 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -1874,6 +1874,7 @@ static const struct hid_device_id hid_have_special_driver[] = { { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD_CORD) }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD) }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2_2) }, + { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G29_WHEEL) }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WINGMAN_F3D) }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WINGMAN_FFG ) }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_FORCE3D_PRO) }, diff --git a/drivers/hid/hid-lg4ff.c b/drivers/hid/hid-lg4ff.c index 02cec83..d0c3da5 100644 --- a/drivers/hid/hid-lg4ff.c +++ b/drivers/hid/hid-lg4ff.c @@ -45,7 +45,8 @@ #define LG4FF_MODE_G25_IDX 3 #define LG4FF_MODE_DFGT_IDX 4 #define LG4FF_MODE_G27_IDX 5 -#define LG4FF_MODE_MAX_IDX 6 +#define LG4FF_MODE_G29_IDX 6 +#define LG4FF_MODE_MAX_IDX 7 #define LG4FF_MODE_NATIVE BIT(LG4FF_MODE_NATIVE_IDX) #define LG4FF_MODE_DFEX BIT(LG4FF_MODE_DFEX_IDX) @@ -53,6 +54,7 @@ #define LG4FF_MODE_G25 BIT(LG4FF_MODE_G25_IDX) #define LG4FF_MODE_DFGT BIT(LG4FF_MODE_DFGT_IDX) #define LG4FF_MODE_G27 BIT(LG4FF_MODE_G27_IDX) +#define LG4FF_MODE_G29 BIT(LG4FF_MODE_G29_IDX) #define LG4FF_DFEX_TAG "DF-EX" #define LG4FF_DFEX_NAME "Driving Force / Formula EX" @@ -62,6 +64,8 @@ #define LG4FF_G25_NAME "G25 Racing Wheel" #define LG4FF_G27_TAG "G27" #define LG4FF_G27_NAME "G27 Racing Wheel" +#define LG4FF_G29_TAG "G29" +#define LG4FF_G29_NAME "G29 Racing Wheel" #define LG4FF_DFGT_TAG "DFGT" #define LG4FF_DFGT_NAME "Driving Force GT" @@ -144,6 +148,7 @@ static const struct lg4ff_wheel lg4ff_devices[] = { {USB_DEVICE_ID_LOGITECH_G25_WHEEL, lg4ff_wheel_effects, 40, 900, lg4ff_set_range_g25}, {USB_DEVICE_ID_LOGITECH_DFGT_WHEEL, lg4ff_wheel_effects, 40, 900, lg4ff_set_range_g25}, {USB_DEVICE_ID_LOGITECH_G27_WHEEL, lg4ff_wheel_effects, 40, 900, lg4ff_set_range_g25}, + {USB_DEVICE_ID_LOGITECH_G29_WHEEL, lg4ff_wheel_effects, 40, 900, lg4ff_set_range_g25}, {USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2, lg4ff_wheel_effects, 40, 270, NULL}, {USB_DEVICE_ID_LOGITECH_WII_WHEEL, lg4ff_wheel_effects, 40, 270, NULL} }; @@ -161,6 +166,9 @@ static const struct lg4ff_multimode_wheel lg4ff_multimode_wheels[] = { {USB_DEVICE_ID_LOGITECH_G27_WHEEL, LG4FF_MODE_NATIVE | LG4FF_MODE_G27 | LG4FF_MODE_G25 | LG4FF_MODE_DFP | LG4FF_MODE_DFEX, LG4FF_G27_TAG, LG4FF_G27_NAME}, + {USB_DEVICE_ID_LOGITECH_G29_WHEEL, + LG4FF_MODE_NATIVE | LG4FF_MODE_G29 | LG4FF_MODE_DFGT | LG4FF_MODE_DFP, + LG4FF_G29_TAG, LG4FF_G29_NAME}, }; static const struct lg4ff_alternate_mode lg4ff_alternate_modes[] = { @@ -169,7 +177,8 @@ static const struct lg4ff_alternate_mode lg4ff_alternate_modes[] = { [LG4FF_MODE_DFP_IDX] = {USB_DEVICE_ID_LOGITECH_DFP_WHEEL, LG4FF_DFP_TAG, LG4FF_DFP_NAME}, [LG4FF_MODE_G25_IDX] = {USB_DEVICE_ID_LOGITECH_G25_WHEEL, LG4FF_G25_TAG, LG4FF_G25_NAME}, [LG4FF_MODE_DFGT_IDX] = {USB_DEVICE_ID_LOGITECH_DFGT_WHEEL, LG4FF_DFGT_TAG, LG4FF_DFGT_NAME}, - [LG4FF_MODE_G27_IDX] = {USB_DEVICE_ID_LOGITECH_G27_WHEEL, LG4FF_G27_TAG, LG4FF_G27_NAME} + [LG4FF_MODE_G27_IDX] = {USB_DEVICE_ID_LOGITECH_G27_WHEEL, LG4FF_G27_TAG, LG4FF_G27_NAME}, + [LG4FF_MODE_G29_IDX] = {USB_DEVICE_ID_LOGITECH_G29_WHEEL, LG4FF_G29_TAG, LG4FF_G29_NAME} }; /* Multimode wheel identificators */ @@ -197,10 +206,17 @@ static const struct lg4ff_wheel_ident_info lg4ff_dfgt_ident_info = { USB_DEVICE_ID_LOGITECH_DFGT_WHEEL }; +static const struct lg4ff_wheel_ident_info lg4ff_g29_ident_info = { + 0xfff0, + 0x1350, + USB_DEVICE_ID_LOGITECH_G29_WHEEL +}; + /* Multimode wheel identification checklists */ static const struct lg4ff_wheel_ident_checklist lg4ff_main_checklist = { - 4, - {&lg4ff_dfgt_ident_info, + 5, + {&lg4ff_g29_ident_info, + &lg4ff_dfgt_ident_info, &lg4ff_g27_ident_info, &lg4ff_g25_ident_info, &lg4ff_dfp_ident_info} @@ -238,6 +254,12 @@ static const struct lg4ff_compat_mode_switch lg4ff_mode_switch_ext09_g27 = { 0xf8, 0x09, 0x04, 0x01, 0x00, 0x00, 0x00} /* Switch mode to G27 with detach */ }; +static const struct lg4ff_compat_mode_switch lg4ff_mode_switch_ext09_g29 = { + 2, + {0xf8, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, /* Revert mode upon USB reset */ + 0xf8, 0x09, 0x05, 0x01, 0x00, 0x00, 0x00} /* Switch mode to G29 with detach */ +}; + /* EXT_CMD1 - Understood by DFP, G25, G27 and DFGT */ static const struct lg4ff_compat_mode_switch lg4ff_mode_switch_ext01_dfp = { 1, @@ -651,6 +673,19 @@ static const struct lg4ff_compat_mode_switch *lg4ff_get_mode_switch_command(cons return NULL; } break; + case USB_DEVICE_ID_LOGITECH_G29_WHEEL: + switch (target_product_id) { + case USB_DEVICE_ID_LOGITECH_DFP_WHEEL: + return &lg4ff_mode_switch_ext09_dfp; + case USB_DEVICE_ID_LOGITECH_DFGT_WHEEL: + return &lg4ff_mode_switch_ext09_dfgt; + case USB_DEVICE_ID_LOGITECH_G29_WHEEL: + return &lg4ff_mode_switch_ext09_g29; + /* G29 can only be switched to DFP, DFGT or its native mode */ + default: + return NULL; + } + break; case USB_DEVICE_ID_LOGITECH_DFGT_WHEEL: switch (target_product_id) { case USB_DEVICE_ID_LOGITECH_WHEEL: @@ -1049,12 +1084,12 @@ static u16 lg4ff_identify_multimode_wheel(struct hid_device *hid, const u16 repo break; case USB_DEVICE_ID_LOGITECH_G25_WHEEL: checklist = &lg4ff_main_checklist; - from_idx = 0; + from_idx = 1; to_idx = checklist->count - 2; /* End identity check at G25 */ break; case USB_DEVICE_ID_LOGITECH_G27_WHEEL: checklist = &lg4ff_main_checklist; - from_idx = 1; /* Start identity check at G27 */ + from_idx = 2; /* Start identity check at G27 */ to_idx = checklist->count - 3; /* End identity check at G27 */ break; case USB_DEVICE_ID_LOGITECH_DFGT_WHEEL: @@ -1062,6 +1097,9 @@ static u16 lg4ff_identify_multimode_wheel(struct hid_device *hid, const u16 repo from_idx = 0; to_idx = checklist->count - 4; /* End identity check at DFGT */ break; + case USB_DEVICE_ID_LOGITECH_G29_WHEEL: + /* G29 can only be in native mode */ + return USB_DEVICE_ID_LOGITECH_G29_WHEEL; default: return 0; } @@ -1251,7 +1289,8 @@ int lg4ff_init(struct hid_device *hid) for (j = 0; j < 5; j++) entry->wdata.led[j] = NULL; - if (lg4ff_devices[i].product_id == USB_DEVICE_ID_LOGITECH_G27_WHEEL) { + if (lg4ff_devices[i].product_id == USB_DEVICE_ID_LOGITECH_G27_WHEEL || + lg4ff_devices[i].product_id == USB_DEVICE_ID_LOGITECH_G29_WHEEL) { struct led_classdev *led; size_t name_sz; char *name; ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] HID: hid-lg: Add USBID for Logitech G29 Wheel @ 2015-09-03 2:02 ` simon 0 siblings, 0 replies; 6+ messages in thread From: simon @ 2015-09-03 2:02 UTC (permalink / raw) Cc: linux-input, linux-kernel, Jiri Kosina, Simon Wood [-- Attachment #1: Type: text/plain, Size: 1999 bytes --] > I do not have this wheel to test with, but this should at least get it > working in emulation mode. > > Note: There is probably more work required for adjust HID descriptor and > handle switching between emulation and native modes. I was able to get some more information, but as yet have not been able to get time on the real hardware. Attached is a 2nd patch which should improve the support, I'll formally submit it next week.... But if anyone can test it first that would be great. There's a pre-built Debian/Ubuntu kernel here: https://dl.dropboxusercontent.com/u/34518077/linux-headers-4.2.0-g29%2B_20150831_i386.deb https://dl.dropboxusercontent.com/u/34518077/linux-image-4.2.0-g29%2B_20150831_i386.deb The wheel will need to be in PS3 mode set with switch behind LEDs, and should connect first as a DF-EX (220' turn) and then automatically reconnect as G29 (900' turn). The mode should be selectable something like -- root@retrobox:/home/simon# cd /sys/bus/hid/devices/0003\:046D\:C29B.0002 root@retrobox:/sys/bus/hid/devices/0003:046D:C29B.0002# ls alternate_modes country driver hidraw input leds modalias power range real_id report_descriptor subsystem uevent root@retrobox:/sys/bus/hid/devices/0003:046D:C29B.0002# cat alternate_modes native: G27 Racing Wheel * DF-EX: Driving Force / Formula EX DFP: Driving Force Pro G25: G25 Racing Wheel G27: G27 Racing Wheel * root@retrobox:/sys/bus/hid/devices/0003:046D:C29B.0002# echo G25 > alternate_modes -- The LEDs should also work -- root@retrobox:/home/simon/linux-git# cd /sys/class/leds/ root@retrobox:/sys/class/leds# ls 0003:046D:C29B.0005::RPM1 0003:046D:C29B.0005::RPM4 input3::numlock tpacpi::power tpacpi::thinkvantage 0003:046D:C29B.0005::RPM2 0003:046D:C29B.0005::RPM5 input3::scrolllock tpacpi::standby 0003:046D:C29B.0005::RPM3 input3::capslock phy0-led tpacpi::thinklight root@retrobox:/sys/class/leds# echo 1 > 0003\:046D\:C29B.0005\:\:RPM1/brightness -- Cheers, Simon [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: g29_ps3.patch --] [-- Type: text/x-patch; name="g29_ps3.patch", Size: 6763 bytes --] diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index e6fce23..2e9c706 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -1874,6 +1874,7 @@ static const struct hid_device_id hid_have_special_driver[] = { { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD_CORD) }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD) }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2_2) }, + { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G29_WHEEL) }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WINGMAN_F3D) }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WINGMAN_FFG ) }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_FORCE3D_PRO) }, diff --git a/drivers/hid/hid-lg4ff.c b/drivers/hid/hid-lg4ff.c index 02cec83..d0c3da5 100644 --- a/drivers/hid/hid-lg4ff.c +++ b/drivers/hid/hid-lg4ff.c @@ -45,7 +45,8 @@ #define LG4FF_MODE_G25_IDX 3 #define LG4FF_MODE_DFGT_IDX 4 #define LG4FF_MODE_G27_IDX 5 -#define LG4FF_MODE_MAX_IDX 6 +#define LG4FF_MODE_G29_IDX 6 +#define LG4FF_MODE_MAX_IDX 7 #define LG4FF_MODE_NATIVE BIT(LG4FF_MODE_NATIVE_IDX) #define LG4FF_MODE_DFEX BIT(LG4FF_MODE_DFEX_IDX) @@ -53,6 +54,7 @@ #define LG4FF_MODE_G25 BIT(LG4FF_MODE_G25_IDX) #define LG4FF_MODE_DFGT BIT(LG4FF_MODE_DFGT_IDX) #define LG4FF_MODE_G27 BIT(LG4FF_MODE_G27_IDX) +#define LG4FF_MODE_G29 BIT(LG4FF_MODE_G29_IDX) #define LG4FF_DFEX_TAG "DF-EX" #define LG4FF_DFEX_NAME "Driving Force / Formula EX" @@ -62,6 +64,8 @@ #define LG4FF_G25_NAME "G25 Racing Wheel" #define LG4FF_G27_TAG "G27" #define LG4FF_G27_NAME "G27 Racing Wheel" +#define LG4FF_G29_TAG "G29" +#define LG4FF_G29_NAME "G29 Racing Wheel" #define LG4FF_DFGT_TAG "DFGT" #define LG4FF_DFGT_NAME "Driving Force GT" @@ -144,6 +148,7 @@ static const struct lg4ff_wheel lg4ff_devices[] = { {USB_DEVICE_ID_LOGITECH_G25_WHEEL, lg4ff_wheel_effects, 40, 900, lg4ff_set_range_g25}, {USB_DEVICE_ID_LOGITECH_DFGT_WHEEL, lg4ff_wheel_effects, 40, 900, lg4ff_set_range_g25}, {USB_DEVICE_ID_LOGITECH_G27_WHEEL, lg4ff_wheel_effects, 40, 900, lg4ff_set_range_g25}, + {USB_DEVICE_ID_LOGITECH_G29_WHEEL, lg4ff_wheel_effects, 40, 900, lg4ff_set_range_g25}, {USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2, lg4ff_wheel_effects, 40, 270, NULL}, {USB_DEVICE_ID_LOGITECH_WII_WHEEL, lg4ff_wheel_effects, 40, 270, NULL} }; @@ -161,6 +166,9 @@ static const struct lg4ff_multimode_wheel lg4ff_multimode_wheels[] = { {USB_DEVICE_ID_LOGITECH_G27_WHEEL, LG4FF_MODE_NATIVE | LG4FF_MODE_G27 | LG4FF_MODE_G25 | LG4FF_MODE_DFP | LG4FF_MODE_DFEX, LG4FF_G27_TAG, LG4FF_G27_NAME}, + {USB_DEVICE_ID_LOGITECH_G29_WHEEL, + LG4FF_MODE_NATIVE | LG4FF_MODE_G29 | LG4FF_MODE_DFGT | LG4FF_MODE_DFP, + LG4FF_G29_TAG, LG4FF_G29_NAME}, }; static const struct lg4ff_alternate_mode lg4ff_alternate_modes[] = { @@ -169,7 +177,8 @@ static const struct lg4ff_alternate_mode lg4ff_alternate_modes[] = { [LG4FF_MODE_DFP_IDX] = {USB_DEVICE_ID_LOGITECH_DFP_WHEEL, LG4FF_DFP_TAG, LG4FF_DFP_NAME}, [LG4FF_MODE_G25_IDX] = {USB_DEVICE_ID_LOGITECH_G25_WHEEL, LG4FF_G25_TAG, LG4FF_G25_NAME}, [LG4FF_MODE_DFGT_IDX] = {USB_DEVICE_ID_LOGITECH_DFGT_WHEEL, LG4FF_DFGT_TAG, LG4FF_DFGT_NAME}, - [LG4FF_MODE_G27_IDX] = {USB_DEVICE_ID_LOGITECH_G27_WHEEL, LG4FF_G27_TAG, LG4FF_G27_NAME} + [LG4FF_MODE_G27_IDX] = {USB_DEVICE_ID_LOGITECH_G27_WHEEL, LG4FF_G27_TAG, LG4FF_G27_NAME}, + [LG4FF_MODE_G29_IDX] = {USB_DEVICE_ID_LOGITECH_G29_WHEEL, LG4FF_G29_TAG, LG4FF_G29_NAME} }; /* Multimode wheel identificators */ @@ -197,10 +206,17 @@ static const struct lg4ff_wheel_ident_info lg4ff_dfgt_ident_info = { USB_DEVICE_ID_LOGITECH_DFGT_WHEEL }; +static const struct lg4ff_wheel_ident_info lg4ff_g29_ident_info = { + 0xfff0, + 0x1350, + USB_DEVICE_ID_LOGITECH_G29_WHEEL +}; + /* Multimode wheel identification checklists */ static const struct lg4ff_wheel_ident_checklist lg4ff_main_checklist = { - 4, - {&lg4ff_dfgt_ident_info, + 5, + {&lg4ff_g29_ident_info, + &lg4ff_dfgt_ident_info, &lg4ff_g27_ident_info, &lg4ff_g25_ident_info, &lg4ff_dfp_ident_info} @@ -238,6 +254,12 @@ static const struct lg4ff_compat_mode_switch lg4ff_mode_switch_ext09_g27 = { 0xf8, 0x09, 0x04, 0x01, 0x00, 0x00, 0x00} /* Switch mode to G27 with detach */ }; +static const struct lg4ff_compat_mode_switch lg4ff_mode_switch_ext09_g29 = { + 2, + {0xf8, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, /* Revert mode upon USB reset */ + 0xf8, 0x09, 0x05, 0x01, 0x00, 0x00, 0x00} /* Switch mode to G29 with detach */ +}; + /* EXT_CMD1 - Understood by DFP, G25, G27 and DFGT */ static const struct lg4ff_compat_mode_switch lg4ff_mode_switch_ext01_dfp = { 1, @@ -651,6 +673,19 @@ static const struct lg4ff_compat_mode_switch *lg4ff_get_mode_switch_command(cons return NULL; } break; + case USB_DEVICE_ID_LOGITECH_G29_WHEEL: + switch (target_product_id) { + case USB_DEVICE_ID_LOGITECH_DFP_WHEEL: + return &lg4ff_mode_switch_ext09_dfp; + case USB_DEVICE_ID_LOGITECH_DFGT_WHEEL: + return &lg4ff_mode_switch_ext09_dfgt; + case USB_DEVICE_ID_LOGITECH_G29_WHEEL: + return &lg4ff_mode_switch_ext09_g29; + /* G29 can only be switched to DFP, DFGT or its native mode */ + default: + return NULL; + } + break; case USB_DEVICE_ID_LOGITECH_DFGT_WHEEL: switch (target_product_id) { case USB_DEVICE_ID_LOGITECH_WHEEL: @@ -1049,12 +1084,12 @@ static u16 lg4ff_identify_multimode_wheel(struct hid_device *hid, const u16 repo break; case USB_DEVICE_ID_LOGITECH_G25_WHEEL: checklist = &lg4ff_main_checklist; - from_idx = 0; + from_idx = 1; to_idx = checklist->count - 2; /* End identity check at G25 */ break; case USB_DEVICE_ID_LOGITECH_G27_WHEEL: checklist = &lg4ff_main_checklist; - from_idx = 1; /* Start identity check at G27 */ + from_idx = 2; /* Start identity check at G27 */ to_idx = checklist->count - 3; /* End identity check at G27 */ break; case USB_DEVICE_ID_LOGITECH_DFGT_WHEEL: @@ -1062,6 +1097,9 @@ static u16 lg4ff_identify_multimode_wheel(struct hid_device *hid, const u16 repo from_idx = 0; to_idx = checklist->count - 4; /* End identity check at DFGT */ break; + case USB_DEVICE_ID_LOGITECH_G29_WHEEL: + /* G29 can only be in native mode */ + return USB_DEVICE_ID_LOGITECH_G29_WHEEL; default: return 0; } @@ -1251,7 +1289,8 @@ int lg4ff_init(struct hid_device *hid) for (j = 0; j < 5; j++) entry->wdata.led[j] = NULL; - if (lg4ff_devices[i].product_id == USB_DEVICE_ID_LOGITECH_G27_WHEEL) { + if (lg4ff_devices[i].product_id == USB_DEVICE_ID_LOGITECH_G27_WHEEL || + lg4ff_devices[i].product_id == USB_DEVICE_ID_LOGITECH_G29_WHEEL) { struct led_classdev *led; size_t name_sz; char *name; ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] HID: hid-lg: Add USBID for Logitech G29 Wheel 2015-09-03 2:02 ` simon @ 2015-09-28 19:18 ` Simon Wood -1 siblings, 0 replies; 6+ messages in thread From: Simon Wood @ 2015-09-28 19:18 UTC (permalink / raw) To: simon; +Cc: Simon Wood, linux-input, linux-kernel, Jiri Kosina [-- Attachment #1: Type: text/plain, Size: 2256 bytes --] > I was able to get some more information, but as yet have not been able to > get time on the real hardware. Attached is a 2nd patch which should > improve the support, I'll formally submit it next week.... But if anyone > can test it first that would be great. Obviously the 'submit next week' never happened... but I now have one of these wheels to work on. The bad news is that the information we got does not appear to be complete. At present the wheel is mis-recognised as a G27 and forced into an emulation state, it is somewhat usable in that mode. If we send the 'G29 mode' command the wheel comes back with a device with 2x HID interfaces and that appears to screw up the probe (full log attached). -- Sep 28 12:30:33 retrobox kernel: [11079.944056] usb 2-1: new full-speed USB device number 3 using uhci_hcd Sep 28 12:30:33 retrobox kernel: [11080.113102] usb 2-1: New USB device found, idVendor=046d, idProduct=c24f Sep 28 12:30:33 retrobox kernel: [11080.113113] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 Sep 28 12:30:33 retrobox kernel: [11080.113120] usb 2-1: Product: G29 Driving Force Racing Wheel Sep 28 12:30:33 retrobox kernel: [11080.113125] usb 2-1: Manufacturer: Logitech Sep 28 12:30:33 retrobox kernel: [11080.124431] input: Logitech G29 Driving Force Racing Wheel as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/0003:046D:C24F.0002/input/input10 Sep 28 12:30:33 retrobox kernel: [11080.125134] logitech 0003:046D:C24F.0002: input,hidraw0: USB HID v1.11 Joystick [Logitech G29 Driving Force Racing Wheel] on usb-0000:00:1d.0-1/input0 Sep 28 12:30:33 retrobox kernel: [11080.126094] logitech 0003:046D:C24F.0002: Force feedback support for Logitech Gaming Wheels Sep 28 12:30:33 retrobox kernel: [11080.134307] logitech 0003:046D:C24F.0003: hiddev0,hidraw1: USB HID v1.11 Device [Logitech G29 Driving Force Racing Wheel] on usb-0000:00:1d.0-1/input1 Sep 28 12:30:33 retrobox kernel: [11080.134319] logitech 0003:046D:C24F.0003: not enough values in HID_OUTPUT_REPORT 0 field 0 Sep 28 12:30:33 retrobox kernel: [11080.134339] logitech: probe of 0003:046D:C24F.0003 failed with error -1 -- Any suggestions as to how we can 'ignore' or unbind the 2nd interface in order to only work with the 1st? Simon [-- Attachment #2: g29_syslog.txt --] [-- Type: text/plain, Size: 8134 bytes --] G29 connected, appears as DFEX then we send command to get it to reconnect -- Sep 28 12:30:32 retrobox kernel: [11078.904047] usb 2-1: new full-speed USB device number 2 using uhci_hcd Sep 28 12:30:32 retrobox kernel: [11079.077104] usb 2-1: New USB device found, idVendor=046d, idProduct=c294 Sep 28 12:30:32 retrobox kernel: [11079.077115] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 Sep 28 12:30:32 retrobox kernel: [11079.077122] usb 2-1: Product: G29 Driving Force Racing Wheel Sep 28 12:30:32 retrobox kernel: [11079.077128] usb 2-1: Manufacturer: Logitech Sep 28 12:30:32 retrobox mtp-probe: checking bus 2, device 2: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1" Sep 28 12:30:32 retrobox mtp-probe: bus: 2, device: 2 was not an MTP device Sep 28 12:30:32 retrobox kernel: [11079.266693] input: Logitech G29 Driving Force Racing Wheel as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/0003:046D:C294.0001/input/input9 Sep 28 12:30:32 retrobox kernel: [11079.267441] logitech 0003:046D:C294.0001: input,hidraw0: USB HID v1.00 Joystick [Logitech G29 Driving Force Racing Wheel] on usb-0000:00:1d.0-1/input0 Sep 28 12:30:32 retrobox kernel: [11079.276117] usbcore: registered new interface driver usbhid Sep 28 12:30:32 retrobox kernel: [11079.276127] usbhid: USB HID core driver Sep 28 12:30:32 retrobox kernel: [11079.320193] usb 2-1: USB disconnect, device number 2 Sep 28 12:30:32 retrobox systemd-udevd[243]: error opening USB device 'descriptors' file Sep 28 12:30:33 retrobox kernel: [11079.944056] usb 2-1: new full-speed USB device number 3 using uhci_hcd Sep 28 12:30:33 retrobox kernel: [11080.113102] usb 2-1: New USB device found, idVendor=046d, idProduct=c24f Sep 28 12:30:33 retrobox kernel: [11080.113113] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 Sep 28 12:30:33 retrobox kernel: [11080.113120] usb 2-1: Product: G29 Driving Force Racing Wheel Sep 28 12:30:33 retrobox kernel: [11080.113125] usb 2-1: Manufacturer: Logitech Sep 28 12:30:33 retrobox kernel: [11080.124431] input: Logitech G29 Driving Force Racing Wheel as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/0003:046D:C24F.0002/input/input10 Sep 28 12:30:33 retrobox kernel: [11080.125134] logitech 0003:046D:C24F.0002: input,hidraw0: USB HID v1.11 Joystick [Logitech G29 Driving Force Racing Wheel] on usb-0000:00:1d.0-1/input0 Sep 28 12:30:33 retrobox kernel: [11080.126094] logitech 0003:046D:C24F.0002: Force feedback support for Logitech Gaming Wheels Sep 28 12:30:33 retrobox kernel: [11080.134307] logitech 0003:046D:C24F.0003: hiddev0,hidraw1: USB HID v1.11 Device [Logitech G29 Driving Force Racing Wheel] on usb-0000:00:1d.0-1/input1 Sep 28 12:30:33 retrobox kernel: [11080.134319] logitech 0003:046D:C24F.0003: not enough values in HID_OUTPUT_REPORT 0 field 0 Sep 28 12:30:33 retrobox kernel: [11080.134339] logitech: probe of 0003:046D:C24F.0003 failed with error -1 Sep 28 12:30:33 retrobox mtp-probe: checking bus 2, device 3: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1" Sep 28 12:30:33 retrobox mtp-probe: bus: 2, device: 3 was not an MTP device -- New device has 2 interfaces, the second one is not liked at all... as noted above the probe fails. Also note that there is no report descripter presented in the 2nd interface's '/sys/bus/hid/devices/...' directory $ lsusb --vv -- Bus 002 Device 003: ID 046d:c24f Logitech, Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x046d Logitech, Inc. idProduct 0xc24f bcdDevice 89.00 iManufacturer 1 iProduct 2 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 66 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 4 bmAttributes 0x80 (Bus Powered) MaxPower 200mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 125 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 2 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 2 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 54 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0014 1x 20 bytes bInterval 2 -- $ ls -la /sys/bus/hid/devices/0003\:046D\:C24F.0002/ -- total 0 drwxr-xr-x 6 root root 0 Sep 28 12:37 . drwxr-xr-x 6 root root 0 Sep 28 12:37 .. -rw-rw-r-- 1 root root 4096 Sep 28 12:37 alternate_modes -r--r--r-- 1 root root 4096 Sep 28 12:37 country lrwxrwxrwx 1 root root 0 Sep 28 12:37 driver -> ../../../../../../../bus/hid/drivers/logitech drwxr-xr-x 3 root root 0 Sep 28 12:37 hidraw drwxr-xr-x 3 root root 0 Sep 28 12:37 input drwxr-xr-x 7 root root 0 Sep 28 12:37 leds -r--r--r-- 1 root root 4096 Sep 28 12:37 modalias drwxr-xr-x 2 root root 0 Sep 28 12:37 power -rw-rw-r-- 1 root root 4096 Sep 28 12:37 range -r--r--r-- 1 root root 4096 Sep 28 12:37 real_id -r--r--r-- 1 root root 4096 Sep 28 12:37 report_descriptor lrwxrwxrwx 1 root root 0 Sep 28 12:37 subsystem -> ../../../../../../../bus/hid -rw-r--r-- 1 root root 4096 Sep 28 12:37 uevent -- $ ls -la /sys/bus/hid/devices/0003\:046D\:C24F.0003/ -- total 0 drwxr-xr-x 4 root root 0 Sep 28 12:35 . drwxr-xr-x 6 root root 0 Sep 28 12:35 .. -r--r--r-- 1 root root 4096 Sep 28 12:35 country drwxr-xr-x 3 root root 0 Sep 28 12:35 hidraw -r--r--r-- 1 root root 4096 Sep 28 12:35 modalias drwxr-xr-x 2 root root 0 Sep 28 12:35 power -r--r--r-- 1 root root 4096 Sep 28 12:35 report_descriptor lrwxrwxrwx 1 root root 0 Sep 28 12:35 subsystem -> ../../../../../../../bus/hid -rw-r--r-- 1 root root 4096 Sep 28 12:35 uevent -- ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] HID: hid-lg: Add USBID for Logitech G29 Wheel @ 2015-09-28 19:18 ` Simon Wood 0 siblings, 0 replies; 6+ messages in thread From: Simon Wood @ 2015-09-28 19:18 UTC (permalink / raw) Cc: Simon Wood, linux-input, linux-kernel, Jiri Kosina [-- Attachment #1: Type: text/plain, Size: 2256 bytes --] > I was able to get some more information, but as yet have not been able to > get time on the real hardware. Attached is a 2nd patch which should > improve the support, I'll formally submit it next week.... But if anyone > can test it first that would be great. Obviously the 'submit next week' never happened... but I now have one of these wheels to work on. The bad news is that the information we got does not appear to be complete. At present the wheel is mis-recognised as a G27 and forced into an emulation state, it is somewhat usable in that mode. If we send the 'G29 mode' command the wheel comes back with a device with 2x HID interfaces and that appears to screw up the probe (full log attached). -- Sep 28 12:30:33 retrobox kernel: [11079.944056] usb 2-1: new full-speed USB device number 3 using uhci_hcd Sep 28 12:30:33 retrobox kernel: [11080.113102] usb 2-1: New USB device found, idVendor=046d, idProduct=c24f Sep 28 12:30:33 retrobox kernel: [11080.113113] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 Sep 28 12:30:33 retrobox kernel: [11080.113120] usb 2-1: Product: G29 Driving Force Racing Wheel Sep 28 12:30:33 retrobox kernel: [11080.113125] usb 2-1: Manufacturer: Logitech Sep 28 12:30:33 retrobox kernel: [11080.124431] input: Logitech G29 Driving Force Racing Wheel as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/0003:046D:C24F.0002/input/input10 Sep 28 12:30:33 retrobox kernel: [11080.125134] logitech 0003:046D:C24F.0002: input,hidraw0: USB HID v1.11 Joystick [Logitech G29 Driving Force Racing Wheel] on usb-0000:00:1d.0-1/input0 Sep 28 12:30:33 retrobox kernel: [11080.126094] logitech 0003:046D:C24F.0002: Force feedback support for Logitech Gaming Wheels Sep 28 12:30:33 retrobox kernel: [11080.134307] logitech 0003:046D:C24F.0003: hiddev0,hidraw1: USB HID v1.11 Device [Logitech G29 Driving Force Racing Wheel] on usb-0000:00:1d.0-1/input1 Sep 28 12:30:33 retrobox kernel: [11080.134319] logitech 0003:046D:C24F.0003: not enough values in HID_OUTPUT_REPORT 0 field 0 Sep 28 12:30:33 retrobox kernel: [11080.134339] logitech: probe of 0003:046D:C24F.0003 failed with error -1 -- Any suggestions as to how we can 'ignore' or unbind the 2nd interface in order to only work with the 1st? Simon [-- Attachment #2: g29_syslog.txt --] [-- Type: text/plain, Size: 8134 bytes --] G29 connected, appears as DFEX then we send command to get it to reconnect -- Sep 28 12:30:32 retrobox kernel: [11078.904047] usb 2-1: new full-speed USB device number 2 using uhci_hcd Sep 28 12:30:32 retrobox kernel: [11079.077104] usb 2-1: New USB device found, idVendor=046d, idProduct=c294 Sep 28 12:30:32 retrobox kernel: [11079.077115] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 Sep 28 12:30:32 retrobox kernel: [11079.077122] usb 2-1: Product: G29 Driving Force Racing Wheel Sep 28 12:30:32 retrobox kernel: [11079.077128] usb 2-1: Manufacturer: Logitech Sep 28 12:30:32 retrobox mtp-probe: checking bus 2, device 2: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1" Sep 28 12:30:32 retrobox mtp-probe: bus: 2, device: 2 was not an MTP device Sep 28 12:30:32 retrobox kernel: [11079.266693] input: Logitech G29 Driving Force Racing Wheel as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/0003:046D:C294.0001/input/input9 Sep 28 12:30:32 retrobox kernel: [11079.267441] logitech 0003:046D:C294.0001: input,hidraw0: USB HID v1.00 Joystick [Logitech G29 Driving Force Racing Wheel] on usb-0000:00:1d.0-1/input0 Sep 28 12:30:32 retrobox kernel: [11079.276117] usbcore: registered new interface driver usbhid Sep 28 12:30:32 retrobox kernel: [11079.276127] usbhid: USB HID core driver Sep 28 12:30:32 retrobox kernel: [11079.320193] usb 2-1: USB disconnect, device number 2 Sep 28 12:30:32 retrobox systemd-udevd[243]: error opening USB device 'descriptors' file Sep 28 12:30:33 retrobox kernel: [11079.944056] usb 2-1: new full-speed USB device number 3 using uhci_hcd Sep 28 12:30:33 retrobox kernel: [11080.113102] usb 2-1: New USB device found, idVendor=046d, idProduct=c24f Sep 28 12:30:33 retrobox kernel: [11080.113113] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 Sep 28 12:30:33 retrobox kernel: [11080.113120] usb 2-1: Product: G29 Driving Force Racing Wheel Sep 28 12:30:33 retrobox kernel: [11080.113125] usb 2-1: Manufacturer: Logitech Sep 28 12:30:33 retrobox kernel: [11080.124431] input: Logitech G29 Driving Force Racing Wheel as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/0003:046D:C24F.0002/input/input10 Sep 28 12:30:33 retrobox kernel: [11080.125134] logitech 0003:046D:C24F.0002: input,hidraw0: USB HID v1.11 Joystick [Logitech G29 Driving Force Racing Wheel] on usb-0000:00:1d.0-1/input0 Sep 28 12:30:33 retrobox kernel: [11080.126094] logitech 0003:046D:C24F.0002: Force feedback support for Logitech Gaming Wheels Sep 28 12:30:33 retrobox kernel: [11080.134307] logitech 0003:046D:C24F.0003: hiddev0,hidraw1: USB HID v1.11 Device [Logitech G29 Driving Force Racing Wheel] on usb-0000:00:1d.0-1/input1 Sep 28 12:30:33 retrobox kernel: [11080.134319] logitech 0003:046D:C24F.0003: not enough values in HID_OUTPUT_REPORT 0 field 0 Sep 28 12:30:33 retrobox kernel: [11080.134339] logitech: probe of 0003:046D:C24F.0003 failed with error -1 Sep 28 12:30:33 retrobox mtp-probe: checking bus 2, device 3: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1" Sep 28 12:30:33 retrobox mtp-probe: bus: 2, device: 3 was not an MTP device -- New device has 2 interfaces, the second one is not liked at all... as noted above the probe fails. Also note that there is no report descripter presented in the 2nd interface's '/sys/bus/hid/devices/...' directory $ lsusb --vv -- Bus 002 Device 003: ID 046d:c24f Logitech, Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x046d Logitech, Inc. idProduct 0xc24f bcdDevice 89.00 iManufacturer 1 iProduct 2 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 66 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 4 bmAttributes 0x80 (Bus Powered) MaxPower 200mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 125 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 2 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 2 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 54 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0014 1x 20 bytes bInterval 2 -- $ ls -la /sys/bus/hid/devices/0003\:046D\:C24F.0002/ -- total 0 drwxr-xr-x 6 root root 0 Sep 28 12:37 . drwxr-xr-x 6 root root 0 Sep 28 12:37 .. -rw-rw-r-- 1 root root 4096 Sep 28 12:37 alternate_modes -r--r--r-- 1 root root 4096 Sep 28 12:37 country lrwxrwxrwx 1 root root 0 Sep 28 12:37 driver -> ../../../../../../../bus/hid/drivers/logitech drwxr-xr-x 3 root root 0 Sep 28 12:37 hidraw drwxr-xr-x 3 root root 0 Sep 28 12:37 input drwxr-xr-x 7 root root 0 Sep 28 12:37 leds -r--r--r-- 1 root root 4096 Sep 28 12:37 modalias drwxr-xr-x 2 root root 0 Sep 28 12:37 power -rw-rw-r-- 1 root root 4096 Sep 28 12:37 range -r--r--r-- 1 root root 4096 Sep 28 12:37 real_id -r--r--r-- 1 root root 4096 Sep 28 12:37 report_descriptor lrwxrwxrwx 1 root root 0 Sep 28 12:37 subsystem -> ../../../../../../../bus/hid -rw-r--r-- 1 root root 4096 Sep 28 12:37 uevent -- $ ls -la /sys/bus/hid/devices/0003\:046D\:C24F.0003/ -- total 0 drwxr-xr-x 4 root root 0 Sep 28 12:35 . drwxr-xr-x 6 root root 0 Sep 28 12:35 .. -r--r--r-- 1 root root 4096 Sep 28 12:35 country drwxr-xr-x 3 root root 0 Sep 28 12:35 hidraw -r--r--r-- 1 root root 4096 Sep 28 12:35 modalias drwxr-xr-x 2 root root 0 Sep 28 12:35 power -r--r--r-- 1 root root 4096 Sep 28 12:35 report_descriptor lrwxrwxrwx 1 root root 0 Sep 28 12:35 subsystem -> ../../../../../../../bus/hid -rw-r--r-- 1 root root 4096 Sep 28 12:35 uevent -- ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-09-28 20:03 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-07-24 1:10 [PATCH] HID: hid-lg: Add USBID for Logitech G29 Wheel Simon Wood 2015-07-29 12:10 ` Jiri Kosina 2015-09-03 2:02 ` simon 2015-09-03 2:02 ` simon 2015-09-28 19:18 ` Simon Wood 2015-09-28 19:18 ` Simon Wood
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.