On 2020-04-17 20:37, Lev Serebryakov wrote:
On 17.04.2020 18:38, Hans Petter Selasky wrote:

Maybe the kernel was compiles w/o:

options USB_DEBUG
  Yep. I have kernel with this option now, and debug shows that each 
disconnection looks like this (there are one successful explore cycle and one 
which triggers disconnection):

Apr 17 21:31:48 gateway kernel: usb_needs_explore:
Apr 17 21:31:48 gateway kernel: usb_bus_powerd: bus=0xfffffe00322b2cd8
Apr 17 21:31:48 gateway kernel: usb_bus_powerd: Recomputing power masks
Apr 17 21:31:48 gateway kernel: uhub_explore: udev=0xfffff80006c35000 addr=1
Apr 17 21:31:48 gateway kernel: uhub_read_port_status: port 1, 
wPortStatus=0x0500, wPortChange=0x0000, err=USB_ERR_NORMAL_COMPLETION
Apr 17 21:31:48 gateway kernel: uhub_read_port_status: port 2, 
wPortStatus=0x0500, wPortChange=0x0000, err=USB_ERR_NORMAL_COMPLETION
Apr 17 21:31:48 gateway kernel: uhub_read_port_status: port 3, 
wPortStatus=0x0500, wPortChange=0x0000, err=USB_ERR_NORMAL_COMPLETION
Apr 17 21:31:48 gateway kernel: uhub_read_port_status: port 4, 
wPortStatus=0x0500, wPortChange=0x0000, err=USB_ERR_NORMAL_COMPLETION
Apr 17 21:31:48 gateway kernel: uhub_read_port_status: port 5, 
wPortStatus=0x0500, wPortChange=0x0000, err=USB_ERR_NORMAL_COMPLETION
Apr 17 21:31:48 gateway kernel: uhub_read_port_status: port 6, 
wPortStatus=0x0500, wPortChange=0x0000, err=USB_ERR_NORMAL_COMPLETION
Apr 17 21:31:48 gateway kernel: uhub_read_port_status: port 7, 
wPortStatus=0x0500, wPortChange=0x0000, err=USB_ERR_NORMAL_COMPLETION
Apr 17 21:31:48 gateway kernel: uhub_read_port_status: port 8, 
wPortStatus=0x0500, wPortChange=0x0000, err=USB_ERR_NORMAL_COMPLETION
Apr 17 21:31:49 gateway kernel: usb_needs_explore:
Apr 17 21:31:49 gateway kernel: usb_bus_powerd: bus=0xfffffe0031f7edb0
Apr 17 21:31:49 gateway kernel: usb_bus_powerd: Recomputing power masks
Apr 17 21:31:49 gateway kernel: uhub_explore: udev=0xfffff80006c29000 addr=1
Apr 17 21:31:49 gateway kernel: uhub_read_port_status: port 1, 
wPortStatus=0x0100, wPortChange=0x0000, err=USB_ERR_NORMAL_COMPLETION
Apr 17 21:31:49 gateway kernel: uhub_read_port_status: port 2, 
wPortStatus=0x0100, wPortChange=0x0003, err=USB_ERR_NORMAL_COMPLETION
Apr 17 21:31:49 gateway kernel: uhub_reattach_port: reattaching port 2
Apr 17 21:31:49 gateway kernel: ugen2.2: <PPC Offline UPS> at usbus2 
(disconnected)


Hi,

These two bits mean (Refer to 11.24.2.7.2 Port Status Change Bits in USB20 specification):

Connect Status Change: (C_PORT_CONNECTION) Indicates a change has occurred in 
the port’s Current Connect Status.

The hub device sets this field as described in Section 11.24.2.7.2.1.
0 = No change has occurred to Current Connect status.
1 = Current Connect status has changed.

Port Enable/Disable Change: (C_PORT_ENABLE) This field is set to one when a 
port is disabled because
of a Port_Error condition (see Section 11.8.1).


So the HUB (hardware device) reports that device is disconnected and the USB stack acts accordingly. Maybe there is a quirk you need for the hardware. Could check Linux sources for EHCI/XHCI/OHCI/UHCI.

--HPS
_______________________________________________
freebsd-usb@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to