On Wed, 2016-12-28 at 16:32 -0800, Juha Kuikka wrote: > There is a special path for various game controllers where they > connect > to the hid service before bluetoothd knows what they are. > > This patch adds another PID for the Dualshock4 controller. This new > PID > matches with the model number CUH-ZCT2U. > --- > profiles/input/server.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/profiles/input/server.c b/profiles/input/server.c > index eb3fcf8..3576f2b 100644 > --- a/profiles/input/server.c > +++ b/profiles/input/server.c > @@ -135,8 +135,10 @@ static bool dev_is_sixaxis(const bdaddr_t *src, > const bdaddr_t *dst) > if (vid == 0x054c && pid == 0x0268) > return true; > > - /* DualShock 4 */ > - if (vid == 0x054c && pid == 0x05c4) > + /* DualShock 4 CUH-ZCT1U (PID 0x05c4) > + * DualShock 4 CUH-ZCT2U (PID 0x09cc) (slim/pro) > + */ > + if (vid == 0x054c && (pid == 0x05c4 || pid == 0x09cc)) > return true; > > /* Navigation Controller */ Might be nice to have the struct you currently have in the sixaxis plugin in a shared header, so we don't need to open code this function. For example: typedef enum { CABLE_PAIRING_SIXAXIS, CABLE_PAIRING_DS4 } CablePairingType; static struct { int vid; int pid; CablePairingType type; } cable_pairing_devices[] = { ... }; The sixaxis plugin would know which functions to use from the type, the input/server.c code would loop over the array to see whether it's a cable pairing. Looks fine otherwise. -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html