[Midnightbsd-cvs] src [9929] trunk/sys/netgraph/bluetooth/drivers: update bluetooth drivers

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Fri May 25 09:15:11 EDT 2018


Revision: 9929
          http://svnweb.midnightbsd.org/src/?rev=9929
Author:   laffer1
Date:     2018-05-25 09:15:11 -0400 (Fri, 25 May 2018)
Log Message:
-----------
update bluetooth drivers

Modified Paths:
--------------
    trunk/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c
    trunk/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_var.h
    trunk/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c
    trunk/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h
    trunk/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c

Modified: trunk/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c
===================================================================
--- trunk/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c	2018-05-25 13:13:07 UTC (rev 9928)
+++ trunk/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c	2018-05-25 13:15:11 UTC (rev 9929)
@@ -28,8 +28,8 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $Id: ng_bt3c_pccard.c,v 1.4 2013-11-27 03:41:16 laffer1 Exp $
- * $FreeBSD$
+ * $Id: ng_bt3c_pccard.c,v 1.5 2003/04/01 18:15:21 max Exp $
+ * $FreeBSD: stable/10/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c 243882 2012-12-05 08:04:20Z glebius $
  *
  * XXX XXX XX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX 
  *
@@ -808,7 +808,7 @@
 			sc->state = NG_BT3C_W4_PKT_IND;
 			sc->want = 1;
 
-			MGETHDR(sc->m, M_DONTWAIT, MT_DATA);
+			MGETHDR(sc->m, M_NOWAIT, MT_DATA);
 			if (sc->m == NULL) {
 				NG_BT3C_ERR(sc->dev, "Could not get mbuf\n");
 				NG_BT3C_STAT_IERROR(sc->stat);
@@ -816,7 +816,7 @@
 				break; /* XXX lost of sync */
 			}
 
-			MCLGET(sc->m, M_DONTWAIT);
+			MCLGET(sc->m, M_NOWAIT);
 			if (!(sc->m->m_flags & M_EXT)) {
 				NG_FREE_M(sc->m);
 

Modified: trunk/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_var.h
===================================================================
--- trunk/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_var.h	2018-05-25 13:13:07 UTC (rev 9928)
+++ trunk/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_var.h	2018-05-25 13:15:11 UTC (rev 9929)
@@ -1,3 +1,4 @@
+/* $MidnightBSD$ */
 /*
  * ng_bt3c_var.h
  */
@@ -27,8 +28,8 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $Id: ng_bt3c_var.h,v 1.1.1.4 2012-07-21 15:17:19 laffer1 Exp $
- * $FreeBSD$
+ * $Id: ng_bt3c_var.h,v 1.1 2002/11/24 19:46:54 max Exp $
+ * $FreeBSD: stable/10/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_var.h 160114 2006-07-05 17:18:47Z emax $
  *
  * XXX XXX XX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX 
  *

Modified: trunk/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c
===================================================================
--- trunk/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c	2018-05-25 13:13:07 UTC (rev 9928)
+++ trunk/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c	2018-05-25 13:15:11 UTC (rev 9929)
@@ -28,8 +28,8 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $Id: ng_ubt.c,v 1.2 2013-11-27 03:41:35 laffer1 Exp $
- * $FreeBSD$
+ * $Id: ng_ubt.c,v 1.16 2003/10/10 19:15:06 max Exp $
+ * $FreeBSD: stable/10/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c 255128 2013-09-01 19:27:32Z eadler $
  */
 
 /*
@@ -387,6 +387,39 @@
 {
 	/* AVM USB Bluetooth-Adapter BlueFritz! v1.0 */
 	{ USB_VPI(USB_VENDOR_AVM, 0x2200, 0) },
+
+	/* Atheros 3011 with sflash firmware */
+	{ USB_VPI(0x0cf3, 0x3002, 0) },
+	{ USB_VPI(0x0cf3, 0xe019, 0) },
+	{ USB_VPI(0x13d3, 0x3304, 0) },
+	{ USB_VPI(0x0930, 0x0215, 0) },
+	{ USB_VPI(0x0489, 0xe03d, 0) },
+	{ USB_VPI(0x0489, 0xe027, 0) },
+
+	/* Atheros AR9285 Malbec with sflash firmware */
+	{ USB_VPI(0x03f0, 0x311d, 0) },
+
+	/* Atheros 3012 with sflash firmware */
+	{ USB_VPI(0x0cf3, 0x3004, 0) },
+	{ USB_VPI(0x0cf3, 0x311d, 0) },
+	{ USB_VPI(0x13d3, 0x3375, 0) },
+	{ USB_VPI(0x04ca, 0x3005, 0) },
+	{ USB_VPI(0x04ca, 0x3006, 0) },
+	{ USB_VPI(0x04ca, 0x3008, 0) },
+	{ USB_VPI(0x13d3, 0x3362, 0) },
+	{ USB_VPI(0x0cf3, 0xe004, 0) },
+	{ USB_VPI(0x0930, 0x0219, 0) },
+	{ USB_VPI(0x0489, 0xe057, 0) },
+	{ USB_VPI(0x13d3, 0x3393, 0) },
+	{ USB_VPI(0x0489, 0xe04e, 0) },
+	{ USB_VPI(0x0489, 0xe056, 0) },
+
+	/* Atheros AR5BBU12 with sflash firmware */
+	{ USB_VPI(0x0489, 0xe02c, 0) },
+
+	/* Atheros AR5BBU12 with sflash firmware */
+	{ USB_VPI(0x0489, 0xe03c, 0) },
+	{ USB_VPI(0x0489, 0xe036, 0) },
 };
 
 /* List of supported bluetooth devices */
@@ -405,6 +438,67 @@
 	  USB_IFACE_CLASS(UICLASS_VENDOR),
 	  USB_IFACE_SUBCLASS(UDSUBCLASS_RF),
 	  USB_IFACE_PROTOCOL(UDPROTO_BLUETOOTH) },
+
+	/* Apple-specific (Broadcom) devices */
+	{ USB_VENDOR(USB_VENDOR_APPLE),
+	  USB_IFACE_CLASS(UICLASS_VENDOR),
+	  USB_IFACE_SUBCLASS(UDSUBCLASS_RF),
+	  USB_IFACE_PROTOCOL(UDPROTO_BLUETOOTH) },
+
+	/* Foxconn - Hon Hai */
+	{ USB_VENDOR(USB_VENDOR_FOXCONN),
+	  USB_IFACE_CLASS(UICLASS_VENDOR),
+	  USB_IFACE_SUBCLASS(UDSUBCLASS_RF),
+	  USB_IFACE_PROTOCOL(UDPROTO_BLUETOOTH) },
+
+	/* MediaTek MT76x0E */
+	{ USB_VPI(USB_VENDOR_MEDIATEK, 0x763f, 0) },
+
+	/* Broadcom SoftSailing reporting vendor specific */
+	{ USB_VPI(USB_VENDOR_BROADCOM, 0x21e1, 0) },
+
+	/* Apple MacBookPro 7,1 */
+	{ USB_VPI(USB_VENDOR_APPLE, 0x8213, 0) },
+
+	/* Apple iMac11,1 */
+	{ USB_VPI(USB_VENDOR_APPLE, 0x8215, 0) },
+
+	/* Apple MacBookPro6,2 */
+	{ USB_VPI(USB_VENDOR_APPLE, 0x8218, 0) },
+
+	/* Apple MacBookAir3,1, MacBookAir3,2 */
+	{ USB_VPI(USB_VENDOR_APPLE, 0x821b, 0) },
+
+	/* Apple MacBookAir4,1 */
+	{ USB_VPI(USB_VENDOR_APPLE, 0x821f, 0) },
+
+	/* MacBookAir6,1 */
+	{ USB_VPI(USB_VENDOR_APPLE, 0x828f, 0) },
+
+	/* Apple MacBookPro8,2 */
+	{ USB_VPI(USB_VENDOR_APPLE, 0x821a, 0) },
+
+	/* Apple MacMini5,1 */
+	{ USB_VPI(USB_VENDOR_APPLE, 0x8281, 0) },
+
+	/* Bluetooth Ultraport Module from IBM */
+	{ USB_VPI(USB_VENDOR_TDK, 0x030a, 0) },
+
+	/* ALPS Modules with non-standard ID */
+	{ USB_VPI(USB_VENDOR_ALPS, 0x3001, 0) },
+	{ USB_VPI(USB_VENDOR_ALPS, 0x3002, 0) },
+
+	{ USB_VPI(USB_VENDOR_ERICSSON2, 0x1002, 0) },
+
+	/* Canyon CN-BTU1 with HID interfaces */
+	{ USB_VPI(USB_VENDOR_CANYON, 0x0000, 0) },
+
+	/* Broadcom BCM20702A0 */
+	{ USB_VPI(USB_VENDOR_ASUS, 0x17b5, 0) },
+	{ USB_VPI(USB_VENDOR_ASUS, 0x17cb, 0) },
+	{ USB_VPI(USB_VENDOR_LITEON, 0x2003, 0) },
+	{ USB_VPI(USB_VENDOR_FOXCONN, 0xe042, 0) },
+	{ USB_VPI(USB_VENDOR_DELL, 0x8197, 0) },
 };
 
 /*
@@ -446,6 +540,7 @@
 	struct ubt_softc		*sc = device_get_softc(dev);
 	struct usb_endpoint_descriptor	*ed;
 	struct usb_interface_descriptor *id;
+	struct usb_interface		*iface;
 	uint16_t			wMaxPacketSize;
 	uint8_t				alt_index, i, j;
 	uint8_t				iface_index[2] = { 0, 1 };
@@ -561,10 +656,21 @@
 		goto detach;
 	}
 
-	/* Claim all interfaces on the device */
-	for (i = 1; usbd_get_iface(uaa->device, i) != NULL; i ++)
-		usbd_set_parent_iface(uaa->device, i, uaa->info.bIfaceIndex);
+	/* Claim all interfaces belonging to the Bluetooth part */
+	for (i = 1;; i++) {
+		iface = usbd_get_iface(uaa->device, i);
+		if (iface == NULL)
+			break;
+		id = usbd_get_interface_descriptor(iface);
 
+		if ((id != NULL) &&
+		    (id->bInterfaceClass == UICLASS_WIRELESS) &&
+		    (id->bInterfaceSubClass == UISUBCLASS_RF) &&
+		    (id->bInterfaceProtocol == UIPROTO_BLUETOOTH)) {
+			usbd_set_parent_iface(uaa->device, i,
+			    uaa->info.bIfaceIndex);
+		}
+	}
 	return (0); /* success */
 
 detach:
@@ -705,13 +811,13 @@
 	switch (USB_GET_STATE(xfer)) {
 	case USB_ST_TRANSFERRED:
 		/* Allocate a new mbuf */
-		MGETHDR(m, M_DONTWAIT, MT_DATA);
+		MGETHDR(m, M_NOWAIT, MT_DATA);
 		if (m == NULL) {
 			UBT_STAT_IERROR(sc);
 			goto submit_next;
 		}
 
-		MCLGET(m, M_DONTWAIT);
+		MCLGET(m, M_NOWAIT);
 		if (!(m->m_flags & M_EXT)) {
 			UBT_STAT_IERROR(sc);
 			goto submit_next;
@@ -805,13 +911,13 @@
 	switch (USB_GET_STATE(xfer)) {
 	case USB_ST_TRANSFERRED:
 		/* Allocate new mbuf */
-		MGETHDR(m, M_DONTWAIT, MT_DATA);
+		MGETHDR(m, M_NOWAIT, MT_DATA);
 		if (m == NULL) {
 			UBT_STAT_IERROR(sc);
 			goto submit_next;
 		}
 
-		MCLGET(m, M_DONTWAIT);
+		MCLGET(m, M_NOWAIT);
 		if (!(m->m_flags & M_EXT)) {
 			UBT_STAT_IERROR(sc);
 			goto submit_next;
@@ -1015,13 +1121,13 @@
 	while (total > 0) {
 		if (m == NULL) {
 			/* Start new reassembly buffer */
-			MGETHDR(m, M_DONTWAIT, MT_DATA);
+			MGETHDR(m, M_NOWAIT, MT_DATA);
 			if (m == NULL) {
 				UBT_STAT_IERROR(sc);
 				return (-1);	/* XXX out of sync! */
 			}
 
-			MCLGET(m, M_DONTWAIT);
+			MCLGET(m, M_NOWAIT);
 			if (!(m->m_flags & M_EXT)) {
 				UBT_STAT_IERROR(sc);
 				NG_FREE_M(m);

Modified: trunk/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h
===================================================================
--- trunk/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h	2018-05-25 13:13:07 UTC (rev 9928)
+++ trunk/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h	2018-05-25 13:15:11 UTC (rev 9929)
@@ -1,3 +1,4 @@
+/* $MidnightBSD$ */
 /*
  * ng_ubt_var.h
  */
@@ -27,8 +28,8 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $Id: ng_ubt_var.h,v 1.1.1.4 2012-07-21 15:17:19 laffer1 Exp $
- * $FreeBSD$
+ * $Id: ng_ubt_var.h,v 1.2 2003/03/22 23:44:36 max Exp $
+ * $FreeBSD: stable/10/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h 196219 2009-08-14 20:03:53Z jhb $
  */
 
 #ifndef _NG_UBT_VAR_H_

Modified: trunk/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c
===================================================================
--- trunk/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c	2018-05-25 13:13:07 UTC (rev 9928)
+++ trunk/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c	2018-05-25 13:15:11 UTC (rev 9929)
@@ -1,3 +1,4 @@
+/* $MidnightBSD$ */
 /*
  * ubtbcmfw.c
  */
@@ -27,8 +28,8 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $Id: ubtbcmfw.c,v 1.1.1.4 2012-07-21 15:17:19 laffer1 Exp $
- * $FreeBSD$
+ * $Id: ubtbcmfw.c,v 1.3 2003/10/10 19:15:08 max Exp $
+ * $FreeBSD: stable/10/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c 223486 2011-06-24 02:30:02Z hselasky $
  */
 
 #include <sys/stdint.h>



More information about the Midnightbsd-cvs mailing list