From owner-freebsd-usb@freebsd.org Tue Aug 6 17:36:52 2019 Return-Path: Delivered-To: freebsd-usb@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1AA73C67F2 for ; Tue, 6 Aug 2019 17:36:52 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [IPv6:2a01:4f8:c17:6c4b::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4631z713kYz4GTl for ; Tue, 6 Aug 2019 17:36:50 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2016.home.selasky.org (unknown [62.141.129.235]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 613D0260167; Tue, 6 Aug 2019 19:36:41 +0200 (CEST) Subject: Re: Problem attaching USB Garmin device To: Mariappan N , "freebsd-usb@freebsd.org" References: <4aaaaadf-cf6b-8dc6-62a8-d4a577d19691@selasky.org> <2f317631-7e92-6fcc-7061-ae098ce99a68@selasky.org> <59b187eb-6b64-f051-a2a5-2807668e6890@selasky.org> From: Hans Petter Selasky Message-ID: <65a1fe1b-cf8d-c981-f915-a3252c50c2b5@selasky.org> Date: Tue, 6 Aug 2019 19:36:01 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------2DB94CC7049BE69A56D81F24" Content-Language: en-US X-Rspamd-Queue-Id: 4631z713kYz4GTl X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of hps@selasky.org designates 2a01:4f8:c17:6c4b::2 as permitted sender) smtp.mailfrom=hps@selasky.org X-Spamd-Result: default: False [-5.86 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+a:mail.turbocat.net]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; HAS_ATTACHMENT(0.00)[]; MIME_GOOD(-0.10)[multipart/mixed,text/plain]; DMARC_NA(0.00)[selasky.org]; TO_MATCH_ENVRCPT_SOME(0.00)[]; NEURAL_HAM_SHORT(-0.99)[-0.990,0]; RCPT_COUNT_TWO(0.00)[2]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; IP_SCORE(-2.57)[ip: (-9.09), ipnet: 2a01:4f8::/29(-1.93), asn: 24940(-1.81), country: DE(-0.01)]; FREEMAIL_TO(0.00)[outlook.com]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; ASN(0.00)[asn:24940, ipnet:2a01:4f8::/29, country:DE]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Aug 2019 17:36:52 -0000 This is a multi-part message in MIME format. --------------2DB94CC7049BE69A56D81F24 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Hi, Can you try the attached patch. I need both output from DMESG and Ellisys. --HPS --------------2DB94CC7049BE69A56D81F24 Content-Type: text/x-patch; name="xhci3.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="xhci3.diff" diff --git a/sys/dev/usb/controller/xhci.c b/sys/dev/usb/controller/xhci.c index 0a1e5c95c41..c551cbdc285 100644 --- a/sys/dev/usb/controller/xhci.c +++ b/sys/dev/usb/controller/xhci.c @@ -1459,7 +1459,19 @@ xhci_set_address(struct usb_device *udev, struct mtx *mtx, uint16_t address) if (err != 0) { temp = le32toh(sc->sc_cmd_result[0]); - if (address == 0 && sc->sc_port_route != NULL && + if (address != 0) { + printf("TRYING AGAIN SET ADDRESS FOR XHCI\n"); + err = xhci_cmd_set_address(sc, buf_inp.physaddr, + 1, index); + if (err == 0) { + /* wait 20ms */ + usb_pause_mtx(&sc->sc_bus.bus_mtx, hz / 50); + err = xhci_cmd_set_address(sc, buf_inp.physaddr, + 0, index); + if (err == 0) + goto success; + } + } else if (address == 0 && sc->sc_port_route != NULL && XHCI_TRB_2_ERROR_GET(temp) == XHCI_TRB_ERROR_PARAMETER) { /* LynxPoint XHCI - ports are not switchable */ @@ -1471,7 +1483,7 @@ xhci_set_address(struct usb_device *udev, struct mtx *mtx, uint16_t address) if (address != 0) break; } - +success: /* update device address to new value */ usbd_get_page(&hdev->device_pc, 0, &buf_dev); --------------2DB94CC7049BE69A56D81F24--