From e10fbef05c562d175a12ab4f25ffcd12dfa871dc Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Tue, 8 May 2007 16:38:47 +0000 Subject: Enable PS3 controller quirk --- hidd/main.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'hidd/main.c') diff --git a/hidd/main.c b/hidd/main.c index f710a5a4..c1aeb37a 100644 --- a/hidd/main.c +++ b/hidd/main.c @@ -236,6 +236,16 @@ static int request_encryption(bdaddr_t *src, bdaddr_t *dst) return err; } +static void enable_sixaxis(int csk) +{ + const unsigned char buf[] = { + 0x53 /*HIDP_TRANS_SET_REPORT | HIDP_DATA_RTYPE_FEATURE*/, + 0xf4, 0x42, 0x03, 0x00, 0x00 }; + int err; + + err = write(csk, buf, sizeof(buf)); +} + static int create_device(int ctl, int csk, int isk, uint8_t subclass, int nosdp, int nocheck, int bootonly, int encrypt, int timeout) { struct hidp_connadd_req req; @@ -324,6 +334,9 @@ create: req.flags |= (1 << HIDP_BOOT_PROTOCOL_MODE); } + if (req.vendor == 0x054c && req.product == 0x0268) + enable_sixaxis(csk); + err = ioctl(ctl, HIDPCONNADD, &req); error: -- cgit