Project

General

Profile

Actions

Bug #14945

open

xhci needs hubd to hang up first

Added by Joshua M. Clulow 3 months ago.

Status:
New
Priority:
Normal
Category:
driver - device drivers
Start date:
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
External Bug:

Description

Today, most explicit cfgadm activities (e.g., -c disconnect and -c configure) on USB devices attached to host controllers using xhci will fail. The device reset is initialised correctly; we ask the hub to which the device is attached to reset the port. Unfortunately this is not quite enough; we also need xhci to tell the host controller that such a reset has occurred. Without explicit notification, control transfers to the device begin to fail with various errors; e.g., USB Transaction Error or Stall Error.

To fix this, we need to add a new HCDI hook that the hub driver will use after it has successfully reset a hub port and wants to re-engage the device on the other site of the port. The xhci driver will use this hook as a signal to use Disable Slot and Enable Slot commands to re-establish communication with the device, as if it had been removed and reinserted.

A prototype of this approach results in the success of cfgadm -c disconnect and cfgadm -c configure every time so far.

No data to display

Actions

Also available in: Atom PDF