Received: by 2002:a05:7412:a9a2:b0:e2:908c:2ebd with SMTP id o34csp1355375rdh; Fri, 27 Oct 2023 11:35:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGwIxM9Jvj+naDBcQx7CR/a6AcAIxFAJB5W7Mw/fLRfc5FfAVmttM5yOtQjuQNNjcmCseUJ X-Received: by 2002:a81:aa46:0:b0:5ad:716b:ead3 with SMTP id z6-20020a81aa46000000b005ad716bead3mr3438057ywk.28.1698431733558; Fri, 27 Oct 2023 11:35:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698431733; cv=none; d=google.com; s=arc-20160816; b=FCZ0opkSYyJDTwCz5yf7j5vfZ/VYv0KkXRESGM1UA1uYyRcgi6CKgRcam6Ug6NhJlN BB5OluzOsXigSAJg1xrTOsLTG5Z2jnvEVGCuVVDpR9K6tlhvWFP6hegzsA0SlDzMiKVK s/i8cAzQB3pWx2eup6YwcJDx+KXmkV47MQYJAZXrQMN2fmjEPCQ7lwb+uSlsu6dsIkA2 Y8Gb1kTY7wblU44F27KbtDBzopLFMra0fUCeTnzRB5QPz/c3jZy4ladqJkn5iYPHhZq0 fRsXQaPs/WvkcEFITPKVfr8gULTGQXoFV3eYnVKhR4PN14SUToHD6bIkqP1D9JWuk5py sxug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:dkim-signature; bh=Z2KQL5mvly38v1BFhse+1fz0BAqnm18zxyTLFh/7tsk=; fh=LOkvsvy8aDf3R8SPrv7XsXPKEeW0/Eo0pJgOwo+4CMk=; b=P8qaHlxc1nE3wDWjkekpYN3aO2bEtMe6Q45J60B4THYJ++avewvSdcpu3g0BciknRW 744xjYyrcoT0leJBxbwixKAcWGBR+dKUl58fnXd/PVFNFqS40LyRCa1rEAifH7DnVHKj OWOtdNJ6Os+lR+5+ryZ0ANhO+FEvoadqPSIpLBsI+yMhdACwZH1yjEaKhRyrQWc9colN YWbWsSzEd3cpdBGhtQ8HOM6Q1HYzx8d5B1OhBDjurdXa+NuFV8+/RvuOKxdpWOZaIReO zvdc6a/PYYO6NnJPOW7mUg207IG5MncqmHasSea3z/9WfPATzRb7TxXGE3BygOw7kLyv 8oxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=Z5ILT5hv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id u66-20020a814745000000b005a1d7c4e015si3332458ywa.565.2023.10.27.11.35.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Oct 2023 11:35:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=Z5ILT5hv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id BB34780FDDCB; Fri, 27 Oct 2023 11:35:31 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346333AbjJ0SfW (ORCPT + 99 others); Fri, 27 Oct 2023 14:35:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33500 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235286AbjJ0SfI (ORCPT ); Fri, 27 Oct 2023 14:35:08 -0400 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 23110BD for ; Fri, 27 Oct 2023 11:34:52 -0700 (PDT) Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-da13698a6d3so863451276.0 for ; Fri, 27 Oct 2023 11:34:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1698431691; x=1699036491; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=Z2KQL5mvly38v1BFhse+1fz0BAqnm18zxyTLFh/7tsk=; b=Z5ILT5hvKkDIHkefyZ7DIbBIF4l+w7ELSsLPK5m/QuyaiH5Aw4BbDIsLkqFnnFA3TB 4Fv/axwSRpcfIKikQYYzcPYcM5mhIGd7cT8dvN18RQjgxCIHQxeQXDxfw5ih6bFTvI1a dp8lsS19F67GlMSvqFtbIU+owE7wY/WB6rmv+WG/LosTg3PLLncwFyKk98j6HU1toKRX yh9ZGH06yCf2KOkXRcK/WFCXc88PdlO3vua+PPrukDveeKhed+rs1ARycDwM5HnLdmEJ lbyBWXBoH5jtUlzy6JMj1QJ62nVcto3fPQy5btlPoY2DMdfpIpDxiWWXkaAhbyUy07/p bHTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698431691; x=1699036491; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Z2KQL5mvly38v1BFhse+1fz0BAqnm18zxyTLFh/7tsk=; b=HrXLZKKqdl24btimw0e9tko4pLJM7520EBlytnVJ8DfSUnuoZNTY6g8EwuHUgG5nhF zy9+Pat1uAYLcpaw1foXjtO0v2V+3ube8Qu6pUWCE1wfq0Nu8NQn42ErQo9G16RI4u7W I+vq/eTX0fhXqUd0LsyCsd0hA87vEccRHhEhSEO+yVaJhev0z5roh4SWCsYKdagImXmc HxOlKebiN4ddzOfdI4P1kk9dgdYeZBWEvx7Vs6ZwG/Xvxx6+DRAKfiIM8Gqm7DwgUfil PyhZu5CNVvuBZCeCeOQ3rwPjMxw8rcwsedeeWSYR+aqkF/VpL9yLJds4JIUjrAk+NNXd 3uLQ== X-Gm-Message-State: AOJu0YyldEK8pV5PEAjoIZ5Nlkvmw4IHJj8xGoCwvckY5OWPaIB/Ti+U FtGa5rnpEVOksTvuwrYXlgzlfURu/5aD4Wff7Q== X-Received: from shuzhenwang.mtv.corp.google.com ([2620:15c:211:201:c5e7:1675:d0d:2a4c]) (user=shuzhenwang job=sendgmr) by 2002:a05:6902:565:b0:da0:c979:fd70 with SMTP id a5-20020a056902056500b00da0c979fd70mr70535ybt.9.1698431691381; Fri, 27 Oct 2023 11:34:51 -0700 (PDT) Date: Fri, 27 Oct 2023 11:34:40 -0700 In-Reply-To: <14ceb63f-1769-4025-ad90-c38112dfec79@google.com> Mime-Version: 1.0 References: <14ceb63f-1769-4025-ad90-c38112dfec79@google.com> X-Mailer: git-send-email 2.42.0.820.g83a721a137-goog Message-ID: <20231027183440.1994315-1-shuzhenwang@google.com> Subject: [PATCH v2] usb: gadget: uvc: Add missing initialization of ssp config descriptor From: Shuzhen Wang To: shuzhenwang@google.com, gregkh@linuxfoundation.org Cc: balbi@kernel.org, laurent.pinchart@ideasonboard.com, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 27 Oct 2023 11:35:31 -0700 (PDT) In case the uvc gadget is super speed plus, the corresponding config descriptor wasn't initialized. As a result, the host will not recognize the devices when using super speed plus connection. This patch initializes them to super speed descriptors. Reviewed-by: Laurent Pinchart Signed-off-by: Shuzhen Wang --- v2: fix patch formatting drivers/usb/gadget/function/f_uvc.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/usb/gadget/function/f_uvc.c b/drivers/usb/gadget/function/f_uvc.c index faa398109431..786379f1b7b7 100644 --- a/drivers/usb/gadget/function/f_uvc.c +++ b/drivers/usb/gadget/function/f_uvc.c @@ -516,6 +516,7 @@ uvc_copy_descriptors(struct uvc_device *uvc, enum usb_device_speed speed) void *mem; switch (speed) { + case USB_SPEED_SUPER_PLUS: case USB_SPEED_SUPER: uvc_control_desc = uvc->desc.ss_control; uvc_streaming_cls = uvc->desc.ss_streaming; @@ -564,7 +565,8 @@ uvc_copy_descriptors(struct uvc_device *uvc, enum usb_device_speed speed) bytes += uvc_interrupt_ep.bLength + uvc_interrupt_cs_ep.bLength; n_desc += 2; - if (speed == USB_SPEED_SUPER) { + if (speed == USB_SPEED_SUPER || + speed == USB_SPEED_SUPER_PLUS) { bytes += uvc_ss_interrupt_comp.bLength; n_desc += 1; } @@ -619,7 +621,8 @@ uvc_copy_descriptors(struct uvc_device *uvc, enum usb_device_speed speed) if (uvc->enable_interrupt_ep) { UVC_COPY_DESCRIPTOR(mem, dst, &uvc_interrupt_ep); - if (speed == USB_SPEED_SUPER) + if (speed == USB_SPEED_SUPER || + speed == USB_SPEED_SUPER_PLUS) UVC_COPY_DESCRIPTOR(mem, dst, &uvc_ss_interrupt_comp); UVC_COPY_DESCRIPTOR(mem, dst, &uvc_interrupt_cs_ep); @@ -795,6 +798,13 @@ uvc_function_bind(struct usb_configuration *c, struct usb_function *f) goto error; } + f->ssp_descriptors = uvc_copy_descriptors(uvc, USB_SPEED_SUPER_PLUS); + if (IS_ERR(f->ssp_descriptors)) { + ret = PTR_ERR(f->ssp_descriptors); + f->ssp_descriptors = NULL; + goto error; + } + /* Preallocate control endpoint request. */ uvc->control_req = usb_ep_alloc_request(cdev->gadget->ep0, GFP_KERNEL); uvc->control_buf = kmalloc(UVC_MAX_REQUEST_SIZE, GFP_KERNEL); -- 2.42.0.820.g83a721a137-goog