RE: [PATCH 3.12 033/118] usb: xhci: Link TRB must not occur within a USB payload burst

2014-01-10 Thread David Laight
From: walt > > In the meantime, try this patch, which is something of a long shot. > > No difference. But I notice the code enables the TRB quirk only if the > xhci_version is specifically 0x95. My debug messages claim that "xHCI > doesn't need link TRB QUIRK" so I'm wondering if adding my asmed

RE: [PATCH 2/7] usb: chipidea: add freescale imx28 special write register method

2014-01-10 Thread David Laight
From: gre...@linuxfoundation.org > > ... > > > +#ifdef > > > +static inline void imx28_ci_writel(u32 val, volatile void __iomem *addr) > > > +{ > > > + __asm__ ("swp %0, %0, [%1]" : : "r"(val), "r"(addr)); > > > +} > > > +#else > > > +static inline void imx28_ci_writel(u32 val, volatile void __iom

RE: PROBLEM: usbnet / ax88179_178a: Panic in usb_hcd_map_urb_for_dma

2014-01-13 Thread David Laight
From: Bjørn Mork > Thomas Kear writes: > > > On Sat, Jan 11, 2014 at 11:09 AM, Bjrn Mork wrote: > >> But looking at the code I think I found and obvious miss in the SG list > >> initialisation. I'll post a proposed fix for that. Would be good if > >> someone was able to test it. > > > > I've b

RE: PROBLEM: usbnet / ax88179_178a: Panic in usb_hcd_map_urb_for_dma

2014-01-13 Thread David Laight
From: Bjørn Mork > David Laight writes: > > > The patch you submitted is wrong. > > Whoever wrote the sg interface was on crack. > > The 'last' marker needs moving as well. > > I'm afraid I don't understand what you meant by this. > > s

RE: PROBLEM: usbnet / ax88179_178a: Panic in usb_hcd_map_urb_for_dma

2014-01-13 Thread David Laight
From: Bjørn Mork [mailto:bj...@mork.no] > David Laight writes: > > From: Bjørn Mork > >> David Laight writes: > >> > >> > The patch you submitted is wrong. > >> > Whoever wrote the sg interface was on crack. > >> > The 'last&#

RE: [RFC 00/10] xhci: re-work command queue management

2014-01-13 Thread David Laight
From: Mathias Nyman > This is an attempt to re-work and solve the issues in xhci command > queue management that Sarah has descibed earlier: > > Right now, the command management in the xHCI driver is rather ad-hock. > Different parts of the driver all submit commands, including interrupt > handli

RE: [PATCH 3.12 033/118] usb: xhci: Link TRB must not occur within a USB payload burst [NEW HARDWARE]

2014-01-14 Thread David Laight
From: walt > On 01/09/2014 03:50 PM, Sarah Sharp wrote: > > >>> On Tue, Jan 07, 2014 at 03:57:00PM -0800, walt wrote: > >> > >> I've wondered if my xhci problems might be caused by hardware quirks, and > >> wondering why I seem to be the only one who has this problem. > >> > >> Maybe I could "take

RE: [RFC 00/10] xhci: re-work command queue management

2014-01-14 Thread David Laight
From: Mathias Nyman ... > > The fact that you are having to allocate memory ion an ISR ought also to be > > ringing alarm bells. > > It did. > Other options are as you said to use a 'software command ring'. Either > just pre-allocate a full command ring (64 trbs * sizeof(struct > xhci_command)),

RE: xhci-hcd (millions of) "Too many fragments" error on LUKS-encrypted device

2014-01-15 Thread David Laight
From: Sascha Weaver > Sent: 15 January 2014 06:49 > To: linux-usb@vger.kernel.org > Subject: xhci-hcd (millions of) "Too many fragments" error on LUKS-encrypted > device > > Hi there, > > this bug was reported to Arch Linux community but they say I need to > take this upstream: https://bugs.arch

RE: [BUG] FL1009: xHCI host not responding to stop endpoint command.

2014-01-15 Thread David Laight
From: Arnaud Ebalard > Sent: 14 January 2014 21:54 > To: Sarah Sharp > Cc: linux-usb@vger.kernel.org; linux-arm-ker...@lists.infradead.org; Bjørn > Mork > Subject: Re: [BUG] FL1009: xHCI host not responding to stop endpoint command. > > Hi Sarah, > > Sarah Sharp writes: > > >> I can add the fo

RE: [Bug 68161] Unstable work of xhci with USB3.0 card reader and UDMA7 CompactFlash card.

2014-01-15 Thread David Laight
From: tatxarata > Update on my current research status. > > 1. To get normal read/write speed over USB3 I have to set max_sector_kb > to 64. Otherwise write is fine, but read is very slow (about 300kb/s). > Maybe this is hardware issue of this reader/card. However over USB2 all > works fine withou

RE: xhci-hcd (millions of) "Too many fragments" error on LUKS-encrypted device

2014-01-15 Thread David Laight
From: Sascha > 2014/1/15 David Laight : > > This is a known problem. > > A side effect of trying to fix USB ethernet. > > > > There is a patch lurking to increase the ring size from 64 to 256. > > Thanks, but where could I get the patch? I searched a bit bu

xhci ASMedia lockups - a theory

2014-01-15 Thread David Laight
I have a theory, I'll try to write a non-invasive patch. In spite of the comments and some code paths inc_enq() is only called by (and has only ever been called by) queue_trb(), so is only called for transfer and command rings. It takes care to avoid advancing past the LINK TRB. The coding would

RE: xhci ASMedia lockups - a theory

2014-01-15 Thread David Laight
From: Alan Stern > On Wed, 15 Jan 2014, David Laight wrote: > > > I have a theory, I'll try to write a non-invasive patch. > > > > In spite of the comments and some code paths inc_enq() is only > > called by (and has only ever been called by) queue_trb(), so

RE: xhci ASMedia lockups - a theory and a patch

2014-01-15 Thread David Laight
From: David Laight > From: Alan Stern > > On Wed, 15 Jan 2014, David Laight wrote: > > > > > I have a theory, I'll try to write a non-invasive patch. ... > > > > Doesn't this mean you shouldn't change the ownership of a LINK TRB > > unt

RE: xhci ASMedia lockups - a theory and a patch

2014-01-16 Thread David Laight
From: David Laight > From: David Laight > > From: Alan Stern > > > On Wed, 15 Jan 2014, David Laight wrote: > > > > > > > I have a theory, I'll try to write a non-invasive patch. > ... > > > > > > Doesn't this mean you shouldn

RE: [PATCH] xhci: make warnings greppable

2014-01-17 Thread David Laight
From: Sarah Sharp > > >- xhci_warn(xhci, "WARN Set TR Deq Ptr cmd failed because > > >" > > >- "slot %u was not enabled.\n", slot_id); > > >+ xhci_warn(xhci, "WARN Set TR Deq Ptr cmd failed because > > >slot " > > >+

[PATCH] xhci: Stop last TRB being a LINK TRB

2014-01-17 Thread David Laight
>last_trb is set using a static inline function since a minor implementation change might require a different scheme. I've also taken the liberty of on tracing short receives when they are unexpected. Otherwise every ethernet receive generates a trace (when the xhci_debug() trace is enabled

RE: xhci-hcd (millions of) "Too many fragments" error on LUKS-encrypted device

2014-01-17 Thread David Laight
From: Sascha Weaver [mailto:wzy...@wzyboy.org] ... > The patches, they both do their jobs: the first does not fix the bug > but "Too many fragments" error messages are limited to just one line. > The second patch does fix the bug, great. I can see it changes two > more lines in xhci.c. What's its a

RE: [PATCH 3.12 033/118] usb: xhci: Link TRB must not occur within a USB payload burst [NEW HARDWARE]

2014-01-17 Thread David Laight
From: walt > Oy, Sarah! ;) I put the ASMedia adapter in my older amd64 machine, and, well, > the stupid thing Just Works(TM) with kernel 3.12.7! (Yes, with the same disk > docking station, too.) > > I can't believe the adapter works perfectly in a different computer. Have you > seen this kind o

RE: PROBLEM: usbnet / ax88179_178a: Panic in usb_hcd_map_urb_for_dma

2014-01-17 Thread David Laight
From: Ming Lei > On Mon, Jan 13, 2014 at 9:26 PM, David Laight wrote: > >> > >> I believe all processing use the urb->num_sgs field to limit the number > >> of entries. Common interfaces like dma_map_sg() and for_each_sg() limit > >> their processing to

[PATCH] xhci: Fix use of 'reserved' command ring entries

2014-01-17 Thread David Laight
erved slot. If 'command_must_succeed' is set, only check that a single entry is available. Note that entries are not dynamically reserved and then consumed later. Initially one entry is reserved, later another is reserved for each active stream. Signed-off-by: David Laight --- drivers/usb/host/xhci-rin

RE: [PATCH 3.12 033/118] usb: xhci: Link TRB must not occur within a USB payload burst [NEW HARDWARE]

2014-01-20 Thread David Laight
From: > On 01/17/2014 06:34 AM, David Laight wrote: > > > Can you try the patch I posted that stops the ownership on LINK TRBs > > being changed before that on the linked-to TRB? > > Sadly, the patch didn't fix the ASMedia lockup behavior, however :( > > I

RE: [PATCH] xhci: make warnings greppable

2014-01-20 Thread David Laight
From: Sarah Sharp > This is fixed in the revised patch, David. Please read through the > entire thread before commenting, thanks. Sorry, I should have noticed that you said that you'd applied the 'checkpatch' fixes. I'm more or less forced to read these lists with outlook, it makes looking at th

RE: [PATCH 3.12 033/118] usb: xhci: Link TRB must not occur within a USB payload burst [NEW HARDWARE]

2014-01-20 Thread David Laight
From: walt > On 01/17/2014 06:34 AM, David Laight wrote: > > > Can you try the patch I posted that stops the ownership on LINK TRBs > > being changed before that on the linked-to TRB? > > Please disregard my earlier post about the patch not applying cleanly. > That wa

[PATCH] xhci: Pass the physical address to queue_trb() as a single u64

2014-01-20 Thread David Laight
values in the 64bit one, and use it is the one place where immediate data is passed. Signed-off-by: David Laight --- Patch is against 3.13.0-rc8 drivers/usb/host/xhci-dbg.c | 8 +- drivers/usb/host/xhci-ring.c | 166 ++ drivers/usb/host/xhci-tra

RE: [PATCH 3.12 033/118] usb: xhci: Link TRB must not occur within a USB payload burst [NEW HARDWARE]

2014-01-21 Thread David Laight
From: Sarah Sharp > On Mon, Jan 20, 2014 at 11:21:14AM +0000, David Laight wrote: ... > > A guess... > > > > In queue_bulk_sg_tx() try calling xhci_v1_0_td_remainder() instead > > of xhci_td_remainder(). > > Why? Walt has a 0.96 xHCI host controller, and the for

RE: xhci ASMedia lockups - a theory and a patch

2014-01-21 Thread David Laight
From: Sarah Sharp [ > On Thu, Jan 16, 2014 at 10:21:11AM +0000, David Laight wrote: > > From: David Laight > > > From: David Laight ... > > > Below is a possible patch, I've only compile tested it. > > > I've minimalised the patch by not removing

[PATCH v2] xhci: Don't trace all short/incomplete receives

2014-01-21 Thread David Laight
Don't trace short receives if URB_SHORT_NOT_OK is set. Short receives are normal for USB ethernet devices. Don't trace unexpected incomplete receives if XHCI_TRUST_TX_LENGTH is set. Ratelimit the trace. Signed-off-by: David Laight --- If these two traces ever happen, then they will

[PATCH 5/5] xhci: Simpify processing LINK TRBs when writing trb

2014-01-21 Thread David Laight
queue_trb(). The code never generates LINK TRB pointing to LINK TRB - so the loops in the old code are not needed. Similarly inc_enq() has never been called for event rings - so those checks aren't needed. Signed-off-by: David Laight --- drivers/usb/host/xhci-ring.c | 211

[PATCH 0/5] xhci: fixes/changes to trb writing code

2014-01-21 Thread David Laight
ll, but that opened another bag of worms. David Laight (5): xhci: Don't change the ownership of LINK TRB until all the TRB are written xhci: isoc transfers can't fail when partially queued - remove cleanup code. xhci: Pass the 'ep_ring' to prepare_transfer(). xhc

[PATCH 2/5] xhci: isoc transfers can't fail when partially queued - remove cleanup code.

2014-01-21 Thread David Laight
ning_total' check is just checking that the code is correct and can just be deleted now the code is working. Remove the 'flip_cycle' parameter to td_to_noop() since it is no longer ever set. Signed-off-by: David Laight --- drivers/usb/host/xhci-ring.c | 56 ---

[PATCH 3/5] xhci: Pass the 'ep_ring' to prepare_transfer()

2014-01-21 Thread David Laight
prepare_transfer() looks up the endpoint ring structure, however the caller already knows it. Save code and an error test that can never fail by passing the ring address instead of the stream_id. Signed-off-by: David Laight --- drivers/usb/host/xhci-ring.c | 18 +- 1 file

[PATCH 4/5] xhci: Don't pass TRB_CYCLE value to queue_trb()

2014-01-21 Thread David Laight
giveback_first_trb. There are no references left to ring->cycle_state or TRB_CYCLE (or 0x1 meaing TRB_CYCLE) in the code that generates TRB. Signed-off-by: David Laight --- drivers/usb/host/xhci-ring.c | 78 +++- 1 file changed, 5 insertions(+),

[PATCH 1/5] xhci: Don't change the ownership of LINK TRB until all the TRB are written

2014-01-21 Thread David Laight
TRB) on all the queue_trb() calls except the very last one. Signed-off-by: David Laight --- Note that this differs to any previous similar patches I've sent because it contains a fix to the isoc code. However I've only tsted it with USB3 ethernet. drivers/usb/host/xhci-ring.c | 84 ++

RE: [PATCH 3.12 033/118] usb: xhci: Link TRB must not occur within a USB payload burst [NEW HARDWARE]

2014-01-22 Thread David Laight
From: walt > On 01/21/2014 01:51 AM, David Laight wrote: > > From: Sarah Sharp > >> On Mon, Jan 20, 2014 at 11:21:14AM +, David Laight wrote: > > ... > >>> A guess... > >>> > >>> In queue_bulk_sg_tx() try calling xhci_v1_0_td_remai

RE: [PATCH v2] xhci: Don't trace all short/incomplete receives

2014-01-22 Thread David Laight
From: Sarah Sharp > On Tue, Jan 21, 2014 at 12:02:56PM +0000, David Laight wrote: > > Don't trace short receives if URB_SHORT_NOT_OK is set. > > Short receives are normal for USB ethernet devices. > > > > Don't trace unexpected incomplete receives if XHCI_TRUS

RE: 174c:5106 1 TB External USB 3.0 Drive Fails to Automount through USB 3.0 dock with XHCI Enabled

2014-01-22 Thread David Laight
From: Jay S > [2.] I have a 1 TB Western Digital drive in a USB 3.0 HDD dock that will > not automount while XHCI is enabled in the BIOS. If I disable XHCI in > the BIOS, it automounts normally. I've tried an external USB 3.0 > enclosure and two different brands of USB 3.0 HDD docks (that use > dif

RE: [PATCH] usb: host: xhci: fix HALTED endpoint handling

2014-01-22 Thread David Laight
From: Sarah Sharp ... > If it really matters that a driver be able to get an immediate -EPIPE > response back from a device when the endpoint is halted, I can rip the > code out of xhci_endpoint_reset() and make the driver manually clean up > the ring at the time of the stall, like it does for cont

RE: [PATCH v5 1/4] libusbg: Replace array lengths with defines

2014-01-22 Thread David Laight
From: Stanislaw Wadas > Replace hard coded value of 256 by two constant > defines, MAX_LENGTH and MAX_PATH_LENGTH Neither of those names is really very good. They probably ought to be prefixed with USBG_ Mind you the rest of the file isn't much better. There are also some 'char name[40];' And co

RE: [PATCH v2] xhci: Allocate the td array and urb_priv together.

2014-01-22 Thread David Laight
From: Sarah> Sharp > On Wed, Dec 18, 2013 at 11:24:47AM -, David Laight wrote: > > This saves a kzalloc() call on every transfer and some memory > > indirections. > > ... > Hi David, > > The patch looks good in general and applies fine. However, in testi

RE: [PATCH v6 2/4] libusbg: Add fputs()/fgets() error handling

2014-01-22 Thread David Laight
From: Stanislaw Wadas > Add error handling to fputs()/fgets() functions. ... > - fputs(buf, fp); > + if (fputs(buf, fp) == EOF) { > + ERROR("write error"); > + fclose(fp); > + return; > + } Pointless... Most code that looks at the return value of fpu

RE: [PATCH v6 4/4] libusbg: Add inline to gadget_write_string().

2014-01-22 Thread David Laight
From: Of Stanislaw Wadas > Add inline to gadget_write_string(). ... > -static void usbg_write_string(char *path, char *name, char *file, char *buf) > +static inline void usbg_write_string(char *path, char *name, char *file, > char *buf) > { > usbg_write_buf(path, name, file, buf); > } Why

RE: Max. libusb bulk send/receive values lowered with xhci?

2014-01-23 Thread David Laight
From: Jérôme Carretero > Hi Sarah, > > I was happily using big (10MB) buffers before, and with recent kernels, > when using USB3, I had to reduce the size of my buffers a lot. > By the way, I couldn't find any information on a maximum size for the > bulk transfers using libusb, maybe you know abou

RE: [PATCH 1/5] xhci: Don't change the ownership of LINK TRB until all the TRB are written

2014-01-23 Thread David Laight
From: Sarah Sharp > Hi David, > > I've been thinking about this some more, and I'd like to propose a much > simpler solution. > > The TD fragment rules didn't go into the xHCI specification until the > 1.0 revision. The code that follows those rules only seems to trigger > issues for 0.96 ASMedi

[PATCH] xhci: Don't add NOP TRB for aligned bulk sg transfers

2014-01-23 Thread David Laight
d-off-by: David Laight --- Note that this patch just allows large numbers of aligned fragments for bulk scatter-gather transfers. It doesn't remove the need for the patch that changes the way the ownership of the the first TRB is set in order to avoid the controller seeing 'dangling' L

xhci_urb_dequeue() and td_list bugs

2014-01-24 Thread David Laight
If you cancel an isoc urb that has multiple TD (I suspect this is most isoc urb) then (if I'm reading the code correctly) the urb completion routine is called for each TD, and the memory for each td_list entry is freed separately (even though they are allocated by a single kmalloc()). Neither of th

RE: [PATCH] xhci: Don't add NOP TRB for aligned bulk sg transfers

2014-01-24 Thread David Laight
From: David Laight > Transfer requests for usb disks can contain a large number of 4k fragments. > Assume that it doesn't matter if there are LINK TRB in fragment lists > that are 1k aligned. > > This should stop errors when transfer requests for usb disks contain > more

Many USB ethernet devices are broken over xhci

2014-01-27 Thread David Laight
Many of the net/usb ethernet drivers (including common ones like the smsc95xx) will fail to transmit all packet length properly when connected to a USB3 port (ie using the xhci driver). The underlying problem is that they assume the host controller will honour the URB_ZERO_PACKET flag - which usbn

RE: Max. libusb bulk send/receive values lowered with xhci?

2014-01-27 Thread David Laight
From: Jérôme Carretero > I was happily using big (10MB) buffers before, and with recent kernels, > when using USB3, I had to reduce the size of my buffers a lot. > By the way, I couldn't find any information on a maximum size for the > bulk transfers using libusb, maybe you know about that also ? >

RE: [PATCH] tools: usb: aio example applications

2014-01-28 Thread David Laight
From: Robert Baldyga > This patch adds two example applications showing usage of Asynchronous I/O API > of FunctionFS. First one (aio_simple) is simple example of bidirectional data > transfer. Second one (aio_multibuff) shows multi-buffer data transfer, which > may to be used in high performance a

RE: [PATCH] tools: usb: aio example applications

2014-01-28 Thread David Laight
From: Michal Nazarewicz > On Tue, Jan 28 2014, David Laight wrote: > > From: Robert Baldyga > >> This patch adds two example applications showing usage of Asynchronous I/O > >> API > >> of FunctionFS. First one (aio_simple) is simple example of bidirectional

RE: xhci regression since "xhci: replace xhci_write_64() with writeq()" - devices not detected

2014-01-29 Thread David Laight
From: Of Bjørn Mork > Rafal Milecki writes: > > > Hi, > > > > This is report from my Samsung NP700G7A-S01PL. This notebook has two > > USB 2.0 ports and two 3.0 ports. > > > > Starting with the following commit: > > > > commit 7dd09a1af2c7150269350aaa567a11b06e831003 > > Author: Xenia Ragiadakou

RE: xhci regression since "xhci: replace xhci_write_64() with writeq()" - devices not detected

2014-01-29 Thread David Laight
From: Xenia Ragiadakou > On 29/01/2014 12:08 μμ, Rafał Miłecki wrote: > > 2014-01-29 David Laight : > >>> Maybe I misunderstand something, but won't that commit end up replacing > >>> the previous pair of writel() with a single native writeq() on 64bit >

RE: [PATCH v2] tools: usb: aio example applications

2014-01-29 Thread David Laight
From: Robert Baldyga > This patch adds two example applications showing usage of Asynchronous I/O API > of FunctionFS. First one (aio_simple) is simple example of bidirectional data > transfer. Second one (aio_multibuff) shows multi-buffer data transfer, which > may to be used in high performance

RE: [PATCH v2] tools: usb: aio example applications

2014-01-29 Thread David Laight
From: Michal Nazarewicz > On Wed, Jan 29 2014, Robert Baldyga wrote: > > + /* open endpoint files */ > > ep_path = malloc(strlen(argv[1]) + 4 /* "/ep#" */ + 1 /* '\0' */); > if (!ep_path) { > perror("malloc"); > return 1; > } > > At this point you

[PATCH v3 0/9] xhci: Add support for URB_ZERO_PACKET

2014-01-29 Thread David Laight
sted on an Intel v1.00 controller with the ax88179_178a and smsc95xx ethernet controller (the former patched so that it needs the ZLP). Verifying with extra traces that the ZLP are sent for ping -s $((1024-0x32)) (and 512-0x32 for the smsc95xx - which has the same red tape length). David Laight (

[PATCH v3 2/9] xhci: Minor cleanups to queue_bulk_sg_tx()

2014-01-29 Thread David Laight
x27; and to check for the last fragment (instead of num_trbs - which is now only used for the call to prepare_transfer(). - No need to pass 'more_trbs_coming' to queue_trb(), it is implied if TRB_CHAIN is set. - Finish the loop when we failed to set TRB_CHAIN. Sign

[PATCH v3 3/9] xhci: Use a fast upper bound for the number of TRB for a SG request

2014-01-29 Thread David Laight
we can only add LINK TRB at aligned offsets) If the upper bound won't fit in the current segment, then calculate the actual number or fragments (more efficiently than before). Ignore zero-length non-terminal fragments. Signed-off-by: David Laight --- drivers/usb/host/xhci-ring.c

[PATCH v3 4/9] xhci: Simplify setting of TRB type and flags in queue_bulk_sg_tx()

2014-01-29 Thread David Laight
The TRB type and flags are the same for all the TRB expect the first (which needs the opposite value of TRB_CYCLE) and the last (which needs TRB_CHAIN clear and TRB_IOC set). So move the code that sets it up outside the loop. Signed-off-by: David Laight --- drivers/usb/host/xhci-ring.c | 48

[PATCH v3 5/9] xhci: Move fragment length calculation to top of loop in queue_bulk_sg_tx()

2014-01-29 Thread David Laight
The calculation done for the first fragment is exactly the same as the one for subsequent fragments. So move both versions to inside the loop at the top. Simplify the calculation for the distance to the next 64k boundary. Remove the never-checked 'num_sgs'. Signed-off-by: Da

[PATCH v3 1/9] xhci: Remove debug code

2014-01-29 Thread David Laight
The check_trb_math() function and the check for sg buffers crossing 64k boundaries are checks that the local function is correct. Since the code is correct they can be removed. Signed-off-by: David Laight --- drivers/usb/host/xhci-ring.c | 26 -- 1 file changed, 26

[PATCH v3 7/9] xhci: Add support for URB_ZERO_PACKET to queue_bulk_sg_tx()

2014-01-29 Thread David Laight
d-off-by: David Laight --- drivers/usb/host/xhci-ring.c | 29 ++--- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c index afd8eeb..1324bb0 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb

[PATCH v3 6/9] xhci: Use a much simpler algorithm for td_size on 1.0 hosts

2014-01-29 Thread David Laight
the value can be calculated much more easily. Signed-off-by: David Laight --- drivers/usb/host/xhci-ring.c | 34 ++ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c index bf9a20f..afd8eeb

[PATCH v3 8/9] xhci: Common up setup of normal and scatter-gather transfers

2014-01-29 Thread David Laight
Modify the code in queue_bulk_sg_tx() to support non-sg transfers. Rename it xhci_queue_bulk_tx() and delete the old xhci_queue_bulk_tx(). Signed-off-by: David Laight --- drivers/usb/host/xhci-ring.c | 159 --- 1 file changed, 15 insertions(+), 144

[PATCH v3 9/9] xhci: Add num_trbs_for_buf() to count trbs needed for a buffer fragment

2014-01-29 Thread David Laight
The number of trbs depends on the number of 64k boundaries crossed. Using a common function saves there being any typos in the 3 places it is used. Signed-off-by: David Laight --- drivers/usb/host/xhci-ring.c | 18 -- 1 file changed, 12 insertions(+), 6 deletions(-) diff --git

RE: Many USB ethernet devices are broken over xhci

2014-01-29 Thread David Laight
From: Greg KH > On Mon, Jan 27, 2014 at 04:06:22PM +0000, David Laight wrote: > > Many of the net/usb ethernet drivers (including common ones like > > the smsc95xx) will fail to transmit all packet length properly > > when connected to a USB3 port (ie using the xhci driver)

RE: [PATCH 1/5] xhci: Don't change the ownership of LINK TRB until all the TRB are written

2014-01-29 Thread David Laight
From: Sarah Sharp > On Wed, Jan 22, 2014 at 03:22:53PM -0800, walt wrote: > > On 01/22/2014 12:56 PM, Sarah Sharp wrote: > > > Walt, can you turn on xHCI debugging and look for whether the NEC host > > > that worked with David's patch is a 1.0 host? You'll see a line like: > > > > > > // @%p = 0x%

RE: [PATCH 1/5] xhci: Don't change the ownership of LINK TRB until all the TRB are written

2014-01-29 Thread David Laight
From: Sarah Sharp > Hi David, > > I've been thinking about this some more, and I'd like to propose a much > simpler solution. > > The TD fragment rules didn't go into the xHCI specification until the > 1.0 revision. The code that follows those rules only seems to trigger > issues for 0.96 ASMed

FW: xhci ASMedia lockups - a theory and a patch

2014-01-29 Thread David Laight
node.on.net] > Sent: 21 January 2014 02:34 > To: David Laight > Subject: Re: xhci ASMedia lockups - a theory and a patch > > On Thursday 16 January 2014 08:59:34 you wrote: > > > I've been having problems with a ax88179_178a locking up the whole host > > > whe

RE: Help testing for USB ethernet/xHCI regression

2014-01-30 Thread David Laight
From: Sarah Sharp > > Current issue is when plugging in the ax88179 there is lag when bringing the > > interface up and a bunch of kernel messages: > > With which kernel? I saw similar issues testing some patches yesterday. Both with the ax179_178a and smsx95xx cards (connected to xhci). My kerne

RE: Help testing for USB ethernet/xHCI regression

2014-01-30 Thread David Laight
From: Sarah Sharp > On Tue, Jan 28, 2014 at 11:30:51PM -0500, Mark Lord wrote: > > On 14-01-28 03:30 PM, Sarah Sharp wrote: > > .. > > > Can you please pull this branch, which contains a 3.13 kernel with > > > David's patch reverted, and test whether your USB ethernet device works > > > or fails? >

RE: xhci regression since "xhci: replace xhci_write_64() with writeq()" - devices not detected

2014-01-30 Thread David Laight
From: Sarah Sharp > On Wed, Jan 29, 2014 at 12:50:04PM +0200, Xenia Ragiadakou wrote: > > > > Like Bjørn already pointed out, I think too the problem is that the > > USB3.0 host controller does not support 64 bit addressing (this can > > be seen from the first bit of HCC PARAMS that is 0) but the p

RE: [PATCH v3] tools: usb: aio example applications

2014-01-30 Thread David Laight
From: Robert Baldyga This patch adds two example applications showing usage of Asynchronous I/O API > of FunctionFS. First one (aio_simple) is simple example of bidirectional data > transfer. Second one (aio_multibuff) shows multi-buffer data transfer, which > may to be used in high performance app

RE: [RFCv2 00/10] xhci: re-work command queue management

2014-01-30 Thread David Laight
From: Mathias Nyman > Only changes since v1 are fixing smatch warnings and errors. > patch 01/10 > Check for null return from alloc_command, release lock in error path and > don't dereference possible null pointer in error path. > > patch 04/10 > release lock in xhci_stop_dev() err

RE: xhci regression since "xhci: replace xhci_write_64() with writeq()" - devices not detected

2014-01-30 Thread David Laight
From: Xenia Ragiadakou > On 30/01/2014 11:21 πμ, Rafał Miłecki wrote: > > 2014-01-29 Xenia Ragiadakou : > >> Rafał is it possible to send all the "bad" output with xhci debugging on? > >> Since your config file shows that dynamic debugging is on, that would be > >> easy to do by adding dyndbg='modu

[PATCH RFC 0/1] usb: Tell xhci when usb data might be misaligned

2014-01-30 Thread David Laight
et. It is important that all these patches be applied together. More specifically the change xhci-ring.c must be applied AFTER the change to usbnet.c. Failure to do so will break some configurations including those using the ax88179_178a usb ethernet on hosts with the Intel Panther Point chipset (which

[PATCH RFC 1/1] usb: Tell xhci when usb data might be misaligned

2014-01-30 Thread David Laight
x27; scatter-gather lists. But and the moment the former is (more or less) required to be infinite, and the limit of the latter won't be reached by any code that sets the flag. Signed-off-by: David Laight --- drivers/net/usb/usbnet.c | 1 + drivers/usb/host/xhci-ring.c | 12

RE: [PATCH RFC 1/1] usb: Tell xhci when usb data might be misaligned

2014-01-30 Thread David Laight
From: Peter Stuge ... > > code using libusb can generate arbitrarily long transfers that usually > > get split into 8k fragments. > > libusb splits transfers into 16k urbs, or doesn't with newer code > when both kernel and libusb support scatter-gather. > > > In fact libusb always uses 8k fragme

RE: FW: xhci ASMedia lockups - a theory and a patch

2014-01-30 Thread David Laight
From: Sarah Sharp > On Wed, Jan 29, 2014 at 03:48:27PM +0000, David Laight wrote: > > I've decided to forward this to the list. > > If you read further down he says that my patch makes the operation > > of the ax88179_178a stable - once the system has recognised

RE: [PATCH RFC 1/1] usb: Tell xhci when usb data might be misaligned

2014-01-31 Thread David Laight
From: Peter Stuge > But what about that alignment? It seems that userspace > needs to start caring about alignment with xhci, right? No because there is a copy_to/from_user() in the middle. The ehci/ohci/uhci all require that fragments be a multiple of the usb message size (512 bytes for USB2). S

RE: [PATCH RFC 1/1] usb: Tell xhci when usb data might be misaligned

2014-01-31 Thread David Laight
From: Sarah Sharp > We need to step back and reassess the larger picture here, instead of > trying to fire-fight all the regressions caused by the link TRB commit > (35773dac5f86 "usb: xhci: Link TRB must not occur within a USB payload > burst"). Some of the breakage seems to have been related to

RE: [PATCH RFC 1/1] usb: Tell xhci when usb data might be misaligned

2014-01-31 Thread David Laight
From: Peter Stuge [mailto:pe...@stuge.se] > > Userspace doesn't care since everything gets copied into aligned > > kernel fragments - otherwise the other usb controllers wouldn't work. > > OK, but not so great if someone wants to squeeze the most performance > possible out of USB also from userspa

RE: [PATCH RFC 1/1] usb: Tell xhci when usb data might be misaligned

2014-01-31 Thread David Laight
From: Sarah Sharp > On Thu, Jan 30, 2014 at 10:50:21PM +0100, Bjørn Mork wrote: > > FWIW, the plan looks fine to me. Just adding a couple of hints to > > simplify the implementation. > > > > Sarah Sharp writes: > > > > > Let's do this fix the right way, instead of wall papering over the > > > iss

ASMedia xhci controller errors

2014-01-31 Thread David Laight
oller registers Some controllers (eg ASMedia) do not support 64 bit accesses to their internal registers even though they are 64bit capable. 32bit transfers in the correct order. Signed-off-by: David Laight --- drivers/usb/host/xhci.h | 40 1 file change

RE: [RFT] usb: Disable Link PM if setting device-initiated timeout fails.

2014-01-31 Thread David Laight
From: Sarah Sharp > Yoma, can you apply this patch and see if it helps your issue? Helped a lot on my amd system with the ASMedia controller. David ... > > diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c > > index 64ea21971be2..74a69b887346 100644 > > --- a/drivers/usb/core/

RE: [RFT] usb: Disable Link PM if setting device-initiated timeout fails.

2014-01-31 Thread David Laight
From: David Laight > From: Sarah Sharp > > Yoma, can you apply this patch and see if it helps your issue? > > Helped a lot on my amd system with the ASMedia controller. I lied :-) Sometimes it is detected at 480MB - in which case it comes up immediately. Other times it is detecte

RE: [PATCH RFC 1/1] usb: Tell xhci when usb data might be misaligned

2014-02-03 Thread David Laight
From: Mark Lord > On 14-02-01 09:18 AM, Ming Lei wrote: > > > > Even real regressions are easily/often introduced, and we are discussing > > how to fix that. I suggest to unset the flag only for the known buggy > > controllers. > > It is not the controllers that are particularly "buggy" here. > Bu

RE: xhci and other woes

2014-02-03 Thread David Laight
From: renev...@internode.on. > Hello guys, > > At this point it just looks like I have 2 problems: > > 1> The AX88179 won't initialize and operate properly when connected via the > Asmedia 1042 (at least on my ASUS AMD 990FX based system) this appears to go > back to at least kernel version 3.11

RE: xhci and other woes

2014-02-03 Thread David Laight
From: David Laight > From: renev...@internode.on. > But there are also further issues I'm about to look at. > Short 'ping' requests work, but a 'netperf' tcp rr test with 8k blocks > (which probably generates sg transmits) fails generating some > 'TR

RE: xhci and other woes

2014-02-03 Thread David Laight
From: David Laight > From: David Laight > > From: renev...@internode.on. > > But there are also further issues I'm about to look at. > > Short 'ping' requests work, but a 'netperf' tcp rr test with 8k blocks > > (which probably generates sg t

usb interrupt storms from the ax88179 hardware

2014-02-03 Thread David Laight
On one system (an amd motherboard with the ASMedia xhci controller) I'm seeing almost back to back USB (7 or 8 a second) 'interrupt' packets from an ax88179 Ge card. It may be that other systems behave similarly. I'm sure this hadn't used to happen! I don't know what the interrupt status means, th

RE: [BUGREPORT] Linux USB 3.0

2014-02-04 Thread David Laight
From: Markus Rechberger > >> Dec 27 23:23:50 solist kernel: [ 36.118245] xhci_hcd :00:14.0: ERROR > >> Transfer event TRB DMA > ptr > > > > These messages might be harmless. The 3.0 kernel contains a fix for > > Intel Panther Point xHCI hosts that suppresses those messages, commit > > ad808

ax88179_178a problems on ASMedia xhci controller

2014-02-04 Thread David Laight
I've spent most of the day adding traces to the usbnet, xhci-ring and ax88179_178a code to try to find out why the link doesn't come up quickly. I've just found out something significant that someone else might like to try and repeat. If I add a trace print to xhci_queue_control_tx() is all seems

RE: [RFCv2 00/10] xhci: re-work command queue management

2014-02-05 Thread David Laight
From: Dan Williams > > Adding another list that will have its own set of bugs seems retrograde top > > me. > > What bugs? Please be specific. The problem to be addressed is not > the allocation of commands, but that timeouts of one command eat the > timeout periods of subsequent commands. I'm

RE: xhci and other woes

2014-02-05 Thread David Laight
From: Mark Lord > >> Which means that the controller is obeying the rules, and the software is > >> wrong. > .. > > In this case, the bug has been worked around (not perfectly), but we've > > had no customer reports that this is an issue. There is no user-visible > > impact as far as we know. S

RE: PROBLEM: XHCI Host Controller on Intel Panther Point with CDC/ACM dead after massive NAK

2014-02-05 Thread David Laight
From: Kasberger Andreas > What is still puzzling me is the fact that the host controller stops any > communication. > That means there is really electrically no communication (bulk_out) from HC > to device anymore. It > seems that the host controller has shut down communication port to one > par

RE: [RFT 1/2] xhci 1.0: Limit arbitrarily-aligned scatter gather.

2014-02-05 Thread David Laight
From: Sarah Sharp > xHCI 1.0 hosts have a set of requirements on how to align transfer > buffers on the endpoint rings called "TD fragment" rules. When the > ax88179_178a driver added support for scatter gather in 3.12, with > commit 804fad45411b48233b48003e33a78f290d227c8 "USBNET: ax88179_178a:

RE: xhci and other woes

2014-02-05 Thread David Laight
From: renev...@internode.on.net > Messing with the Realtek nic driver didn't work my pc crashed soon after. > > > It looks like i've hit on a stable combination at the moment. It's looking > like either... > > * Passing "nomsi" as a kernel parameter has worked somehow, when doing > /proc/interru

RE: xhci and other woes

2014-02-05 Thread David Laight
From: renev...@internode.on. > I got a feeling if I plug the nic into the Asmedia again i'm still going to > get a bunch of kevent 4 spam. Did you see my message about those yesterday? Try adding a printk() to the usbnet_write_cmd_async() code paths called from ax88179's set_multicast code. I f

<    1   2   3   4   5   6   >