On Mon, 11 Feb 2019, Stanislaw Gruszka wrote: > On Mon, Feb 11, 2019 at 10:12:57AM -0500, Alan Stern wrote: > > On Mon, 11 Feb 2019, Lorenzo Bianconi wrote: > > > > > Here it is a different issue respect to the AMD IOMMU one, dwc2 host driver > > > does not implement SG I/O so probing fails. I guess it is still useful to > > > implement a 'legacy' mode that enable mt76 on host controllers that do not implement > > > SG I/O (rpi is a very common device so it will be cool to have mt76 working on > > > it). Moreover we are not removing functionalities, user experience will remain > > > the same > > > > Has anyone considered adding SG support to dwc2? It shouldn't be very > > difficult. The corresponding change for ehci-hcd required adding no > > more than about 30 lines of code. > > That would be cool. Perhaps somebody with dwc2 hardware could do this. > > However in mt76x02u we possibly would like to support other usb host > drivers with sg_tablesize = 0 . I would like to clarify what is correct > to do with such drivers. > > Is ok to pass buffer via urb->sg with urb->num_sgs = 1 ? Or maybe > urb->num_sgs should be 0 to pass buffer via urb->sg on such drivers ? > Or maybe non of above is correct and the only option that will work > in 100% is pass buffer via urb->transfer_buffer ? See the kerneldoc for usb_sg_init(), usb_sg_wait(), and usb_sg_cancel() in drivers/usb/core/message.c. These routines will always do the right thing -- however usb_sg_wait() must be called in process context. Alan Stern