From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-f180.google.com ([209.85.210.180]:35882 "EHLO mail-pf1-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726537AbeLSDbz (ORCPT ); Tue, 18 Dec 2018 22:31:55 -0500 Subject: Re: [PATCH v5] cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader. To: Macpaul Lin Cc: Oliver Neukum , Andrey Arapov , Johan Hovold , Greg Kroah-Hartman , Mediatek WSD Upstream , linux-usb@vger.kernel.org, stable@vger.kernel.org References: <1544671676-23912-1-git-send-email-macpaul.lin@mediatek.com> <1545134386-5528-1-git-send-email-macpaul.lin@mediatek.com> <20181218123840.GP20658@localhost> <1545140229.18594.3.camel@suse.com> <1545143195.10193.6.camel@mtkswgap22> <1545146389.10193.12.camel@mtkswgap22> <5b0e5bf4-0411-0c58-ccae-fe66c937a36b@gmail.com> <1545155303.16619.11.camel@mtkswgap22> <1545186137.1821.5.camel@mtkswgap22> <1545189395.3262.2.camel@mtkswgap22> From: Lars Melin Message-ID: <3465233a-1afd-8112-ebd6-78cceb426c9d@gmail.com> Date: Wed, 19 Dec 2018 10:31:49 +0700 MIME-Version: 1.0 In-Reply-To: <1545189395.3262.2.camel@mtkswgap22> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: On 12/19/2018 10:16, Macpaul Lin wrote: . > Here comes the verbose lsusb -v dump. > > Bus 001 Device 003: ID 0e8d:0003 MediaTek Inc. MT6227 phone > [432/3160] > Device Descriptor: > bLength 18 > bDescriptorType 1 > bcdUSB 1.10 > bDeviceClass 2 Communications > bDeviceSubClass 0 > bDeviceProtocol 0 > bMaxPacketSize0 64 > idVendor 0x0e8d MediaTek Inc. > idProduct 0x0003 MT6227 phone > bcdDevice 1.00 > iManufacturer 0 > iProduct 0 > iSerial 0 > bNumConfigurations 1 > Configuration Descriptor: > bLength 9 > bDescriptorType 2 > wTotalLength 67 > bNumInterfaces 2 > bConfigurationValue 1 > iConfiguration 0 > bmAttributes 0x80 > (Bus Powered) > MaxPower 0mA > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 0 > bAlternateSetting 0 > bNumEndpoints 1 > bInterfaceClass 2 Communications > bInterfaceSubClass 2 Abstract (modem) > bInterfaceProtocol 1 AT-commands (v.25ter) > iInterface 1 (error) > CDC Header: > bcdCDC 1.10 > CDC ACM: > bmCapabilities 0x0f > connection notifications > sends break > line coding and serial state > get/set/clear comm features > CDC Union: > bMasterInterface 0 > bSlaveInterface 1 > CDC Call Management: > bmCapabilities 0x03 > call management > use DataInterface > bDataInterface 1 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x84 EP 4 IN > bmAttributes 3 > Transfer Type Interrupt > Synch Type None > Usage Type Data > wMaxPacketSize 0x0040 1x 64 bytes > bInterval 1 > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 1 > bAlternateSetting 0 > bNumEndpoints 2 > bInterfaceClass 10 CDC Data > bInterfaceSubClass 0 Unused > bInterfaceProtocol 0 > iInterface 2 (error) > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x81 EP 1 IN > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0200 1x 512 bytes > bInterval 0 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x01 EP 1 OUT > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0200 1x 512 bytes > bInterval 0 > Device Status: 0x7410 > (Bus Powered) > Regards, > Macpaul Lin > Hi Macpaul, your verbose usb listing show me that Mediatek has made two different 0e8d:003 devices, see my verbose lsusb listing below. (Notice also the reverse order for cmd and data interfaces in it compared to yours). USB id's are intended to identify a device and its needs so there should never be more than one unique device per id. Fairphone FP-1, MT6227 (no CDC union !!!) MI_00 USB Single Port Bus 001 Device 004: ID 0e8d:0003 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 2 Communications bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x0e8d idProduct 0x0003 bcdDevice 0.01 iManufacturer 3 MediaTek Inc iProduct 4 SEATTLE iSerial 5 534574001004 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 67 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 Data bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 1 6218B COM Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Interface Descriptor: bLength 28 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (modem) bInterfaceProtocol 1 AT-commands (v.25ter) iInterface 2 6218B COM Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 1 Device Status: 0x0000 (Bus Powered) /Lars