diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2007-05-08 16:38:47 +0000 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2007-05-08 16:38:47 +0000 |
commit | e10fbef05c562d175a12ab4f25ffcd12dfa871dc (patch) | |
tree | e442fff411b4169189d4658f86c7c34af284c3f7 | |
parent | c4c2b3b842d89e0dc5b585f34ad0692156b55eb6 (diff) |
Enable PS3 controller quirk
-rw-r--r-- | hidd/main.c | 13 |
1 files changed, 13 insertions, 0 deletions
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: |