Re: [PATCH v1 2/3] usb: gadget: udc: gxp-udc: add HPE GXP USB support

From: Greg KH
Date: Fri Jul 07 2023 - 06:15:00 EST


On Thu, Jul 06, 2023 at 04:59:09PM -0500, richard.yu@xxxxxxx wrote:
> From: Richard Yu <richard.yu@xxxxxxx>
>
> 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.
>
> Signed-off-by: Richard Yu <richard.yu@xxxxxxx>
> ---
> 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
> +
> source "drivers/usb/gadget/udc/aspeed-vhub/Kconfig"
>
> #
> diff --git a/drivers/usb/gadget/udc/Makefile b/drivers/usb/gadget/udc/Makefile
> index ee569f63c74a..63fa262f31c5 100644
> --- a/drivers/usb/gadget/udc/Makefile
> +++ b/drivers/usb/gadget/udc/Makefile
> @@ -42,3 +42,4 @@ obj-$(CONFIG_USB_ASPEED_VHUB) += aspeed-vhub/
> obj-$(CONFIG_USB_ASPEED_UDC) += aspeed_udc.o
> obj-$(CONFIG_USB_BDC_UDC) += bdc/
> obj-$(CONFIG_USB_MAX3420_UDC) += max3420_udc.o
> +obj-$(CONFIG_USB_GXP_UDC) += gxp-udc.o
> diff --git a/drivers/usb/gadget/udc/gxp-udc.c b/drivers/usb/gadget/udc/gxp-udc.c
> new file mode 100644
> index 000000000000..97d198128c06
> --- /dev/null
> +++ b/drivers/usb/gadget/udc/gxp-udc.c
> @@ -0,0 +1,1401 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/* Copyright (C) 2023 Hewlett-Packard Enterprise Development Company, L.P. */
> +
> +#include <linux/kernel.h>
> +#include <linux/module.h>
> +#include <linux/spinlock.h>
> +#include <linux/interrupt.h>
> +#include <linux/platform_device.h>
> +#include <linux/of_platform.h>
> +#include <linux/dma-mapping.h>
> +#include <linux/delay.h>
> +#include <linux/io.h>
> +#include <linux/slab.h>
> +#include <linux/clk.h>
> +#include <linux/err.h>
> +#include <linux/usb/ch9.h>
> +#include <linux/usb/gadget.h>
> +#include <linux/usb/otg.h>
> +#include <linux/prefetch.h>
> +#include <linux/regmap.h>
> +#include <linux/mfd/syscon.h>

Are you sure you need all of these? I don't see any syscon_* calls in
this file. Please audit the list of includes here and remove all
unneeded ones.

thanks,

greg k-h