Re: [PATCH 2/3] usb: gadget: aspeed: add ast2600 vhub support

From: Tao Ren
Date: Mon Feb 10 2020 - 14:31:35 EST


On Mon, Feb 10, 2020 at 08:29:22AM +0100, Benjamin Herrenschmidt wrote:
> On Mon, 2020-02-10 at 02:48 +0000, Joel Stanley wrote:
> > On Fri, 31 Jan 2020 at 22:22, <rentao.bupt@xxxxxxxxx> wrote:
> > >
> > > From: Tao Ren <rentao.bupt@xxxxxxxxx>
> > >
> > > Add AST2600 support in aspeed-vhub driver. There are 3 major differences
> > > between AST2500 and AST2600 vhub:
> > > - AST2600 supports 7 downstream ports while AST2500 supports 5.
> > > - AST2600 supports 21 generic endpoints while AST2500 supports 15.
> > > - EP0 data buffer's 8-byte DMA alignment restriction is removed from
> > > AST2600.
> > >
> > > Signed-off-by: Tao Ren <rentao.bupt@xxxxxxxxx>
> > > Reviewed-by: Andrew Jeffery <andrew@xxxxxxxx>
>
> Travelling at the moment so my review might be a bit delayed. Also for
> some reason I missed your original submission, sorry about that, please
> poke me next time if I don't reply within a couple of days !

No worries Ben and thanks for the review. I thought people was too busy
during merge window :)

>
> One thing to look into as well is the 2600 has revived the "device
> controller" which looks like a cut down version of a vhub device, so we
> should break a bit more the linkage between vhub and the underlying
> devices so the latter can be instanciated standalone...
>
> (Foor for thought, I'm not asking you to do that right now)

Thanks for sharing your thought. I was actually curious why "device
controller" was back. Anyways I feel it might be easier to break the
linkage when we decide to add driver for the "device controller".


Cheers,

Tao
>
> Cheers,
> Ben.
>
> > Reviewed-by: Joel Stanley <joel@xxxxxxxxx>
> >
> > > ---
> > > drivers/usb/gadget/udc/aspeed-vhub/Kconfig | 4 ++--
> > > drivers/usb/gadget/udc/aspeed-vhub/core.c | 9 +++++++++
> > > 2 files changed, 11 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/usb/gadget/udc/aspeed-vhub/Kconfig b/drivers/usb/gadget/udc/aspeed-vhub/Kconfig
> > > index 83ba8a2eb6af..605500b19cf3 100644
> > > --- a/drivers/usb/gadget/udc/aspeed-vhub/Kconfig
> > > +++ b/drivers/usb/gadget/udc/aspeed-vhub/Kconfig
> > > @@ -4,5 +4,5 @@ config USB_ASPEED_VHUB
> > > depends on ARCH_ASPEED || COMPILE_TEST
> > > depends on USB_LIBCOMPOSITE
> > > help
> > > - USB peripheral controller for the Aspeed AST2500 family
> > > - SoCs supporting the "vHub" functionality and USB2.0
> > > + USB peripheral controller for the Aspeed AST2400, AST2500 and
> > > + AST2600 family SoCs supporting the "vHub" functionality and USB2.0
> > > diff --git a/drivers/usb/gadget/udc/aspeed-vhub/core.c b/drivers/usb/gadget/udc/aspeed-vhub/core.c
> > > index 94081cc04113..c827bf420278 100644
> > > --- a/drivers/usb/gadget/udc/aspeed-vhub/core.c
> > > +++ b/drivers/usb/gadget/udc/aspeed-vhub/core.c
> > > @@ -42,6 +42,11 @@ static const struct ast_vhub_config ast2400_config = {
> > > .max_epns = 15,
> > > };
> > >
> > > +static const struct ast_vhub_config ast2600_config = {
> > > + .max_ports = 7,
> > > + .max_epns = 21,
> > > +};
> > > +
> > > static const struct of_device_id ast_vhub_dt_ids[] = {
> > > {
> > > .compatible = "aspeed,ast2400-usb-vhub",
> > > @@ -51,6 +56,10 @@ static const struct of_device_id ast_vhub_dt_ids[] = {
> > > .compatible = "aspeed,ast2500-usb-vhub",
> > > .data = &ast2400_config,
> > > },
> > > + {
> > > + .compatible = "aspeed,ast2600-usb-vhub",
> > > + .data = &ast2600_config,
> > > + },
> > > { }
> > > };
> > > MODULE_DEVICE_TABLE(of, ast_vhub_dt_ids);
> > > --
> > > 2.17.1
> > >
>