All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lars Melin <larsm17@gmail.com>
To: Macpaul Lin <macpaul.lin@mediatek.com>
Cc: Oliver Neukum <oneukum@suse.com>,
	Andrey Arapov <andrey.arapov@gmail.com>,
	Johan Hovold <johan@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mediatek WSD Upstream <wsd_upstream@mediatek.com>,
	linux-usb@vger.kernel.org, stable@vger.kernel.org
Subject: Re: [PATCH v5] cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader.
Date: Wed, 19 Dec 2018 10:31:49 +0700	[thread overview]
Message-ID: <3465233a-1afd-8112-ebd6-78cceb426c9d@gmail.com> (raw)
In-Reply-To: <1545189395.3262.2.camel@mtkswgap22>

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

WARNING: multiple messages have this Message-ID (diff)
From: Lars Melin <larsm17@gmail.com>
To: Macpaul Lin <macpaul.lin@mediatek.com>
Cc: Oliver Neukum <oneukum@suse.com>,
	Andrey Arapov <andrey.arapov@gmail.com>,
	Johan Hovold <johan@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mediatek WSD Upstream <wsd_upstream@mediatek.com>,
	linux-usb@vger.kernel.org, stable@vger.kernel.org
Subject: [v5] cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader.
Date: Wed, 19 Dec 2018 10:31:49 +0700	[thread overview]
Message-ID: <3465233a-1afd-8112-ebd6-78cceb426c9d@gmail.com> (raw)

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

  reply	other threads:[~2018-12-19  3:31 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-13  3:27 cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader macpaul.lin
2018-12-18  5:00 ` [PATCH v2] " Macpaul Lin
2018-12-18  5:00   ` [v2] " macpaul.lin
2018-12-18  9:02   ` [PATCH v2] " Johan Hovold
2018-12-18  9:02     ` [v2] " Johan Hovold
2018-12-18 10:41 ` [PATCH v3] " Macpaul Lin
2018-12-18 10:41   ` [v3] " macpaul.lin
2018-12-18 10:54   ` [PATCH v3] " Johan Hovold
2018-12-18 10:54     ` [v3] " Johan Hovold
2018-12-18 11:38 ` [PATCH v4] " Macpaul Lin
2018-12-18 11:38   ` [v4] " macpaul.lin
2018-12-18 11:44   ` [PATCH v4] " Johan Hovold
2018-12-18 11:44     ` [v4] " Johan Hovold
2018-12-18 11:59 ` [PATCH v5] " Macpaul Lin
2018-12-18 11:59   ` [v5] " macpaul.lin
2018-12-18 12:38   ` [PATCH v5] " Johan Hovold
2018-12-18 12:38     ` [v5] " Johan Hovold
2018-12-18 13:37     ` [PATCH v5] " Oliver Neukum
2018-12-18 13:37       ` [v5] " Oliver Neukum
2018-12-18 14:26       ` [PATCH v5] " Macpaul Lin
2018-12-18 14:26         ` [v5] " macpaul.lin
2018-12-18 15:19         ` [PATCH v5] " Macpaul Lin
2018-12-18 15:19           ` [v5] " macpaul.lin
2018-12-18 16:42           ` [PATCH v5] " Lars Melin
2018-12-18 16:42             ` [v5] " Lars Melin
2018-12-18 17:48             ` [PATCH v5] " Macpaul Lin
2018-12-18 17:48               ` [v5] " macpaul.lin
2018-12-19  0:45               ` [PATCH v5] " Lars Melin
2018-12-19  0:45                 ` [v5] " Lars Melin
2018-12-19  2:22               ` [PATCH v5] " Macpaul Lin
2018-12-19  2:22                 ` [v5] " macpaul.lin
2018-12-19  3:16                 ` [PATCH v5] " Macpaul Lin
2018-12-19  3:16                   ` [v5] " macpaul.lin
2018-12-19  3:31                   ` Lars Melin [this message]
2018-12-19  3:31                     ` Lars Melin
2018-12-19  4:03                     ` [PATCH v5] " Macpaul Lin
2018-12-19  4:03                       ` [v5] " macpaul.lin
2018-12-19  8:56                       ` [PATCH v5] " Oliver Neukum
2018-12-19  8:56                         ` [v5] " Oliver Neukum
2018-12-20 15:19                         ` [PATCH v5] " Greg Kroah-Hartman
2018-12-20 15:19                           ` [v5] " Greg Kroah-Hartman
2018-12-18 15:37 ` [PATCH v6] " Macpaul Lin
2018-12-18 15:37   ` [v6] " macpaul.lin
2018-12-19  4:11 ` [PATCH v7] " Macpaul Lin
2018-12-19  4:11   ` [v7] " macpaul.lin
2018-12-19  9:00   ` [PATCH v7] " Johan Hovold
2018-12-19  9:00     ` [v7] " Johan Hovold
2018-12-20 15:28     ` [PATCH v7] " Oliver Neukum
2018-12-20 15:28       ` [v7] " Oliver Neukum

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3465233a-1afd-8112-ebd6-78cceb426c9d@gmail.com \
    --to=larsm17@gmail.com \
    --cc=andrey.arapov@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=johan@kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=macpaul.lin@mediatek.com \
    --cc=oneukum@suse.com \
    --cc=stable@vger.kernel.org \
    --cc=wsd_upstream@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.