> -----Original Message----- > From: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx> > Sent: Thursday, September 3, 2020 3:24 PM > To: Jun Li <jun.li@xxxxxxx>; mathias.nyman@xxxxxxxxx > Cc: gregkh@xxxxxxxxxxxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; dl-linux-imx > <linux-imx@xxxxxxx> > Subject: Re: [PATCH v2] usb: xhci: add debugfs support for ep with stream > > >> I think this debugfs code is just called too early. It shouldn't need > >> to check new_ring pointer at all. > >> > >> I wrote a fix that changes the order and makes sure endpoint is > >> enabled and ring pointer is set correctly before we call > >> xhci_debugfs_create_endpoint() > >> > >> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit > >> .kernel.o > >> rg%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Fmnyman%2Fxhci.git%2Fcommit%2F > >> %3Fh%3Dfo > >> r-usb-linus%26id%3Dcf99aef5624a592fd4f3374c7060bfa1a65f15df&data= > >> 02%7C01%7 > >> Cjun.li%40nxp.com%7C73e4663a6f6641fbb8b308d84f3d021a%7C686ea1d3bc2b4c > >> 6fa92cd99 > >> c5c301635%7C0%7C0%7C637346470803922895&sdata=i4DfCW8EVUSAWnzb8Ql4 > >> jPjAOD5wp > >> tfbaMrO8vKvtDc%3D&reserved=0 > > > > This is a good place for non-zero Eps, but does not cover ep0. > > > > ep0 is special, it's not touched in these add/drop endpoint or check bandwidth > functions. > > ep0 ring is allocated earlier during slot creation in > xhci_alloc_virt_device() > ... > /* Allocate endpoint 0 ring */ > dev->eps[0].ring = xhci_ring_alloc(xhci, 2, 1, TYPE_CTRL, 0, flags); > > and for debugfs ep00 is added manually together with the slot > xhci_debugfs_create_slot() > ... > xhci_debugfs_create_ring_dir(xhci, &dev->eps[0].ring, "ep00", priv->root); > > So regarding ep0 the change should be ok. Sorry, I forgot debugfs of ep0 is created via xhci_debugfs_create_slot(). Then I think your change is OK, also I gave a test with my stream/UAS device on top of your patch and it can work fine. Do you need I post a new version of my patch(to remove touch of .new_ring)? Thanks Li Jun > > -Mathias