From owner-svn-src-head@FreeBSD.ORG Wed Jun 4 10:29:02 2014 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 06D568A9; Wed, 4 Jun 2014 10:29:02 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E7DE92F8F; Wed, 4 Jun 2014 10:29:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s54AT1Zh017603; Wed, 4 Jun 2014 10:29:01 GMT (envelope-from hselasky@svn.freebsd.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s54AT1DV017602; Wed, 4 Jun 2014 10:29:01 GMT (envelope-from hselasky@svn.freebsd.org) Message-Id: <201406041029.s54AT1DV017602@svn.freebsd.org> From: Hans Petter Selasky Date: Wed, 4 Jun 2014 10:29:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r267044 - head/sys/dev/usb/controller X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Jun 2014 10:29:02 -0000 Author: hselasky Date: Wed Jun 4 10:29:01 2014 New Revision: 267044 URL: http://svnweb.freebsd.org/changeset/base/267044 Log: The external USB HUB in the RPI-B rejects control endpoint traffic using the BULK endpoint type, while other USB HUBs do not. Disable endpoint type workaround for TT traffic. MFC after: 3 days Modified: head/sys/dev/usb/controller/dwc_otg.c Modified: head/sys/dev/usb/controller/dwc_otg.c ============================================================================== --- head/sys/dev/usb/controller/dwc_otg.c Wed Jun 4 09:54:01 2014 (r267043) +++ head/sys/dev/usb/controller/dwc_otg.c Wed Jun 4 10:29:01 2014 (r267044) @@ -3161,11 +3161,20 @@ dwc_otg_setup_standard_chain(struct usb_ (xfer->max_packet_size << HCCHAR_MPS_SHIFT) | HCCHAR_CHENA; - /* XXX stability hack - possible HW issue */ - if (td->ep_type == UE_CONTROL) + /* + * XXX stability hack - possible HW issue + * + * Disable workaround when using a transaction + * translator, hence some TTs reject control endpoint + * traffic using BULK endpoint type: + */ + if (td->ep_type == UE_CONTROL && + (xfer->xroot->udev->speed == USB_SPEED_HIGH || + xfer->xroot->udev->parent_hs_hub == NULL)) { hcchar |= (UE_BULK << HCCHAR_EPTYPE_SHIFT); - else + } else { hcchar |= (td->ep_type << HCCHAR_EPTYPE_SHIFT); + } if (usbd_get_speed(xfer->xroot->udev) == USB_SPEED_LOW) hcchar |= HCCHAR_LSPDDEV;