From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CC071C79FB6 for ; Wed, 9 Sep 2026 12:46:24 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 3078B607D1; Wed, 9 Sep 2026 12:46:24 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id ncOoPzVjKLQP; Wed, 9 Sep 2026 12:46:23 +0000 (UTC) ARC-Filter: OpenARC Filter v1.3.0 smtp3.osuosl.org B6BC9607BA Authentication-Results: smtp3.osuosl.org; arc=pass header.oldest-pass=0 smtp.remote-ip=140.211.166.142 ARC-Seal: i=2; d=osuosl.org; s=arc; a=rsa-sha256; cv=pass; t=1788957983; b=FdJlx7K43GFS0kO/EQM3VZ4iDqPvMwYtqLNflXV6ni5cBI5Mk0KWZ0mF94nc6ZNcjK/N PI3cjpL8SLsyCgutHSPenWFUbsh27SLmCOJaqNkITQOTu5Rg/X2mhlleAVw7Z2dQzRL+V YH9bsNrfSdqbOqVaD9p5mHc5t9YF56Xwe9tyVPqcNbMe3qzn8oxhrqUMd6TNCKUdCX+VJ cFIQNR/chE+p389FRPgGTPM8oVoNIe2aDYsjWNtzpBQQ232Io2stGg1ImNeAUO2na3qIO 1uTOzNkAeNeW9qyAiG+lyAIBni3Q7L/EmErdmCZxX7FeSjEQJUPQSyGnACnd/98sZQg== ARC-Message-Signature: i=2; d=osuosl.org; s=arc; a=rsa-sha256; c=relaxed/relaxed; t=1788957983; h=X-Comment:DKIM-Signature:X-Original-To:Delivered-To:Received: Received:X-Virus-Scanned:X-Spam-Flag:X-Spam-Score:X-Spam-Level: X-Spam-Status:Received:ARC-Filter:Received-SPF:Received:Received: DKIM-Signature:X-Google-DKIM-Signature:X-Gm-Message-State:X-Gm-Gg: X-Received:Received:From:To:Cc:Subject:Date:Message-ID:X-Mailer: In-Reply-To:References:MIME-Version:Content-Transfer-Encoding: X-Mailman-Approved-At:X-BeenThere:X-Mailman-Version:Precedence: List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help: List-Subscribe:Errors-To; bh=xaBqxyC+Jjh9e0kBNOWUOuyumSWEXIk9qbZ6rpBSa7E=; b=eeJeH8uwzlpQlpLUWs7rBY4U28Q4lap8XPebXWtNUO23x3sYotT/vREmwDKf9qnoiPlw 6sliYEIGVA8cvI+08wqeUrpIN0X7fY1bwPYjz2cffAgeUYEDwhk0D4qoeygcZdNjNS/83 ReyqKobLr5NIXPzGCHzMOb8B4V5gQfaD92REdZzSCwxFGgssWHOttHPAdrQh9nrWbcDQ8 fbXGHDKjrV+d7h8M/Fr9NStZ7F2dq61d55lwMCDeHle0kMSuwq+Lc/QLjMhvd+tjvH49f OAZB+R0ZoSYlCzFTfpyiuRtTqDO2hed5diYXOGe+AeREjAVK5uwTlTFEtTpKWTOObKA== ARC-Authentication-Results: i=2; smtp3.osuosl.org; dmarc=pass header.from=linaro.org; dkim=pass header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=pfl7qBTn; arc=pass header.oldest-pass=0 smtp.remote-ip=140.211.166.142 X-Comment: SPF check N/A for local connections - client-ip=140.211.166.142; helo=lists1.osuosl.org; envelope-from=u-boot-bounces@lists.u-boot-project.org; receiver= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lists.u-boot-project.org; s=default; t=1788957983; bh=xaBqxyC+Jjh9e0kBNOWUOuyumSWEXIk9qbZ6rpBSa7E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=sqcmEHR8wFmC7Omy1cu4rcKaFRaUPBcdRWwozz5peSAhR59qT6M77dW6rsnHDiTLi n+M62YICi3qeohLCe9ZCEyGBu2jIZNG4JCRSitQlpTYAlceswPRbbPrsDFtFXRwI0u 66qIj4KzzWyxXLJjZlcDPg6H1YvfXqchXOJzzuOFwwWQpAz/plYJ4ri+7uhylL251F OW+qA73tdgG7IH57gxARZYIpjMKufiPoKwatH7dgwwRzOV/Z9edXs6T9bHO7WDnGFL cz9rqCXnembTgFaY8SQdWtnn23xANOU/qS5jpzydrwrt/Ig4jyJVgowGcmPLO6fA28 OjN051CtT7INw== Received: from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142]) by smtp3.osuosl.org (Postfix) with ESMTP id B6BC9607BA; Wed, 9 Sep 2026 12:46:22 +0000 (UTC) Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136]) by lists1.osuosl.org (Postfix) with ESMTP id 4ADBF2D2 for ; Wed, 9 Sep 2026 08:52:29 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 30D62606CE for ; Wed, 9 Sep 2026 08:52:29 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id xCfbxTLlozJe for ; Wed, 9 Sep 2026 08:52:28 +0000 (UTC) ARC-Filter: OpenARC Filter v1.3.0 smtp3.osuosl.org DC26D60639 Authentication-Results: smtp3.osuosl.org; arc=none smtp.remote-ip="2a00:1450:4864:34::10" ARC-Seal: i=1; d=osuosl.org; s=arc; a=rsa-sha256; cv=none; t=1788943948; b=tLBxTgEPm3KB9h6bCJQe9KnLb8x+0vv+eLBZjVTTy5eF1ryORUoknm58rgOWU2QnIaT2 l1AkHcoGC0zBmn3XAVDjg9pp+dYzHFMa0bTbZS4R3fQw1Y8DZ4oS0jXPE1dzd8qGlTLJW OOz16JLLaHllVdUuE8muTlkgKyaMxB+x2Cj17DPla5v1Ktjz8abXROBnO5m3xW9gTe6Io a0YXlpCzh018Bs0OA9sgKlZKezBexdqK4ywOJH6H+HGrzQwNcZ2sXEPoHXLSGHPDbowsg bk/QdwuxPm1Gl3WLjrQnwgzBu6/QvYzI+aeT0af73rSyvIxoBXzCaFgsqLeG2cHQo/Q== ARC-Message-Signature: i=1; d=osuosl.org; s=arc; a=rsa-sha256; c=relaxed/relaxed; t=1788943948; h=Received-SPF:Received:DKIM-Signature:X-Google-DKIM-Signature: X-Gm-Message-State:X-Gm-Gg:X-Received:Received:From:To:Cc:Subject: Date:Message-ID:X-Mailer:In-Reply-To:References:MIME-Version: Content-Transfer-Encoding; bh=xaBqxyC+Jjh9e0kBNOWUOuyumSWEXIk9qbZ6rpBSa7E=; b=lHADNMdF55aeF2pIdYj52YV5Ng1TJfRyy8AsCpB5PT9qzeQsp+YTjoWE2SLIg6WDsDBY /pE/9R63Wyh9V/dz7gMp/gBLhxCIELQWHM1Htap87sW528I+7TKmGI6bbBdLGD/0LO8LK J3NaVISOU8sZ2qa1UAZyxn+m6993U9EPa3iWhOs80m/QcxRGm8hoQYYbx9KVvXWC2GwMr jzE0FtgsGE5Ia2YMUdgnMVkmZVy0Ic/iEqwDr5cps4ToKXan+McCNzE/CdNcDZjAX8B+y iQgBX0rNu9SKGoD7Pq8k3Ce6yXKm7h+lWntrtpSxR4LlePUFwkj289cU70E5sg8dOOw== ARC-Authentication-Results: i=1; smtp3.osuosl.org; dmarc=pass header.from=linaro.org; dkim=pass header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=pfl7qBTn; arc=none smtp.remote-ip="2a00:1450:4864:34::10" Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2a00:1450:4864:34::10; helo=mail-ej2-x10.google.com; envelope-from=anders.roxell@linaro.org; receiver= Authentication-Results: smtp3.osuosl.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp3.osuosl.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=pfl7qBTn Received: from mail-ej2-x10.google.com (mail-ej2-x10.google.com [IPv6:2a00:1450:4864:34::10]) by smtp3.osuosl.org (Postfix) with ESMTPS id DC26D60639 for ; Wed, 9 Sep 2026 08:52:27 +0000 (UTC) Received: by mail-ej2-x10.google.com with SMTP id a640c23a62f3a-c29385fb97cso4190266b.3 for ; Wed, 09 Sep 2026 01:52:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1788943946; x=1789548746; darn=lists.u-boot-project.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=xaBqxyC+Jjh9e0kBNOWUOuyumSWEXIk9qbZ6rpBSa7E=; b=pfl7qBTnKsZK6oMB9b3m39z6Spcuh111NS4zI/wQ517T2SBojX1ULpWHX5EKrHkwsY Bd6U358viI7q/4BS4panSaQpqAUpqu+6V3+2jKxZdLz8YwzY2VT8vSR8dSgzfl/6vJ7y z8j1PWLzbdMzROSIEoDvz1FC7sMdTu9tVPDVjSMnbHuMUezhCGI3FmzOIYCOasHf/GoR Hwzf2I7Cbd6xTDi6ncGAVvawNQtN6pLP7akJGIo9bv5eUhtHkgbDb8U6qlKQTXHPQJzH ez2A2Ol99+M0fJ+Pjg7xQ0txPa3mKSjMkHSDY6OJ01/37nqDvubMtEbjahWjuY/9h+x4 v6fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788943946; x=1789548746; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=xaBqxyC+Jjh9e0kBNOWUOuyumSWEXIk9qbZ6rpBSa7E=; b=end2CFqnmPSQTA64MkGxxcU22xoe8ADQYfYDUgLHiRNOCCDRrCeWVj04OdCtWisTXs sf1OH2Rep1alhcGM4Z0/8F4XTAISVQnRdousGda0X1PmiFk8Nkw84IiHwJXp4KT6Jqop k4tqDm9ZZwChl1hpN69A6Cdbtyz+AcM2mLAQSRKhOdxZy5O4/n6ncOQor0xOmFZrpdQp 50Su+oWDAiE5Oss5lGmUmsnPDt2saRTREvaUSmk5rRsfrkyL4mndxobRreZk0GLagOvR VMuUlaRQwg6kjkhX2RIiUZleI+e7LrwtTNu0ORKRyD3mT8VnQy5mgOCwsMnneupxaXAj NC2Q== X-Gm-Message-State: AFuF++ktoiO2Cgp9pd418SHaoOFfR+tySM6xvLfu/xSO3hASo/SAl3pw X8d09FSWk4QIdaSlOasy2Gm55ktkU2RISx6lZi+v6SUp2Ovkd7E4N3iOxwxsI/k7wvOYuCiXL10 enL9h X-Gm-Gg: AYBFou18JVTN2DKHSZymzwdMH0d3Q3L058XsQSCE1CKbEk2wQdayxYYXZO/+Pd3GKqM 65N20mvhv0G+jckCp4gBKFtgJryK0JOmiKxp/ssifJXHc1+Rd7lvQulrTrBjPa+l5RGPnE1f274 VCOkVvJyoDiSdj66U5WlVTZ9cXz8rUdEnPvAqu1Aiy18QOwU4CWbOa31in7tmK2IOZHbR7lHEzh Xe05DwELGbKrvTW0utdwTJUy8Io9Zdbtyrwwu9S5ULObcmd25y9tTdRfy8WgjXoG20uxL0Ibg6w +GnN83J82V8A29GqN/Ywtu99Gn8gM1DqgDHFKMNA6cGF8Y2N1rX8jxRY1294/M++R9c0JpI0d8G +iPqsvZlSeHuiefdrlevrk8BlMR4ct2l9zTLFguNQ6a7mDa5ba+kGTfwuquH3NOu0HCykOHZd8L aPU/tZZ1lvm/0cO9JtgYvYGEK2JqvenZaAAm6mzKBMicZRE1BWi0oRQa2UnSfbUo8fNARROOprH Nt2vPklNPxza/Op7HQr+w0AuvtRhGSt X-Received: by 2002:a17:907:d2a:b0:c26:2204:da6c with SMTP id a640c23a62f3a-c26250342e2mr1093737466b.2.1788943945540; Wed, 09 Sep 2026 01:52:25 -0700 (PDT) Received: from monster (c-85-229-7-191.bbcust.telenor.se. [85.229.7.191]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c260d5b371esm730398266b.54.2026.09.09.01.52.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Sep 2026 01:52:25 -0700 (PDT) From: Anders Roxell To: u-boot@lists.u-boot-project.org Cc: marek.vasut@mailbox.org, trini@konsulko.com, ilias.apalodimas@linaro.org, michal.simek@amd.com, lukma@denx.de, alchark@flipper.net, jerome.forissier@arm.com, dlechner@baylibre.com, anshuld@ti.com, sjg@chromium.org, Thinh.Nguyen@synopsys.com, Anders Roxell , Jerome Forissier , Jens Wiklander Subject: [PATCH v8 15/25] usb: gadget: fix up the function drivers after the resync Date: Wed, 9 Sep 2026 10:50:05 +0200 Message-ID: <20260909085015.2480097-16-anders.roxell@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260909085015.2480097-1-anders.roxell@linaro.org> References: <20260909085015.2480097-1-anders.roxell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Mailman-Approved-At: Wed, 09 Sep 2026 12:45:47 +0000 X-BeenThere: u-boot@lists.u-boot-project.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.u-boot-project.org Adapt the gadget function drivers (acm, fastboot, mass_storage, rockusb, sdp, thor, ether and composite) to the new gadget API. Co-developed-by: Jerome Forissier Signed-off-by: Jerome Forissier Co-developed-by: Jens Wiklander Signed-off-by: Jens Wiklander Signed-off-by: Anders Roxell --- drivers/usb/gadget/composite.c | 2 +- drivers/usb/gadget/ether.c | 21 ++++++++++++++------- drivers/usb/gadget/f_acm.c | 20 +++++++++++--------- drivers/usb/gadget/f_fastboot.c | 10 +++++----- drivers/usb/gadget/f_mass_storage.c | 5 ++++- drivers/usb/gadget/f_rockusb.c | 11 ++++++----- drivers/usb/gadget/f_sdp.c | 12 ++++++++---- drivers/usb/gadget/f_thor.c | 19 +++++++++---------- 8 files changed, 58 insertions(+), 42 deletions(-) diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c index 04b85419931e..060788419553 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c @@ -833,7 +833,7 @@ static int bos_desc(struct usb_composite_dev *cdev) /* Get Controller configuration */ if (cdev->gadget->ops->get_config_params) { - cdev->gadget->ops->get_config_params( + cdev->gadget->ops->get_config_params(cdev->gadget, &dcd_config_params); } else { dcd_config_params.bU1devExitLat = diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c index 7973927e8a7f..13a20441419d 100644 --- a/drivers/usb/gadget/ether.c +++ b/drivers/usb/gadget/ether.c @@ -925,8 +925,9 @@ set_ether_config(struct eth_dev *dev, gfp_t gfp_flags) dev->status = ep_desc(gadget, &hs_status_desc, &fs_status_desc); dev->status_ep->driver_data = dev; + dev->status_ep->desc = dev->status; - result = usb_ep_enable(dev->status_ep, dev->status); + result = usb_ep_enable(dev->status_ep); if (result != 0) { debug("enable %s --> %d\n", dev->status_ep->name, result); @@ -951,14 +952,16 @@ set_ether_config(struct eth_dev *dev, gfp_t gfp_flags) * from REMOTE_NDIS_HALT_MSG, reset from REMOTE_NDIS_RESET_MSG. */ if (!cdc_active(dev)) { - result = usb_ep_enable(dev->in_ep, dev->in); + dev->in_ep->desc = dev->in; + result = usb_ep_enable(dev->in_ep); if (result != 0) { debug("enable %s --> %d\n", dev->in_ep->name, result); goto done; } - result = usb_ep_enable(dev->out_ep, dev->out); + dev->out_ep->desc = dev->out; + result = usb_ep_enable(dev->out_ep); if (result != 0) { debug("enable %s --> %d\n", dev->out_ep->name, result); @@ -1156,7 +1159,8 @@ static void issue_start_status(struct eth_dev *dev) * FIXME iff req->context != null just dequeue it */ usb_ep_disable(dev->status_ep); - usb_ep_enable(dev->status_ep, dev->status); + dev->status_ep->desc = dev->status; + usb_ep_enable(dev->status_ep); /* * 3.8.1 says to issue first NETWORK_CONNECTION, then @@ -1314,7 +1318,8 @@ eth_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl) break; if (dev->status) { usb_ep_disable(dev->status_ep); - usb_ep_enable(dev->status_ep, dev->status); + dev->status_ep->desc = dev->status; + usb_ep_enable(dev->status_ep); } value = 0; @@ -1333,8 +1338,10 @@ eth_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl) if (wValue == 1) { if (!cdc_active(dev)) break; - usb_ep_enable(dev->in_ep, dev->in); - usb_ep_enable(dev->out_ep, dev->out); + dev->in_ep->desc = dev->in; + usb_ep_enable(dev->in_ep); + dev->out_ep->desc = dev->out; + usb_ep_enable(dev->out_ep); dev->cdc_filter = DEFAULT_FILTER; if (dev->status) issue_start_status(dev); diff --git a/drivers/usb/gadget/f_acm.c b/drivers/usb/gadget/f_acm.c index b6c11d97a62d..5f5400bab7ec 100644 --- a/drivers/usb/gadget/f_acm.c +++ b/drivers/usb/gadget/f_acm.c @@ -325,20 +325,20 @@ static struct usb_request *acm_start_ep(struct usb_ep *ep, void *complete_cb, static int acm_start_data(struct f_acm *f_acm, struct usb_gadget *gadget) { - const struct usb_endpoint_descriptor *d; int ret; /* EP IN */ - d = ep_desc(gadget, &acm_hs_in_desc, &acm_fs_in_desc); - ret = usb_ep_enable(f_acm->ep_in, d); + f_acm->ep_in->desc = ep_desc(gadget, &acm_hs_in_desc, &acm_fs_in_desc); + ret = usb_ep_enable(f_acm->ep_in); if (ret) return ret; f_acm->req_in = acm_start_ep(f_acm->ep_in, acm_tx_complete, f_acm); /* EP OUT */ - d = ep_desc(gadget, &acm_hs_out_desc, &acm_fs_out_desc); - ret = usb_ep_enable(f_acm->ep_out, d); + f_acm->ep_out->desc = ep_desc(gadget, &acm_hs_out_desc, + &acm_fs_out_desc); + ret = usb_ep_enable(f_acm->ep_out); if (ret) return ret; @@ -354,12 +354,11 @@ static int acm_start_data(struct f_acm *f_acm, struct usb_gadget *gadget) static int acm_start_ctrl(struct f_acm *f_acm, struct usb_gadget *gadget) { - const struct usb_endpoint_descriptor *d; - usb_ep_disable(f_acm->ep_notify); - d = ep_desc(gadget, &acm_hs_notify_desc, &acm_fs_notify_desc); - usb_ep_enable(f_acm->ep_notify, d); + f_acm->ep_notify->desc = ep_desc(gadget, &acm_hs_notify_desc, + &acm_fs_notify_desc); + usb_ep_enable(f_acm->ep_notify); acm_start_ep(f_acm->ep_notify, acm_notify_complete, f_acm); @@ -454,6 +453,9 @@ static void acm_disable(struct usb_function *f) usb_ep_disable(f_acm->ep_out); usb_ep_disable(f_acm->ep_in); usb_ep_disable(f_acm->ep_notify); + f_acm->ep_out->desc = NULL; + f_acm->ep_in->desc = NULL; + f_acm->ep_notify->desc = NULL; if (f_acm->req_out) { free(f_acm->req_out->buf); diff --git a/drivers/usb/gadget/f_fastboot.c b/drivers/usb/gadget/f_fastboot.c index 8df0e3f331d1..e1eed5fa4cb4 100644 --- a/drivers/usb/gadget/f_fastboot.c +++ b/drivers/usb/gadget/f_fastboot.c @@ -320,13 +320,13 @@ static int fastboot_set_alt(struct usb_function *f, struct usb_composite_dev *cdev = f->config->cdev; struct usb_gadget *gadget = cdev->gadget; struct f_fastboot *f_fb = func_to_fastboot(f); - const struct usb_endpoint_descriptor *d; debug("%s: func: %s intf: %d alt: %d\n", __func__, f->name, interface, alt); - d = fb_ep_desc(gadget, &fs_ep_out, &hs_ep_out, &ss_ep_out); - ret = usb_ep_enable(f_fb->out_ep, d); + f_fb->out_ep->desc = fb_ep_desc(gadget, &fs_ep_out, &hs_ep_out, + &ss_ep_out); + ret = usb_ep_enable(f_fb->out_ep); if (ret) { puts("failed to enable out ep\n"); return ret; @@ -340,8 +340,8 @@ static int fastboot_set_alt(struct usb_function *f, } f_fb->out_req->complete = rx_handler_command; - d = fb_ep_desc(gadget, &fs_ep_in, &hs_ep_in, &ss_ep_in); - ret = usb_ep_enable(f_fb->in_ep, d); + f_fb->in_ep->desc = fb_ep_desc(gadget, &fs_ep_in, &hs_ep_in, &ss_ep_in); + ret = usb_ep_enable(f_fb->in_ep); if (ret) { puts("failed to enable in ep\n"); goto err; diff --git a/drivers/usb/gadget/f_mass_storage.c b/drivers/usb/gadget/f_mass_storage.c index 7eb667c130d2..22a1352b6d2b 100644 --- a/drivers/usb/gadget/f_mass_storage.c +++ b/drivers/usb/gadget/f_mass_storage.c @@ -2159,7 +2159,8 @@ static int enable_endpoint(struct fsg_common *common, struct usb_ep *ep, int rc; ep->driver_data = common; - rc = usb_ep_enable(ep, d); + ep->desc = d; + rc = usb_ep_enable(ep); if (rc) ERROR(common, "can't enable %s, result %d\n", ep->name, rc); return rc; @@ -2206,10 +2207,12 @@ reset: /* Disable the endpoints */ if (fsg->bulk_in_enabled) { usb_ep_disable(fsg->bulk_in); + fsg->bulk_in->desc = NULL; fsg->bulk_in_enabled = 0; } if (fsg->bulk_out_enabled) { usb_ep_disable(fsg->bulk_out); + fsg->bulk_out->desc = NULL; fsg->bulk_out_enabled = 0; } diff --git a/drivers/usb/gadget/f_rockusb.c b/drivers/usb/gadget/f_rockusb.c index d679cdae97c8..37957b202f8c 100644 --- a/drivers/usb/gadget/f_rockusb.c +++ b/drivers/usb/gadget/f_rockusb.c @@ -202,6 +202,8 @@ static void rockusb_disable(struct usb_function *f) usb_ep_disable(f_rkusb->out_ep); usb_ep_disable(f_rkusb->in_ep); + f_rkusb->out_ep->desc = NULL; + f_rkusb->in_ep->desc = NULL; if (f_rkusb->out_req) { free(f_rkusb->out_req->buf); @@ -246,13 +248,12 @@ static int rockusb_set_alt(struct usb_function *f, unsigned int interface, struct usb_composite_dev *cdev = f->config->cdev; struct usb_gadget *gadget = cdev->gadget; struct f_rockusb *f_rkusb = func_to_rockusb(f); - const struct usb_endpoint_descriptor *d; debug("%s: func: %s intf: %d alt: %d\n", __func__, f->name, interface, alt); - d = rkusb_ep_desc(gadget, &fs_ep_out, &hs_ep_out); - ret = usb_ep_enable(f_rkusb->out_ep, d); + f_rkusb->out_ep->desc = rkusb_ep_desc(gadget, &fs_ep_out, &hs_ep_out); + ret = usb_ep_enable(f_rkusb->out_ep); if (ret) { printf("failed to enable out ep\n"); return ret; @@ -266,8 +267,8 @@ static int rockusb_set_alt(struct usb_function *f, unsigned int interface, } f_rkusb->out_req->complete = rx_handler_command; - d = rkusb_ep_desc(gadget, &fs_ep_in, &hs_ep_in); - ret = usb_ep_enable(f_rkusb->in_ep, d); + f_rkusb->in_ep->desc = rkusb_ep_desc(gadget, &fs_ep_in, &hs_ep_in); + ret = usb_ep_enable(f_rkusb->in_ep); if (ret) { printf("failed to enable in ep\n"); goto err; diff --git a/drivers/usb/gadget/f_sdp.c b/drivers/usb/gadget/f_sdp.c index cd2c282247ac..0bb386053258 100644 --- a/drivers/usb/gadget/f_sdp.c +++ b/drivers/usb/gadget/f_sdp.c @@ -625,12 +625,14 @@ static int sdp_set_alt(struct usb_function *f, unsigned intf, unsigned alt) debug("%s: intf: %d alt: %d\n", __func__, intf, alt); if (gadget_is_dualspeed(gadget) && gadget->speed == USB_SPEED_HIGH) { - result = usb_ep_enable(sdp->in_ep, &in_hs_desc); - result |= usb_ep_enable(sdp->out_ep, &out_hs_desc); + sdp->in_ep->desc = &in_hs_desc; + sdp->out_ep->desc = &out_hs_desc; } else { - result = usb_ep_enable(sdp->in_ep, &in_desc); - result |= usb_ep_enable(sdp->out_ep, &out_desc); + sdp->in_ep->desc = &in_hs_desc; + sdp->out_ep->desc = &out_hs_desc; } + result = usb_ep_enable(sdp->in_ep); + result |= usb_ep_enable(sdp->out_ep); if (result) return result; @@ -662,6 +664,8 @@ static void sdp_disable(struct usb_function *f) usb_ep_disable(sdp->in_ep); usb_ep_disable(sdp->out_ep); + sdp->in_ep->desc = NULL; + sdp->out_ep->desc = NULL; if (sdp->in_req) { free(sdp->in_req->buf); diff --git a/drivers/usb/gadget/f_thor.c b/drivers/usb/gadget/f_thor.c index 540b9f882378..210537d51e92 100644 --- a/drivers/usb/gadget/f_thor.c +++ b/drivers/usb/gadget/f_thor.c @@ -909,16 +909,15 @@ static int thor_eps_setup(struct usb_function *f) struct usb_composite_dev *cdev = f->config->cdev; struct usb_gadget *gadget = cdev->gadget; struct thor_dev *dev = thor_func->dev; - struct usb_endpoint_descriptor *d; struct usb_request *req; struct usb_ep *ep; int result; ep = dev->in_ep; - d = ep_desc(gadget, &hs_in_desc, &fs_in_desc); - debug("(d)bEndpointAddress: 0x%x\n", d->bEndpointAddress); + ep->desc = ep_desc(gadget, &hs_in_desc, &fs_in_desc); + debug("(d)bEndpointAddress: 0x%x\n", ep->desc->bEndpointAddress); - result = usb_ep_enable(ep, d); + result = usb_ep_enable(ep); if (result) goto err; @@ -933,10 +932,10 @@ static int thor_eps_setup(struct usb_function *f) req->complete = thor_rx_tx_complete; dev->in_req = req; ep = dev->out_ep; - d = ep_desc(gadget, &hs_out_desc, &fs_out_desc); - debug("(d)bEndpointAddress: 0x%x\n", d->bEndpointAddress); + ep->desc = ep_desc(gadget, &hs_out_desc, &fs_out_desc); + debug("(d)bEndpointAddress: 0x%x\n", ep->desc->bEndpointAddress); - result = usb_ep_enable(ep, d); + result = usb_ep_enable(ep); if (result) goto err_free_in_req; @@ -951,10 +950,10 @@ static int thor_eps_setup(struct usb_function *f) dev->out_req = req; /* ACM control EP */ ep = dev->int_ep; - d = ep_desc(gadget, &hs_int_desc, &fs_int_desc); - debug("(d)bEndpointAddress: 0x%x\n", d->bEndpointAddress); + ep->desc = ep_desc(gadget, &hs_int_desc, &fs_int_desc); + debug("(d)bEndpointAddress: 0x%x\n", ep->desc->bEndpointAddress); - result = usb_ep_enable(ep, d); + result = usb_ep_enable(ep); if (result) goto err; -- 2.53.0