[PATCH 00/37] usb: host: xhci: big cleanup series

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

 



Hi Mathias,

Here's a resend of my previous series. This time I've added a few more
patches which I have been working on and also cherry-pick three old
patches which have been pending since May this year.

Note, in particular, the work done for XHCI tracers which will help us a
lot on debugging sessions.

Note, also, that we're starting to save a lot of memory with XHCI after
these patches. Only allocating memory for slots which we support,
instead of default to static 256 entry arrays.

There's still a lot of work to be done, but I suppose this is a step in
the right direction.

I've been running these patches for several weeks now using SKL most of
the time. Tested with our tree of devices we have in the office. Mass
Storage, mouse, keyboard, cameras, all still working fine.

While testing, I've found a regression on v4.10-rc1 (vanilla), btw. One
of the devices in our tree dies after 5 consecutive USB Resets are
driven on the bus. Not sure if this is a problem with the device, but on
a different laptop with i5-4200U (Broadwell?) running v4.4 the same test
works fine. I'm building v4.10-rc1 to see if the devices fails with
Broadwell too.

Anyway, please consider taking these patches to v4.11 merge window.

cheers

Felipe Balbi (37):
  usb: host: xhci: dynamically allocate devs array
  usb: host: xhci: handle COMP_STOP from SETUP phase too
  usb: host: xhci: change pre-increments to post-increments
  usb: host: xhci: print HCIVERSION on debug
  usb: host: xhci: rename completion codes to match spec
  usb: host: xhci: WARN on unexpected COMP_SUCCESS
  usb: host: xhci: WARN() if we interrupt without event_ring
  usb: host: xhci: simplify irq handler return
  usb: host: xhci: clear only STS_EINT
  usb: host: xhci: remove unneded semicolon
  usb: host: xhci: use slightly better list helpers
  usb: host: xhci: major rewrite of process_ctrl_td()
  usb: host: xhci: major rewrite of process_bulk_intr_td()
  usb: host: xhci: cleanup finish_td()
  usb: host: xhci: reorder variable definitions
  usb: host: xhci: introduce xhci_td_cleanup()
  usb: host: xhci: remove bogus __releases()/__acquires() annotation
  usb: host: xhci: check for a valid ring when unmapping bounce buffer
  usb: host: xhci: unconditionally call xhci_unmap_td_bounce_buffer()
  usb: host: xhci: don't try to mask critical errors
  usb: host: xhci: remove debug argument from trb_in_td()
  usb: host: xhci: remove unnecessary list_for_each_entry_safe()
  usb: host: xhci: introduce helper to convert a single TRB in no-op
  usb: host: xhci: use trb_to_noop() from xhci_handle_stopped_cmd_ring()
  usb: host: xhci: simplify implementation of trb_in_td()
  usb: host: xhci: avoid code duplication
  usb: host: xhci: convert to list_for_each_entry_safe()
  usb: host: xhci: mark trb_in_td() static
  usb: host: xhci: combine event TRB completion debugging messages
  usb: host: xhci: make a generic TRB tracer
  usb: host: xhci: add urb_enqueue/dequeue/giveback tracers
  usb: host: xhci: switch to running avg trb length
  usb: host: xhci: convert several if() to a single switch statement
  usb: host: xhci: refactor xhci_hub_control()
  usb: host: xhci: remove newline from tracer
  usb: host: xhci: add xhci_virt_device tracer
  usb: host: xhci: dynamically allocate dcbaa

 drivers/usb/host/xhci-dbg.c      |  22 +-
 drivers/usb/host/xhci-ext-caps.h |   2 +-
 drivers/usb/host/xhci-hub.c      | 659 +++++++++++++++++++++----------------
 drivers/usb/host/xhci-mem.c      | 268 +++++----------
 drivers/usb/host/xhci-ring.c     | 695 +++++++++++++++++++--------------------
 drivers/usb/host/xhci-trace.h    | 184 +++++++++--
 drivers/usb/host/xhci.c          |  68 ++--
 drivers/usb/host/xhci.h          | 509 +++++++++++++++++++++++-----
 8 files changed, 1421 insertions(+), 986 deletions(-)

-- 
2.11.0

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



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

  Powered by Linux