diff -uprN compat-wireless-2.6.36-4/include/net/bluetooth/hci.h compat-wireless-2.6.36-4.mine//include/net/bluetooth/hci.h --- compat-wireless-2.6.36-4/include/net/bluetooth/hci.h 2010-11-08 22:00:51.000000000 -0300 +++ compat-wireless-2.6.36-4.mine//include/net/bluetooth/hci.h 2010-12-11 19:13:14.000000000 -0300 @@ -1,6 +1,7 @@ /* BlueZ - Bluetooth protocol stack for Linux Copyright (C) 2000-2001 Qualcomm Incorporated + Copyright (C) 2010 Naranjo Manuel Francisco Written 2000,2001 by Maxim Krasnyansky @@ -120,17 +121,31 @@ enum { #define HCI_VENDOR_PKT 0xff /* HCI packet types */ +#define HCI_2DH1 0x0002 +#define HCI_3DH1 0x0004 #define HCI_DM1 0x0008 -#define HCI_DM3 0x0400 -#define HCI_DM5 0x4000 #define HCI_DH1 0x0010 +#define HCI_2DH3 0x0100 +#define HCI_3DH3 0x0200 +#define HCI_DM3 0x0400 #define HCI_DH3 0x0800 +#define HCI_2DH5 0x1000 +#define HCI_3DH5 0x2000 +#define HCI_DM5 0x4000 #define HCI_DH5 0x8000 #define HCI_HV1 0x0020 #define HCI_HV2 0x0040 #define HCI_HV3 0x0080 +#define HCI_EV3 0x0008 +#define HCI_EV4 0x0010 +#define HCI_EV5 0x0020 +#define HCI_2EV3 0x0040 +#define HCI_3EV3 0x0080 +#define HCI_2EV5 0x0100 +#define HCI_3EV5 0x0200 + #define SCO_PTYPE_MASK (HCI_HV1 | HCI_HV2 | HCI_HV3) #define ACL_PTYPE_MASK (~SCO_PTYPE_MASK) @@ -183,6 +198,12 @@ enum { #define LMP_PSCHEME 0x02 #define LMP_PCONTROL 0x04 +#define LMP_EDR_ACL_2M 0x02 +#define LMP_EDR_ACL_3M 0x04 +#define LMP_ENH_ISCAN 0x08 +#define LMP_ILACE_ISCAN 0x10 +#define LMP_ILACE_PSCAN 0x20 +#define LMP_RSSI_INQ 0x40 #define LMP_ESCO 0x80 #define LMP_EV4 0x01 diff -uprN compat-wireless-2.6.36-4/net/bluetooth/hci_event.c compat-wireless-2.6.36-4.mine//net/bluetooth/hci_event.c --- compat-wireless-2.6.36-4/net/bluetooth/hci_event.c 2010-11-08 22:00:51.000000000 -0300 +++ compat-wireless-2.6.36-4.mine//net/bluetooth/hci_event.c 2010-12-11 19:13:46.000000000 -0300 @@ -1,6 +1,7 @@ /* BlueZ - Bluetooth protocol stack for Linux Copyright (c) 2000-2001, 2010, Code Aurora Forum. All rights reserved. + Copyright (c) 2010 Naranjo Manuel Francisco Written 2000,2001 by Maxim Krasnyansky @@ -478,6 +479,26 @@ static void hci_cc_read_local_features(s if (hdev->features[3] & LMP_ESCO) hdev->esco_type |= (ESCO_EV3); + if (hdev->features[3] & LMP_EDR_ACL_2M){ + hdev->pkt_type |= (HCI_2DH1); + + if (hdev->features[0] & LMP_3SLOT) + hdev->pkt_type |= (HCI_2DH3); + + if (hdev->features[0] & LMP_5SLOT) + hdev->pkt_type |= (HCI_2DH5); + } + + if (hdev->features[3] & LMP_EDR_ACL_3M){ + hdev->pkt_type |= (HCI_3DH1); + + if (hdev->features[0] & LMP_3SLOT) + hdev->pkt_type |= (HCI_3DH3); + + if (hdev->features[0] & LMP_5SLOT) + hdev->pkt_type |= (HCI_3DH5); + } + if (hdev->features[4] & LMP_EV4) hdev->esco_type |= (ESCO_EV4);