From nobody Tue Apr 19 03:51:10 2022 X-Original-To: freebsd-usb@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 743F711D7774 for ; Tue, 19 Apr 2022 03:51:13 +0000 (UTC) (envelope-from farhan@farhan.codes) Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4Kj8ww5Wv6z4trh for ; Tue, 19 Apr 2022 03:51:12 +0000 (UTC) (envelope-from farhan@farhan.codes) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 43CB15C01D4; Mon, 18 Apr 2022 23:51:12 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Mon, 18 Apr 2022 23:51:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=farhan.codes; h= cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1650340272; x= 1650426672; bh=RRa/nt5RiDJcgOVr9+DWRhchpkorNO2frTiX9aB8rew=; b=E 5VzehRzm1tMoAnTUlNBy46gGTvlEJ6IEREGUG934nG7AIOg4BWrsN5aUZ9Za6d6G pm8GgAv0xg0Z/x+jop6odMBxpIBZty2dJTXYskX77N7TkpNvFmcYauHSqVED5Pwd X9rpBq7w3MovY9YtX5nep/4vNzDTjNIuJgANZodSHsvXWz9X/xMfrPi7jBkfKDhM RKVZLlkNU/T/jV0r2Csq60Jmk6JEWmghBGI91Wxp2TmEHspENKd+6RY1BHdX5Xk8 SGpqmlT3EZWPMouYVLssyekbG7q1tVR4D6yqBbO7XkeDkg4NYECsmbW6wKe+zl2m 7XW+vgnga7jerdWMpoEBg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:date:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1650340272; x=1650426672; bh=RRa/nt5RiDJcgOVr9+DWRhchpkor NO2frTiX9aB8rew=; b=iv48FsUfh7q3ZpxMGcNFQSpxwLKgPC0py76uzglhQrqH 5BvTj7HlRRcL3GbpFIZLGYfD9Q0+61Pu+NUDD558fp71aEA9AHua58+/Op/gyELt Tv6FaFw1ve7iS5xmwvO0kNzLbbFKoJdmn1EI/sy7hEA4JnTXZxrEAVTufI+ls9kZ nzY7274tYbatzTPjKChmgtwNBAKZ0f2m+R46NTrq225tXd4r1vYiJdIxqGtp2prl l81EtYA5SKJYGq1oUui2BB7EOveopjSkH/ao//LkERHq6C3P1E1Pf4u5xQLyBUej 0fc+HrGcFw8Songcy8qtXRi3LcjbwrnsVjJm6kkqSw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvvddrvddtvddgjeejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefkffggfgfuvfhfhfgjtgfgsehtke ertddtfeejnecuhfhrohhmpefhrghrhhgrnhcumfhhrghnuceofhgrrhhhrghnsehfrghr hhgrnhdrtghouggvsheqnecuggftrfgrthhtvghrnhepudevieethffhjeelffejjedvfe eileelueehueevffeiiefhveeihefffeekhefgnecuvehluhhsthgvrhfuihiivgeptden ucfrrghrrghmpehmrghilhhfrhhomhepfhgrrhhhrghnsehfrghrhhgrnhdrtghouggvsh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 18 Apr 2022 23:51:11 -0400 (EDT) Message-ID: <9315bf6d-b9a9-89a2-9a32-aca9fd9cc015@farhan.codes> Date: Mon, 18 Apr 2022 23:51:10 -0400 List-Id: FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-usb List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-usb@freebsd.org X-BeenThere: freebsd-usb@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: Trouble loading firmware to USB device Content-Language: en-US To: Hans Petter Selasky , freebsd-usb@freebsd.org References: From: Farhan Khan In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4Kj8ww5Wv6z4trh X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=farhan.codes header.s=fm2 header.b="E 5VzehR"; dkim=pass header.d=messagingengine.com header.s=fm1 header.b=iv48FsUf; dmarc=none; spf=pass (mx1.freebsd.org: domain of farhan@farhan.codes designates 66.111.4.27 as permitted sender) smtp.mailfrom=farhan@farhan.codes X-Spamd-Result: default: False [-4.60 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[farhan.codes:s=fm2,messagingengine.com:s=fm1]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:66.111.4.27]; NEURAL_HAM_LONG(-1.00)[-1.000]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[farhan.codes]; DWL_DNSWL_LOW(-1.00)[messagingengine.com:dkim]; RCVD_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[farhan.codes:+,messagingengine.com:+]; RCPT_COUNT_TWO(0.00)[2]; NEURAL_HAM_SHORT(-1.00)[-1.000]; MLMMJ_DEST(0.00)[freebsd-usb]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:19151, ipnet:66.111.4.0/24, country:US]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_IN_DNSWL_LOW(-0.10)[66.111.4.27:from] X-ThisMailContainsUnwantedMimeParts: N On 4/18/22 14:57, Hans Petter Selasky wrote: > Hi, > > error = tsleep(&usc->wait_msg_id, 0, "athnfw", 5); > > This means wait 5 ticks which is typically 5ms before timing out, > which is probably too short! > > This code is wrong for FreeBSD. > > The lock should cover the whole section and you should use msleep > instead. > >     ATHN_LOCK(sc); >     error = usbd_do_request(usc->sc_udev, &sc->sc_mtx, &req, NULL); >     if (error == 0 && usc->wait_msg_id != 0) { >         printf("Error is %d\n", error); >         error = msleep(&usc->wait_msg_id, 0, "athnfw", hz); /* wait 1 > second at most */ >         if (error) { >             ATHN_UNLOCK(sc); >             printf("Exiting condition %d\n", error); >             return error; >         } >     } >     ATHN_UNLOCK(sc); > > --HPS Thank you! I made the changes, but the problem remains, namely the athn_usb_intr INTR RX callback is never called. -----     ATHN_LOCK(sc);     error = usbd_do_request(usc->sc_udev, &sc->sc_mtx, &req, NULL);     if (error == 0 && usc->wait_msg_id != 0) {         printf("Error is %d\n", error);         error = msleep(&usc->wait_msg_id, &sc->sc_mtx, 0, "athnfw", hz); /* Wait 1 second at most */         if (error) {             ATHN_UNLOCK(sc);             printf("Exiting condition %d\n", error);             return error;         }     }     ATHN_UNLOCK(sc); ----- Is this something I need to call manually? We spoke earlier about how the RX INTR callbacks are not automatically done and must be done by the driver. The only time the athn_usb_intr RX Intr is called is when I manually do so at initialization. - Farhan