Re: USB 3.0 in Linux main stream kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am Wednesday 28 January 2009 22:43:21 schrieb David Brownell:
> On Wednesday 28 January 2009, Alan Stern wrote:
> > I've been too busy to take part in this discussion (upgrading to Fedora
> > 10 was a disaster because the X server doesn't work on my machine) --
> > there hasn't even been time enough in the last few months to read
> > through much of the USB 3.0 spec.  So I have only a few comments to
> > add...
> 
> Which is why I encouraged a high-level description of the issues
> first.  I don't think many folk have had a chance to read it.

Hi Sarah,

OK, having read it seems to me that some changes to common APIs are needed.
I'll just list the issues in the order I've noticed them, not ranked by impact.
That is apart from the burst support.

1. warm and hot resets
We now have two kinds of resets and need to add a "warmth" parameter
to usb_reset_device()

2. remote wakeup operates on the function level
We need to have true functions that request/release remote wakeup with
counters per function that request/release remote wakeup immediately.

3. Section 9.2.5.2
I read this as saying that the device is allowed to forget almost all
internal state when going into U3 (==suspend). Sarah?

4. U1/U2 handling
We have 3 depths of sleep compared to the binary suspend/active distinction.
U1/2 affects only the link, not the device. They can be initiated both by
the device and the host(hub)

If we want to use this we need some support:
- We need to make sure the additional latency does not conflict with
periodic transfers
- We need timeout values for all interfaces. From this we should
compute the longest timeout, or if a driver forbids U1/U2 disable them
- IMHO the default value should be $FF that is we allow devices to
initiate U1/2 but don't propose to enter it ourselves, unless periodic
transfers require U1/2 be disabled
- This might be hooked into latency/power user space interfaces

5. Functions Section 9.6.4
USB 3.0 introduces functions as an additional level between device
and interfaces. In fact section 9.6.4 can be read as recommending
function level drivers in addition to interface level drivers. Sarah,
how do you read this?

As some functionality in powermanagement resides in functions,
we need to have a kernel representation of them. Particularily
we need to register which interfaces belong to a function and
autosuspend must be trained to go at functions.
That means interface association descriptors must be evaluated.

	Regards
		Oliver
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux