Linux-USB Archive on lore.kernel.org
 help / color / Atom feed
* Very frequent disconnects over USB type-C when using power delivery
@ 2020-01-13 12:51 Mike Murdoch
  0 siblings, 0 replies; only message in thread
From: Mike Murdoch @ 2020-01-13 12:51 UTC (permalink / raw)
  To: linux-usb

[-- Attachment #1: Type: text/plain, Size: 1612 bytes --]

Good day,

I am running kernel 5.4.7 on a recently acquired Lenovo Thinkpad X1 
Extreme Gen 2. It has two USB-C ports which support USB-PD source and 
sink, DisplayPort and USB. They also support Thunderbolt 3 which I do 
not use. All ports are controlled by an Intel Corporation Cannon Lake 
PCH USB 3.1 xHCI Host Controller (rev 10).

My sole USB-C device is a Dell Ultrasharp U3818DW monitor. When hooked 
up over its USB-C port, it supports USB-PD source, DisplayPort and USB 
hub functionality. It exposes two TI USB devices: 0451:8442 (hub) and 
0451:82ff (a HID device?) along with the devices attached to its hub. 
Sometimes 82ff is replaced by 82ee.

Connecting the monitor to the laptop is problematic. *Reliably*, every 
3±1 minutes, the monitor disconnects and reconnects a few seconds later, 
along with all devices attached to the monitor's USB hub, the monitor's 
DisplayPort, and power-delivery. It doesn't matter if the DisplayPort 
link is idle at the time. The kernel log shows no suspicious entries, 
apart from USB disconnect/new device chatter. Curiously, I occasionally 
see a new device announcement being logged before the disconnect message is.

Now when a dedicated charger is plugged into the system, it appears to 
be preferred over USB-PD (the power LED blinks, indicating an attached 
charger). At this point the disconnects stop. To me, this indicates a 
problem with USB-PD.

Any ideas? I'd be happy to help out in making USB-PD work reliably. I 
can test patches or provide additional logs. Find attached lsusb -v of 
the relevant devices.

Thanks a lot!

Best regards,
- Mike

[-- Attachment #2: usbdev.txt --]
[-- Type: text/plain, Size: 11546 bytes --]

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0
  bDeviceProtocol         3
  bMaxPacketSize0         9
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0003 3.0 root hub
  bcdDevice            5.04
  iManufacturer           3 Linux 5.4.7-HH xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:00:14.0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x001f
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              12
        bMaxBurst               0
Hub Descriptor:
  bLength              12
  bDescriptorType      42
  nNbrPorts            10
  wHubCharacteristic 0x000a
    No power switching (usb 1.0)
    Per-port overcurrent protection
  bPwrOn2PwrGood       10 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  bHubDecLat          0.0 micro seconds
  wHubDelay             0 nano seconds
  DeviceRemovable    0x00 0x00
 Hub Port Status:
   Port 1: 0000.02a0 lowspeed L1
   Port 2: 0000.02a0 lowspeed L1
   Port 3: 0000.02a0 lowspeed L1
   Port 4: 0000.02a0 lowspeed L1
   Port 5: 0000.02a0 lowspeed L1
   Port 6: 0000.02a0 lowspeed L1
   Port 7: 0000.02a0 lowspeed L1
   Port 8: 0000.02a0 lowspeed L1
   Port 9: 0000.02a0 lowspeed L1
   Port 10: 0000.02a0 lowspeed L1
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength       0x005b
  bNumDeviceCaps          2
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x02
      Latency Tolerance Messages (LTM) Supported
    wSpeedsSupported   0x0008
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   3
      Lowest fully-functional device speed is SuperSpeed (5Gbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat         918 micro seconds
  SuperSpeedPlus USB Device Capability:
    bLength                76
    bDescriptorType        16
    bDevCapabilityType     10
    bmAttributes         0x000000ef
      Sublink Speed Attribute count 15
      Sublink Speed ID count 7
    wFunctionalitySupport   0x0001
    bmSublinkSpeedAttr[0]   0x00050034
      Speed Attribute ID: 4 5Gb/s Symmetric RX SuperSpeed
    bmSublinkSpeedAttr[1]   0x000500b4
      Speed Attribute ID: 4 5Gb/s Symmetric TX SuperSpeed
    bmSublinkSpeedAttr[2]   0x000a4035
      Speed Attribute ID: 5 10Gb/s Symmetric RX SuperSpeedPlus
    bmSublinkSpeedAttr[3]   0x000a40b5
      Speed Attribute ID: 5 10Gb/s Symmetric TX SuperSpeedPlus
    bmSublinkSpeedAttr[4]   0x04e00026
      Speed Attribute ID: 6 1248Mb/s Symmetric RX SuperSpeed
    bmSublinkSpeedAttr[5]   0x04e000a6
      Speed Attribute ID: 6 1248Mb/s Symmetric TX SuperSpeed
    bmSublinkSpeedAttr[6]   0x09c00027
      Speed Attribute ID: 7 2496Mb/s Symmetric RX SuperSpeed
    bmSublinkSpeedAttr[7]   0x09c000a7
      Speed Attribute ID: 7 2496Mb/s Symmetric TX SuperSpeed
    bmSublinkSpeedAttr[8]   0x13800028
      Speed Attribute ID: 8 4992Mb/s Symmetric RX SuperSpeed
    bmSublinkSpeedAttr[9]   0x138000a8
      Speed Attribute ID: 8 4992Mb/s Symmetric TX SuperSpeed
    bmSublinkSpeedAttr[10]   0x05b10029
      Speed Attribute ID: 9 1457Mb/s Symmetric RX SuperSpeed
    bmSublinkSpeedAttr[11]   0x05b100a9
      Speed Attribute ID: 9 1457Mb/s Symmetric TX SuperSpeed
    bmSublinkSpeedAttr[12]   0x0b63002a
      Speed Attribute ID: 10 2915Mb/s Symmetric RX SuperSpeed
    bmSublinkSpeedAttr[13]   0x0b6300aa
      Speed Attribute ID: 10 2915Mb/s Symmetric TX SuperSpeed
    bmSublinkSpeedAttr[14]   0x16c6002b
      Speed Attribute ID: 11 5830Mb/s Symmetric RX SuperSpeed
    bmSublinkSpeedAttr[15]   0x16c600ab
      Speed Attribute ID: 11 5830Mb/s Symmetric TX SuperSpeed
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0001
  Self Powered

Bus 001 Device 097: ID 0451:82ff Texas Instruments, Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.01
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0451 Texas Instruments, Inc.
  idProduct          0x82ff
  bcdDevice            1.00
  iManufacturer           0
  iProduct                0
  iSerial                 1 F70C0051CC9D
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0022
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0
      bInterfaceProtocol      0
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      49
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               4
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength       0x0020
  bNumDeviceCaps          2
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x00000006
      BESL Link Power Management (LPM) Supported
  Container ID Device Capability:
    bLength                20
    bDescriptorType        16
    bDevCapabilityType      4
    bReserved               0
    ContainerID             {1a410000-8a04-4c74-d216-27c2b6c9d000}
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0001
  Self Powered


Bus 001 Device 094: ID 0451:8442 Texas Instruments, Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0
  bDeviceProtocol         2 TT per port
  bMaxPacketSize0        64
  idVendor           0x0451 Texas Instruments, Inc.
  idProduct          0x8442
  bcdDevice            1.00
  iManufacturer           0
  iProduct                0
  iSerial                 1 F70C0051CC9D
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0029
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0
      bInterfaceProtocol      1 Single TT
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0
      bInterfaceProtocol      2 TT per port
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             6
  wHubCharacteristic 0x000d
    Per-port power switching
    Compound device
    Per-port overcurrent protection
    TT think time 8 FS bits
  bPwrOn2PwrGood       50 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  DeviceRemovable    0x60
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.0303 lowspeed power enable connect
   Port 2: 0000.0103 power enable connect
   Port 3: 0000.0100 power
   Port 4: 0000.0100 power
   Port 5: 0000.0503 highspeed power enable connect
   Port 6: 0000.0100 power
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength       0x002a
  bNumDeviceCaps          3
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x00000006
      BESL Link Power Management (LPM) Supported
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x00
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   1
      Lowest fully-functional device speed is Full Speed (12Mbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat          10 micro seconds
  Container ID Device Capability:
    bLength                20
    bDescriptorType        16
    bDevCapabilityType      4
    bReserved               0
    ContainerID             {1a410000-8a04-4c74-d216-27c2b6c9d000}
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0001
  Self Powered

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, back to index

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-13 12:51 Very frequent disconnects over USB type-C when using power delivery Mike Murdoch

Linux-USB Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-usb/0 linux-usb/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-usb linux-usb/ https://lore.kernel.org/linux-usb \
		linux-usb@vger.kernel.org
	public-inbox-index linux-usb

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-usb


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git