Re: USB OTG driver submission question

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

 



On Wednesday 29 April 2009, Wu, Hao wrote:
> Dear all:
> We are developing the driver for Intel Moorestown Platform
> USB OTG controller.  Intel Moorestown USB OTG controller has
> USB EHCI or USB device operation using the same hardware. We
> modified kernel EHCI driver to support its host function,
> wrote one new driver (client controller driver) for its device
> function and one new driver (transceiver driver) to implement
> OTG SRP and HNP functions.

Ideally you'd be able to submit host-only and peripheral-only
support patches, with the remaining OTG bits later.

The HCD and peripheral controller drivers are both fairly
substantial chunks, though I suspect you didn't need to
change much in EHCI (other than for OTG).  There should be
host-only and peripheral-only configuration options.


> User can switch its role between 
> host and peripheral via sysfs interface. The default role is
> decided on plug type. But because we can't find a full OTG
> compliance product in the market, the HNP function testing
> is executed between the Moorestown USB OTG controllers themselves.          

USB-IF seems to have had the highspeed OTG Protocol Test
(OPT) modules on backorder forever.  :(

Other options include:  (a) Fullspeed OPT, if you still
have one.  (Disk died in mine, I've got to reinstall...)
(b) Other fullspeed OTG devices, like Atmel's AT90USBKEY
which is a fullspeed $30 (at Digi-Key) OTG device, which
comes with default firmware which ISTR will do HNP.

Not yet (c) OMAP3 Beagleboard, ~$150, since its OTG patches
aren't fully cooked yet.  (HNP support is in the -next tree,
but doesn't yet pass OPT conformance.)

Incestuous testing -- Moorestown to itself -- is OK but
not as convincing as one might prefer.


> The drivers are still in development as well as Moorestown
> platform. We have cleaned the coding style using checkpatch.pl
> and finished testing though not all bugs are solved.

Are they *ever* all solved?  Sigh.  ;)


> Before we submit this driver, we would like to know whether
> there are any other criteria as required to meet.

Well, the code should get reviewed first; you'll likely
get a few more comments than just checkpatch.pl, and
with any luck you'll get good technical review.

Reviews of big patches -- like, I'll assume, the peripheral
controller driver -- take time.  So it's worth submitting
them sooner.

You should be able to run the "usbtest" cases from this;
best if the "test.sh" script can run at least over the
full weekend, if not the full week:

  http://www.linux-usb.org/usbtest/

That means a Linux PC ("known good") talking to your
Moorestown peripheral ("device under test").  Those
tests will uncover different stuff than USBCV, which
you should also pass.

That also means some Linux Peripheral ("known good")
talking to your Moorestown in host mode (with EHCI).
The webpage above gives a few suggestions to help
that not be an incestuous Moorestown-only test.


> And do we need to submit the modification to EHCI
> driver, client controller driver and transceiver
> driver at the same time?

Don't need to.  That's a lot of complex low-level
code though (as I expect you know!), so smaller
chunks may be easier for reviewers to digest.

Also, ensuring that the system builds and works
in all three modes -- host only, peripheral only,
or OTG -- will likely be easier if you can submit
patches that are not interdependent.

- Dave

p.s. I'm still waiting on an updated patch for
     the Poulsbo USB peripheral controller driver.
     That had some really goofy control-OUT code,
     pretty much guaranteed to break.

> 
> Thanks
> Hao
> 


--
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