From: Douglas Gilbert <dgilbert@interlog.com>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Greg KH <gregkh@linuxfoundation.org>,
"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>
Subject: Re: device present in lsusb, disappears in lsusb -t
Date: Fri, 13 Oct 2023 17:44:19 -0400 [thread overview]
Message-ID: <3659cd85-1ad0-4587-b2db-acec87f6312b@interlog.com> (raw)
In-Reply-To: <f51cd282-6244-4689-84be-143e56809eb2@rowland.harvard.edu>
On 10/13/23 10:50, Alan Stern wrote:
> On Thu, Oct 12, 2023 at 10:12:42PM -0400, Douglas Gilbert wrote:
>> # lsusb -tv
>> /: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 480M
>> ID 1d6b:0002 Linux Foundation 2.0 root hub
>> /: Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/3p, 20000M/x2
>> ID 1d6b:0003 Linux Foundation 3.0 root hub
>> /: Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/12p, 480M
>> ID 1d6b:0002 Linux Foundation 2.0 root hub
>> |__ Port 003: Dev 007, If 0, Class=Vendor Specific Class, Driver=, 12M
>> ID 06cb:00f9 Synaptics, Inc.
>> |__ Port 004: Dev 003, If 0, Class=Video, Driver=uvcvideo, 480M
>> ID 5986:1177 Acer, Inc
>> |__ Port 004: Dev 003, If 1, Class=Video, Driver=uvcvideo, 480M
>> ID 5986:1177 Acer, Inc
>> |__ Port 004: Dev 003, If 2, Class=Application Specific Interface,
>> Driver=, 480M
>> ID 5986:1177 Acer, Inc
>> |__ Port 005: Dev 009, 12M
>> ID 0483:572b STMicroelectronics
>> |__ Port 007: Dev 004, If 0, Class=Human Interface Device, Driver=usbhid, 12M
>> ID 046d:c52b Logitech, Inc. Unifying Receiver
>> |__ Port 007: Dev 004, If 1, Class=Human Interface Device, Driver=usbhid, 12M
>> ID 046d:c52b Logitech, Inc. Unifying Receiver
>> |__ Port 007: Dev 004, If 2, Class=Human Interface Device, Driver=usbhid, 12M
>> ID 046d:c52b Logitech, Inc. Unifying Receiver
>> /: Bus 004.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 10000M
>> ID 1d6b:0003 Linux Foundation 3.0 root hub
>>
>>
>> And there it is: Bus 003. Port 005: Dev 009 !!
>
> Not much of an entry, but better than nothing. :-)
>
>> Re your "unusual device" comment: welcome to USB-C PD which in a way subverts
>> "classic" USB.
>
> Well, it's not really a subversion. Just using it in a way it wasn't
> intended to be used, while still remaining in compliance with the spec.
>
>> USB-C port 0 has the ST Micro dongle in it; USB-C port 1 has a PD power adapter:
>>
>> # lsucpd
>> port0 [pd0] ====>> partner [pd2]
>> port1 [pd1] <<==== partner [pd3]
>>
>> # lsucpd pd2 -c
>>> pd2: has NO source capabilities
>>> pd2: sink capabilities:
>> >> 1:fixed_supply
>> dual_role_data='0'
>> dual_role_power='0'
>> fast_role_swap_current='0'
>> higher_capability='0'
>> operational_current='3000mA'
>> unchunked_extended_messages_supported='0'
>> unconstrained_power='0'
>> usb_communication_capable='0'
>> ^^^^^^^^^^^^^
>> voltage='5000mV'
>>
>> So port 0's partner says it does _not_ support USB data communications! I
>> think that means that if anything moves along D+, D-, and the Tx plus Rx
>> SuperSpeed circuits then it does _not_ follow the USB specs.
>
> Not quite; if that were true then nothing would have shown up in any of
> the lsusb outputs, with or without -t and with or without my patch. The
> dongle transfers enough data to be initialized and enumerated. of
So then there might be two varieties of "usb_communications_capable=0" *** :
those that send enough along D+ and D- to be enumerated; and those that don't
have D+ and D- pins! Many USB PD power adapters are any that second variety.
And it is not the worst idea to have a USB-C M-M cable that is Emarked (so
it can carry up to 5 Amps) and does _not_ connect D+, D- and the SuperSpeed
signals). And this is the cable to use when recharging your USB-C devices
from a public source ...
Doug Gilbert
*** I prefer the snake case variant of "usb_communications_capable" because that
is the term used by the PD specs, not "usb_communication_capable" .
>> Further USB PD
>> potentially sets up alternate modes:
>>
>> # lsucpd -ll p0p
>> port0 [pd0] ====>> partner [pd2]
>> port0-partner [pd2]:
>> accessory_mode='none'
>> number_of_alternate_modes='1'
>> supports_usb_power_delivery='yes'
>> usb_power_delivery_revision='0.0'
>> Alternate mode: /sys/class/typec/port0-partner/port0-partner.0
>> active='yes'
>> description='DisplayPort'
>> mode='1'
>> svid='ff01'
>> vdo='0x00001085'
>>
>> So you could argue the 'lsusb -t' should not list this USB-C DP dongle.
>> IMO a stronger argument is that lsusb and 'lsusb -t' should list the
>> same devices.
>>
>> If you submit a patch you can add my "tested-by" to it. Another (little)
>> bug fixed.
>
> Thank you; I will.
>
> Alan Stern
prev parent reply other threads:[~2023-10-13 21:44 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-16 0:16 device present in lsusb, disappears in lsusb -t Douglas Gilbert
2023-09-16 11:16 ` Greg KH
2023-10-06 2:49 ` Douglas Gilbert
2023-10-11 9:30 ` Greg KH
2023-10-11 15:00 ` Alan Stern
2023-10-11 18:51 ` Douglas Gilbert
2023-10-12 12:50 ` Greg KH
2023-10-12 14:38 ` Douglas Gilbert
2023-10-12 19:10 ` Alan Stern
2023-10-13 2:12 ` Douglas Gilbert
2023-10-13 14:50 ` Alan Stern
2023-10-13 21:44 ` Douglas Gilbert [this message]
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=3659cd85-1ad0-4587-b2db-acec87f6312b@interlog.com \
--to=dgilbert@interlog.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-usb@vger.kernel.org \
--cc=stern@rowland.harvard.edu \
/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.