RE: [PATCH v2] usb: xhci: add debugfs support for ep with stream

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
> Sent: Thursday, September 3, 2020 5:39 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
> 
> On 3.9.2020 10.46, Jun Li wrote:
> >
> >> -----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%2Fg
> >>>> it
> >>>> .kernel.o
> >>>> rg%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Fmnyman%2Fxhci.git%2Fcommit%
> >>>> 2F
> >>>> %3Fh%3Dfo
> >>>> r-usb-linus%26id%3Dcf99aef5624a592fd4f3374c7060bfa1a65f15df&amp;dat
> >>>> a=
> >>>> 02%7C01%7
> >>>> Cjun.li%40nxp.com%7C73e4663a6f6641fbb8b308d84f3d021a%7C686ea1d3bc2b
> >>>> 4c
> >>>> 6fa92cd99
> >>>> c5c301635%7C0%7C0%7C637346470803922895&amp;sdata=i4DfCW8EVUSAWnzb8Q
> >>>> l4
> >>>> jPjAOD5wp
> >>>> tfbaMrO8vKvtDc%3D&amp;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)?
> 
> If you could yes, and also change to a double pointer:
> 
>  struct xhci_ep_priv {
> 	...
> +	struct xhci_ring	**show_ring;

With current: struct xhci_ring	*show_ring;
As I use one trb file to show different trb rings for one EP, so I need get
the addr of trb ring pointed by show_ring(which can be updated).

If I change it to be **show_ring, then I am passing the addr of dev->eps[i].ring
to debugfs so I can't use show_ring's update value when show trb, makes me
not easy to get the addr of target trb ring.

Thanks
Li Jun

>  };
> 
> And modify other places this change affects, such as:
> epriv->show_ring = &dev->eps[ep_index].ring;
> 
> -Mathias




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux