Re: [PATCH] staging: MIPS: add Octeon USB HCD support

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

 



On 06/03/2013 09:52 AM, Greg Kroah-Hartman wrote:
On Mon, Jun 03, 2013 at 09:35:45AM -0700, David Daney wrote:
On 06/01/2013 11:42 AM, Aaro Koskinen wrote:
Add support for Octeon USB HCD. Tested on EdgeRouter Lite with USB
mass storage.

The driver has been extracted from GPL sources of EdgeRouter Lite firmware
(based on Linux 2.6.32.13). Some minor fixes and cleanups have been done
to make it work with 3.10-rc3.

$ uname -a
Linux (none) 3.10.0-rc3-edge-00005-g86cb5bc #41 SMP PREEMPT Sat Jun 1 20:41:46 EEST 2013 mips64 GNU/Linux
$ modprobe octeon-usb
[   37.971683] octeon_usb: module is from the staging directory, the quality is unknown, you have been warned.
[   37.983649] OcteonUSB: Detected 1 ports
[   37.999360] OcteonUSB OcteonUSB.0: Octeon Host Controller
[   38.004847] OcteonUSB OcteonUSB.0: new USB bus registered, assigned bus number 1
[   38.012332] OcteonUSB OcteonUSB.0: irq 122, io mem 0x00000000
[   38.019970] hub 1-0:1.0: USB hub found
[   38.023851] hub 1-0:1.0: 1 port detected
[   38.028101] OcteonUSB: Registered HCD for port 0 on irq 122
[   38.391443] usb 1-1: new high-speed USB device number 2 using OcteonUSB
[   38.586922] usb-storage 1-1:1.0: USB Mass Storage device detected
[   38.597375] scsi0 : usb-storage 1-1:1.0
[   39.604111] scsi 0:0:0:0: Direct-Access              USB DISK 2.0     PMAP PQ: 0 ANSI: 4
[   39.619113] sd 0:0:0:0: [sda] 7579008 512-byte logical blocks: (3.88 GB/3.61 GiB)
[   39.630696] sd 0:0:0:0: [sda] Write Protect is off
[   39.635945] sd 0:0:0:0: [sda] No Caching mode page present
[   39.641464] sd 0:0:0:0: [sda] Assuming drive cache: write through
[   39.651341] sd 0:0:0:0: [sda] No Caching mode page present
[   39.656917] sd 0:0:0:0: [sda] Assuming drive cache: write through
[   39.664296]  sda: sda1 sda2
[   39.675574] sd 0:0:0:0: [sda] No Caching mode page present
[   39.681093] sd 0:0:0:0: [sda] Assuming drive cache: write through
[   39.687223] sd 0:0:0:0: [sda] Attached SCSI removable disk

Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxx>
---
  drivers/staging/Kconfig                      |    2 +
  drivers/staging/Makefile                     |    1 +
  drivers/staging/octeon-usb/Kconfig           |   10 +
  drivers/staging/octeon-usb/Makefile          |    3 +
  drivers/staging/octeon-usb/TODO              |   11 +
  drivers/staging/octeon-usb/cvmx-usb.c        | 3344 ++++++++++++++++++++++++++
  drivers/staging/octeon-usb/cvmx-usb.h        | 1085 +++++++++
  drivers/staging/octeon-usb/cvmx-usbcx-defs.h | 3086 ++++++++++++++++++++++++
  drivers/staging/octeon-usb/cvmx-usbnx-defs.h | 1596 ++++++++++++
  drivers/staging/octeon-usb/octeon-hcd.c      |  854 +++++++
  10 files changed, 9992 insertions(+)
  create mode 100644 drivers/staging/octeon-usb/Kconfig
  create mode 100644 drivers/staging/octeon-usb/Makefile
  create mode 100644 drivers/staging/octeon-usb/TODO
  create mode 100644 drivers/staging/octeon-usb/cvmx-usb.c
  create mode 100644 drivers/staging/octeon-usb/cvmx-usb.h
  create mode 100644 drivers/staging/octeon-usb/cvmx-usbcx-defs.h
  create mode 100644 drivers/staging/octeon-usb/cvmx-usbnx-defs.h
  create mode 100644 drivers/staging/octeon-usb/octeon-hcd.c



FYI: This is an alternate, host only, driver for the DesignWare USB2
controller as found on some OCTEON SoCs.  drivers/staging/dwc2
contains the code supplied by Synopsys for the same controller.

One might ask why an alternate driver was ever written.  The answer
to this question is:  The octeon-hcd driver is much better than the
dwc2 driver when running the hardware in host mode.

So, should we not accept this driver because dwc2 is in the tree now and
we will have two conflicting drivers for the same hardware?  Or accept
this, and blacklist dwc2 for this hardware?


I don't know the answer to these questions.  I will say this though:

o In USB2 mode, the octeon-hcd driver generates far fewer interrupts than dwc2.

o octeon-hcd was written because we couldn't figure out how to fix the dwc2 driver so that it wouldn't crash.

o I think Raspberry Pi uses the DWC2 block, and there are said to be many complaints about the dwc2 driver crashing there.

I would defer to the judgment of the USB maintainers and other users of the DWC2 block. If you think the code is useful, take it. If it is merged, we will probably supply some bug fixes and cleanups we have accumulated.

David Daney




[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux