dwc_otg: Problem with directly connected full/low speed devices

Hans Petter Selasky hps at selasky.org
Tue Jan 5 08:25:27 UTC 2016


On 01/05/16 08:00, Sebastian Huber wrote:
> Hello,
>
> I use an Altera Cyclone V development kit which the dwc_otg driver from
> FreeBSD. The device enumeration of full/low speed devices directly
> connected to the root hub fails since split transactions are used. If I
> connect them via a hub it works fine. I used the following hack to get
> them working with a direct connection:
>
> diff --git a/sys/dev/usb/controller/dwc_otg.c
> b/sys/dev/usb/controller/dwc_otg.c
> index 2110b94..37cca8e 100644
> --- a/sys/dev/usb/controller/dwc_otg.c
> +++ b/sys/dev/usb/controller/dwc_otg.c
> @@ -3340,7 +3340,7 @@ dwc_otg_setup_standard_chain(struct usb_xfer *xfer)
>                  case USB_SPEED_FULL:
>                  case USB_SPEED_LOW:
>                          /* check if root HUB port is running High Speed */
> -                       if (xfer->xroot->udev->parent_hs_hub != NULL) {
> +                       if (xfer->xroot->udev->parent_hs_hub != NULL &&
> 0) {
>                                  hcsplt = HCSPLT_SPLTENA |
> (xfer->xroot->udev->hs_port_no <<
>                                      HCSPLT_PRTADDR_SHIFT) |
>
> I am not sure how to fix this properly. Is this a specific problem with
> the Altera Cyclone V board or is this problem also present on other
> boards e.g. RPI2?
>

Hi,

Does the attached patch solve your problem?

--HPS
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dwc_otg.c.diff
Type: text/x-patch
Size: 1937 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-usb/attachments/20160105/c2d8addb/attachment.bin>


More information about the freebsd-usb mailing list