From owner-freebsd-usb@FreeBSD.ORG Thu Jul 9 15:35:38 2009 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B845F1065680 for ; Thu, 9 Jul 2009 15:35:38 +0000 (UTC) (envelope-from nick@van-laarhoven.org) Received: from baranao.anywi.com (baranao.anywi.com [213.207.101.176]) by mx1.freebsd.org (Postfix) with ESMTP id 64C1C8FC17 for ; Thu, 9 Jul 2009 15:35:38 +0000 (UTC) (envelope-from nick@van-laarhoven.org) Received: from hind.van-laarhoven.org (ip51cfcfde.direct-adsl.nl [81.207.207.222]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by baranao.anywi.com (Postfix) with ESMTPSA id 1CACA3F41F for ; Thu, 9 Jul 2009 17:35:34 +0200 (CEST) From: Nick Hibma To: FreeBSD USB Mailing List Date: Thu, 9 Jul 2009 17:33:52 +0200 User-Agent: KMail/1.11.4 (FreeBSD/7.2-STABLE; KDE/4.2.4; i386; ; ) MIME-Version: 1.0 Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200907091733.53664.nick@van-laarhoven.org> X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on baranao.anywi.com Subject: ZTE devices X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jul 2009 15:35:39 -0000 HPS, Not sure whether this is actually a problem, but you might want to have a look at the switch command for ZTE devices in the FBSD7 code base. it uses a ZTE specific command. The ZTE 636 device here switches properly using that command sequence. On another note, that device presents alternate interfaces, as in, interface 0 and 2 have alternates 1 and 3 resp. How does the new stack handle that? Can you set these alternates during attach? If so, you might want to do that for ZTE devices, as the alternates probably contain the additional serial ports. Below the descriptor dump for those devices. Nick DEVICE addr 2 DEVICE descriptor: bLength=18 bDescriptorType=device(1) bcdUSB=2.00 bDeviceClass=0 bDeviceSubClass=0 bDeviceProtocol=0 bMaxPacketSize=64 idVendor=0x19d2 idProduct=0x0031 bcdDevice=0 iManufacturer=2(ZTE, Incorporated) iProduct=1(ZTE CDMA Technologies MSM) iSerialNumber=3(1234567890ABCDEF) bNumConfigurations=1 CONFIGURATION descriptor 0: bLength=9 bDescriptorType=config(2) wTotalLength=256 bNumInterface=4 bConfigurationValue=1 iConfiguration=0() bmAttributes=a0 bMaxPower=500 mA INTERFACE descriptor 0: bLength=9 bDescriptorType=interface(4) bInterfaceNumber=0 bAlternateSetting=0 bNumEndpoints=0 bInterfaceClass=255 bInterfaceSubClass=255 bInterfaceProtocol=255 iInterface=0() Unknown descriptor (class 255/255): bLength=5 bDescriptorType=36 bDescriptorSubtype=0 ... Unknown descriptor (class 255/255): bLength=5 bDescriptorType=36 bDescriptorSubtype=21 ... Unknown descriptor (class 255/255): bLength=5 bDescriptorType=36 bDescriptorSubtype=6 ... Unknown descriptor (class 255/255): bLength=21 bDescriptorType=36 bDescriptorSubtype=18 ... Unknown descriptor (class 255/255): bLength=6 bDescriptorType=36 bDescriptorSubtype=19 ... INTERFACE descriptor 1: bLength=9 bDescriptorType=interface(4) bInterfaceNumber=0 bAlternateSetting=1 bNumEndpoints=2 bInterfaceClass=255 bInterfaceSubClass=255 bInterfaceProtocol=255 iInterface=0() ENDPOINT descriptor: bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=1-in bmAttributes=bulk wMaxPacketSize=512 bInterval=32 ENDPOINT descriptor: bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=1-out bmAttributes=bulk wMaxPacketSize=512 bInterval=32 INTERFACE descriptor 2: bLength=9 bDescriptorType=interface(4) bInterfaceNumber=1 bAlternateSetting=0 bNumEndpoints=0 bInterfaceClass=255 bInterfaceSubClass=255 bInterfaceProtocol=255 iInterface=0() Unknown descriptor (class 255/255): bLength=5 bDescriptorType=36 bDescriptorSubtype=0 ... Unknown descriptor (class 255/255): bLength=5 bDescriptorType=36 bDescriptorSubtype=21 ... Unknown descriptor (class 255/255): bLength=5 bDescriptorType=36 bDescriptorSubtype=6 ... Unknown descriptor (class 255/255): bLength=21 bDescriptorType=36 bDescriptorSubtype=18 ... Unknown descriptor (class 255/255): bLength=6 bDescriptorType=36 bDescriptorSubtype=19 ... INTERFACE descriptor 3: bLength=9 bDescriptorType=interface(4) bInterfaceNumber=1 bAlternateSetting=1 bNumEndpoints=2 bInterfaceClass=255 bInterfaceSubClass=255 bInterfaceProtocol=255 iInterface=0() ENDPOINT descriptor: bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=2-in bmAttributes=bulk wMaxPacketSize=512 bInterval=32 ENDPOINT descriptor: bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=2-out bmAttributes=bulk wMaxPacketSize=512 bInterval=32 INTERFACE descriptor 4: bLength=9 bDescriptorType=interface(4) bInterfaceNumber=2 bAlternateSetting=0 bNumEndpoints=2 bInterfaceClass=8 bInterfaceSubClass=6 bInterfaceProtocol=80 iInterface=0() ENDPOINT descriptor: bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=3-out bmAttributes=bulk wMaxPacketSize=512 bInterval=0 ENDPOINT descriptor: bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=3-in bmAttributes=bulk wMaxPacketSize=512 bInterval=0 INTERFACE descriptor 5: bLength=9 bDescriptorType=interface(4) bInterfaceNumber=3 bAlternateSetting=0 bNumEndpoints=3 bInterfaceClass=255 bInterfaceSubClass=255 bInterfaceProtocol=255 iInterface=0() Unknown descriptor (class 255/255): bLength=5 bDescriptorType=36 bDescriptorSubtype=0 ... Unknown descriptor (class 255/255): bLength=4 bDescriptorType=36 bDescriptorSubtype=2 ... Unknown descriptor (class 255/255): bLength=5 bDescriptorType=36 bDescriptorSubtype=1 ... Unknown descriptor (class 255/255): bLength=5 bDescriptorType=36 bDescriptorSubtype=6 ... Unknown descriptor (class 255/255): bLength=21 bDescriptorType=36 bDescriptorSubtype=18 ... Unknown descriptor (class 255/255): bLength=6 bDescriptorType=36 bDescriptorSubtype=19 ... ENDPOINT descriptor: bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=4-in bmAttributes=interrupt wMaxPacketSize=64 bInterval=5 ENDPOINT descriptor: bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=5-in bmAttributes=bulk wMaxPacketSize=512 bInterval=32 ENDPOINT descriptor: bLength=7 bDescriptorType=endpoint(5) bEndpointAddress=4-out bmAttributes=bulk wMaxPacketSize=512 bInterval=32 current configuration 1 ----------