Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp31284680rwd; Thu, 6 Jul 2023 19:25:42 -0700 (PDT) X-Google-Smtp-Source: APBJJlFogw7i0SANLUFTG6UejZF6N2meesJKLaUJx6+Tg/n3caU3BLr5GLzbwmLb3PVwCpOkQvLk X-Received: by 2002:a25:1f02:0:b0:c67:8903:532b with SMTP id f2-20020a251f02000000b00c678903532bmr2562883ybf.44.1688696741635; Thu, 06 Jul 2023 19:25:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688696741; cv=none; d=google.com; s=arc-20160816; b=LG/mUqqXbA/TBoGadLsvzdMYrWAUmxbreHlbyXPvZiWVsu2aL3xBdMNmAx55SZRIry q9wgBV9WcLpm2FvyivQbDmmy1x7NYM82Ad9WwfGryMAahiulytFOMWGSy+6l8xgP1GYA cgIBL37IKsHAWA1xwiA+NbpYXvpKwU5KR11L0OKDjZrVBelEMV6Cy7HDsz6F7l0LxYAH jOPY2r+wR2aPLryX9F8IrcSQ3uk3i8g+nQBIIav06HS1euVgcLKZRDudNKilfwzZmXhw 9O4tc+AgsWxPnopepe5Sb+ub3nn5iVI5Q2+XrHcWVolvRD1U3XLdH0Iac2rK11eF98JX aqPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=greNudHpQaX8njGt9rMk3zGBdbA5yiIYyrUQoJ6Nyhk=; fh=B9763ea1h10/CrPWrT9Q6WMGmbYZsR8/o29vC0OXTAc=; b=AsNnugucickV++f32psTzrYMufZoxVqNBnDK034R9mZPiL1mNgO5MyeNOajglPFrhd s3KczcyQI7zmnodPcTSL/3w522cn3TAeLQyb0qZn4Fqq9p7KHz9B1T1rc6ruWybPuYrv IqC8u9AAtXq4WSfG6ZlOmRWJyCXTi/EFdiQTMkOJfRk2BEnAszthUYKZBCTzmkdH3qKB NObxxBJfiPJ94JvqifxCSwAsqqq3LsvbfbMMV0wnJc/VEtPMEjXAM7+DYT6oLh5PTj6l oZmHoRZF5vjflWLzkWeLTExqGHUtF1LR8xmGkUiA1uJe3NwyYTTzs2d/SqR7AEEWYV55 x3pw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y31-20020a63181f000000b00557221e784asi2643004pgl.293.2023.07.06.19.25.27; Thu, 06 Jul 2023 19:25:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231887AbjGGCQ6 (ORCPT + 99 others); Thu, 6 Jul 2023 22:16:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52866 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232076AbjGGCQ4 (ORCPT ); Thu, 6 Jul 2023 22:16:56 -0400 Received: from netrider.rowland.org (netrider.rowland.org [192.131.102.5]) by lindbergh.monkeyblade.net (Postfix) with SMTP id 7B8721709 for ; Thu, 6 Jul 2023 19:16:54 -0700 (PDT) Received: (qmail 1198458 invoked by uid 1000); 6 Jul 2023 22:16:52 -0400 Date: Thu, 6 Jul 2023 22:16:52 -0400 From: Alan Stern To: richard.yu@hpe.com Cc: verdun@hpe.com, nick.hawkins@hpe.com, gregkh@linuxfoundation.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v1 2/3] usb: gadget: udc: gxp-udc: add HPE GXP USB support Message-ID: <9171a00d-9ce5-4aca-8f81-2ad2b6961e17@rowland.harvard.edu> References: <20230706215910.78772-1-richard.yu@hpe.com> <20230706215910.78772-3-richard.yu@hpe.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230706215910.78772-3-richard.yu@hpe.com> X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no 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 On Thu, Jul 06, 2023 at 04:59:09PM -0500, richard.yu@hpe.com wrote: > From: Richard Yu > > The HPE GXP vEHCI controller presents a four port EHCI compatible PCI > function to host software. Each vEHCI port is logically connected to a > corresponding set of virtual device registers. What makes the vEHCI controller virtual? Presenting a "PCI function" certainly seems to indicate it is a physical device, indeed, a PCI device. > > Signed-off-by: Richard Yu > --- > drivers/usb/gadget/udc/Kconfig | 6 + > drivers/usb/gadget/udc/Makefile | 1 + > drivers/usb/gadget/udc/gxp-udc.c | 1401 ++++++++++++++++++++++++++++++ > 3 files changed, 1408 insertions(+) > create mode 100644 drivers/usb/gadget/udc/gxp-udc.c > > diff --git a/drivers/usb/gadget/udc/Kconfig b/drivers/usb/gadget/udc/Kconfig > index 83cae6bb12eb..c01eb2a2c7db 100644 > --- a/drivers/usb/gadget/udc/Kconfig > +++ b/drivers/usb/gadget/udc/Kconfig > @@ -461,6 +461,12 @@ config USB_ASPEED_UDC > dynamically linked module called "aspeed_udc" and force all > gadget drivers to also be dynamically linked. > > +config USB_GXP_UDC > + bool "GXP UDC Driver" > + depends on ARCH_HPE_GXP || COMPILE_TEST > + help > + Say "y" to add support for GXP UDC driver Now hang on a second. What sort of driver is this patch adding support for: a GXP vEHCI controller driver or a GXP UDC controller driver? The patch description says the first, but the code says the second. It sounds like this thing actually is a PCI device that appears to the OS as an actual EHCI controller, but with virtual (rather than physical) downstream ports, and it includes a virtual UDC for each port. As such, it requires a driver for the virtual UDCs, which is what this patch provides. (No new driver is needed for the EHCI controller part, since the kernel already has an EHCI driver.) Is that a correct description? And if it is, what is the purpose of this device? To act as a testing ground for gadget drivers? Alan Stern