-
David Brownell authored
This patch cleans up some messy parts of this driver, and was pleasantly painless. - gets rid of ED dma hashtables * less memory needed * also less (+faster) code * ... rewrites all ED scheduling ops, they now use cpu addresses, like EHCI and UHCI do already - simplifies ED scheduling (no dma hashtables) * control and bulk lists are now doubly linked * periodic tree still singly linked; driver uses a new CPU view "shadow" of the hardware framelist * previous periodic code was cryptic, almost read-only * simpler tree code for EDs with {branch,period} - bugfixes periodic scheduling * when CONFIG_USB_BANDWIDTH, checks per-frame load against the limit; no more dodgey accounting * handles iso period != 1; interrupt and iso schedule EDs with the same routine (HW sees special TDs) * credit usbfs with bandwidth for endpoints, not URBs - adds driverfs output (when CONFIG_USB_DEBUG) * resembles EHCI: 'async' (control+bulk) and 'periodic' (interrupt+iso) files show schedules * shows only queue heads (EDs) just now (*) - has minor text and code cleanups, etc Now that this logic has morphed into more comprehensible form, I know what to borrow into the EHCI code! (*) It shows TDs on the td_list, but this patch won't put them there. A queue fault handling update will.
b92eb850