Subject: kern/30554: The ParaParaParadise USB controller needs special handling in uhid(4)
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <svs+pr@grep.ru>
List: netbsd-bugs
Date: 06/19/2005 01:50:00
>Number:         30554
>Category:       kern
>Synopsis:       The ParaParaParadise USB controller needs special handling in uhid(4)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    kern-bug-people
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Sun Jun 19 01:50:00 +0000 2005
>Originator:     Sergey Svishchev
>Release:        3.99.3
>Organization:
>Environment:
>Description:
The ParaParaParadise controller is a perfectly normal USB HID device with just one quirk -- it needs to be 'woken up' before it will send input reports.  It was sold with Konami game for PlayStation2 and the game; there are at least two game simulators out there (pydance and stepmania) that could use this controller, too.  Before now, the wake-up method was not known -- see, e.g., http://icculus.org/pyddr/manual.php#install.mat.ppp; it was really easy to discover, though ("usbhidctl -r" shows a feature report with really intriguing name of "LEDs:On-Line" :-)
>How-To-Repeat:

>Fix:
--- sys/dev/usb/uhidev.c	27 Feb 2005 00:27:51 -0000	1.24
+++ sys/dev/usb/uhidev.c	16 Jun 2005 17:45:34 -0000
@@ -211,6 +211,19 @@
 		USB_ATTACH_ERROR_RETURN;
 	}
 
+	if (uaa->vendor == USB_VENDOR_HOSIDEN && 
+	    uaa->product == USB_PRODUCT_HOSIDEN_PPP) {
+		static uByte reportbuf[] = {1};
+		/*
+		 *  This device was sold by Konami with its ParaParaParadise 
+		 *  game for PlayStation2.  It needs to be "turned on"
+		 *  before it will send any reports.
+		 */
+
+		usbd_set_report(uaa->iface, UHID_FEATURE_REPORT, 0,
+		    &reportbuf, sizeof reportbuf);
+	}
+
 	sc->sc_repdesc = desc;
 	sc->sc_repdesc_size = size;
 
--- sys/dev/usb/usbdevs	15 Mar 2005 17:52:18 -0000	1.398
+++ sys/dev/usb/usbdevs	24 May 2005 18:43:22 -0000
@@ -147,6 +147,7 @@
 vendor AIPTEK2		0x04fc	AIPTEK International
 vendor ACER		0x0502	Acer
 vendor 3COM		0x0506	3Com
+vendor HOSIDEN		0x0507	Hosiden Corporation
 vendor AZTECH		0x0509	Aztech Systems
 vendor BELKIN		0x050d	Belkin Components
 vendor KAWATSU		0x050f	Kawatsu Semiconductor
@@ -921,6 +922,9 @@
 product HITACHI DZMV100A	0x0004	DVD-CAM DZ-MV100A Camcorder
 product HITACHI DVDCAM_USB	0x001e	DVDCAM USB HS Interface
 
+/* Hosiden Corporation products */
+product	HOSIDEN PPP		0x0011	ParaParaParadise Controller
+
 /* HP products */
 product HP 895C			0x0004	DeskJet 895C
 product HP 4100C		0x0101	Scanjet 4100C