nusb/joy: send magic packet to enable playstation controller events

This commit is contained in:
mischief 2018-10-10 13:56:28 -07:00
parent 67e14807e9
commit 7af5442d3b

View file

@ -359,6 +359,21 @@ joywork(void *a)
}
}
/* apply quirks for special devices */
static void
quirks(Dev *d)
{
int ret;
uchar buf[17];
/* sony dualshock 3 (ps3) controller requires special enable command */
if(d->usb->vid == 0x054c && d->usb->did == 0x0268){
ret = usbcmd(d, Rd2h|Rclass|Riface, Getreport, (0x3<<8) | 0xF2, 0, buf, sizeof(buf));
if(ret < 0)
sysfatal("failed to enable ps3 controller: %r");
}
}
static void
kbstart(Dev *d, Ep *ep, void (*f)(void*))
{
@ -380,6 +395,7 @@ kbstart(Dev *d, Ep *ep, void (*f)(void*))
fprint(2, "%s: %s: opendevdata: %r\n", argv0, kd->ep->dir);
goto Err;
}
quirks(kd->dev);
f(kd);
return;
Err: