- 01 Feb, 2003 2 commits
-
-
Duncan Sands authored
speedtouch: add a new encoding function, atmsar_encode. Calling it amounts to doing atmsar_encode_aal5 followed by atmsar_encode_rawcell in one fell swoop. It eliminates the need for intermediate buffers and reduces memory movement. The following patches use it to simplify the send logic (and get rid of those annoying little oopsen).
-
David Brownell authored
This should apply to 2.5.59 too. It seems to get rid of some pesky hangs, on at least some hardware, but I won't have time to test it on either VIA version ... maybe someone else will make the time? :) New QH state prevents a re-activation race - nobody can un-halt a qh before its cleanup is done - resubmit-from-completion had this race (some usbtest cases) as could some normal submit paths on busy endpoints (storage) - faster controllers would trip on this more consistently Queues of qtds - work harder to avoid ever modifing any qh in software - short reads block queue advance much less often - be more cautious with large (>~19KB) unaligned buffers Unlinking urbs - if qtd unlinked is at queue head, use its latest status (main effect is reporting bytes from partial transfers) - another new qh state: defer qh unlink if IAA is busy (eliminates a busy-wait loop in a rare scenario) Enable features to improve bus utilization - PCI MWI ... can produce better write throughput; and by using right cacheline size, sometimes read throughput too - USB NAK throttle ... sometimes reduces PCI access rates Other - async dump shows more funky qh+qtd states, and NAK count - cope with with some of the sprintf wierdness - periodic dump is usually smaller (so is that schedule) - minor cleanups
-
- 29 Jan, 2003 2 commits
-
-
Vojtech Pavlik authored
-
Vojtech Pavlik authored
Normally the CDC ACM devices have an subclass of 0, and the ACM subclass is only applied to their first interface. But some have the subclass set on the device itself, namely Motorola mobile phones. This patch takes those devices into account.
-
- 28 Jan, 2003 3 commits
-
-
David Brownell authored
The support for non-dma HCDs is likely the most interesting bit here. - makes dma calls behave sensibly when used with host controllers that don't use dma (including sl811). usb_buffer_map() is a nop while scatterlist dma mappings fail (as they must). - make usb_sg_init() behave sensibly when used with non-dma hcs. the urbs are initted with transfer_buffer, not transfer_dma. this is the higher level analogue to usb_buffer_map(), so it needs to succeed unless there's a Real Error (tm). - moves two compatibility inlines from ehci.h into hcd.h so it'll be more practical to have the other hcds work in other environments (notably lk 2.4) too - remove URB_TIMEOUT_KILLED flag ... no device driver tests it; hcds don't really (uhci sets it, never reads it; sl811 doesn't enable the path that might set it), and it's not well defined. if any hcd needs such state, keep it in hc-private storage. - in usb_sg_wait(), use yield() instead of schedule() to let other activities free resources needed to continue. (This was noted recently by Oliver.)
-
David Brownell authored
This is a minor cleanup to let per-request memory allocations block, when the caller allows (it provided the bitmask). The driver used to work that way until something like 2.4.3; an update (a few months back) to how the "dma_addr_t" hashes to a "struct ohci_td *" lets us simplify things again. Another benfit: it blocks irqs for less time on the submit path. (The ehci driver already acts this way.)
-
Petko Manolov authored
Some ethernet drivers other than those in .../drivers/net need generic MII code too and this cset shows how we do it for .../drivers/usb/net; For now only pegasus.c is using this feature, but as soon as we find more MII compliant controllers we'll put them in Makefile.mii too. Note: drivers which use the generic mii routines should bracket the code with #ifdef CONFIG_MII #endif since CONFIG_MII may not be present. See pegasus.c for more details.
-
- 21 Jan, 2003 8 commits
-
-
Henning Meier-Geinitz authored
This patch adds vendor/product ids for Artec, Canon, Compaq, Epson, HP, and Microtek scanners. Further more, the device list was cleaned up, sorted and duplicated entries have been removed.
-
Duncan Sands authored
speedtouch: simplify the receive urb lifecycle: allocate them in the usb probe function, free them on disconnect.
-
Duncan Sands authored
speedtouch: turn a micro race into a nano race. The race is that an ATM device can be used the moment atm_dev_register returns, but you only get to fill out the atm_dev structure after atm_dev_register returns (this is a design flaw in the ATM layer). Thus there is a small window during which you can be called with an incompletely set up data structure. Workaround this by causing all ATM callbacks to fail if the dev_data field has not been set. There is still a nano race if writing/reading the dev_data field is not atomic. Is it atomic on all architectures?
-
Duncan Sands authored
speedtouch: rework udsl_usb_probe error handling (for example, handle failure of atm_dev_register). Do some trivial cleaning up while we're at it.
-
Duncan Sands authored
speedtouch: roll udsl_atm_startdevice into udsl_usb_probe.
-
Duncan Sands authored
speedtouch: use an array for rcvbufs rather than a pointer and dynamic allocation.
-
Duncan Sands authored
speedtouch: roll udsl_atm_set_mac into udsl_usb_probe.
-
Duncan Sands authored
speedtouch: trivial whitespace and debug message changes.
-
- 17 Jan, 2003 4 commits
-
-
Ganesh Varadarajan authored
Added ids for the Dell Axim and Toshiba E740. Thanks to Ian Molton and B.I.
-
Duncan Sands authored
speedtouch: restore use of MODULE_DEVICE_TABLE to export usb info. There may have been a problem with older 2.4 kernels, but there is none now.
-
David Brownell authored
Someone changed the "get string" logic to use short reads, not long ones, a while back. That broke many root hub string accesses (not through tools like "lsusb"!) because that logic didn't handle short reads quite right.
-
Greg Kroah-Hartman authored
into kroah.com:/home/greg/linux/BK/gregkh-2.5
-
- 16 Jan, 2003 21 commits
-
-
Linus Torvalds authored
-
-
Russell King authored
__virt_to_bus/__bus_to_virt depended on INTEGRATOR_HDR0_SDRAM_BASE Unfortunately, this is defined in arch-integrator/platform.h, and we really don't want to include it in memory.h. We instead use BUS_OFFSET, which will eventually depend on the CPU number in the system.
-
Russell King authored
Only default BLK_DEV_IDEDMA on BLK_DEV_IDEDMA_ICS if ARCH_ACORN is set, not if ARM is set. There are PCI ARM systems out there!
-
Russell King authored
Ensure that we clean up properly after initialisation error, releasing all claimed resources in an orderly manner and returning the correct error code.
-
Russell King authored
-
Russell King authored
-
Russell King authored
-
Russell King authored
-
Russell King authored
Add cfbfillrect / cfbcopyarea / cfbimgblt objects for SA1100fb. Remove redundant "pm" member.
-
Greg Kroah-Hartman authored
-
Jeff Wiedemeier authored
Found a buglet in the marvel code -- doesn't change the number of IRQS just the logic to get there.. This applies on top of the other marvel code. /jeff
-
Richard Henderson authored
into kanga.twiddle.net:/home/rth/linux/axp-2.5
-
Richard Henderson authored
-
Richard Henderson authored
to header files where they belong.
-
Richard Henderson authored
of AGP and SRMCONS patches.
-
Richard Henderson authored
From Jeff.Wiedemeier@hp.com.
-
Richard Henderson authored
(Titan / Marvel), Kconfig and headers. From Jeff Wiedemeier.
-
Martin J. Bligh authored
Patch from Erich Focht This adds a hook to rebalance globally across nodes every NODE_BALANCE_RATE iterations of the rebalancer. This allows us to easily tune on an architecture specific basis how often we wish to rebalance - machines with higher NUMA ratios (more expensive off-node access) will want to do this less often. It's currently set to 100 for NUMA-Q and 10 for other machines. If the imbalance between nodes is > 125%, we'll rebalance them. The hook for this is added to the NUMA definition of cpus_to_balance, so again, no impact on non-NUMA machines.
-
Martin J. Bligh authored
Patch from Michael Hohnbaum This adds a hook, sched_balance_exec(), to the exec code, to make it place the exec'ed task on the least loaded queue. We have less state to move at exec time than fork time, so this is the cheapest point to cross-node migrate. Experience in Dynix/PTX and testing on Linux has confirmed that this is the cheapest time to move tasks between nodes. It also macro-wraps changes to nr_running, to allow us to keep track of per-node nr_running as well. Again, no impact on non-NUMA machines.
-
Martin J. Bligh authored
Patch from Martin J. Bligh This adds a small hook to the find_busiest_queue routine to allow us to specify a mask of which CPUs to search over. In the NUMA case, it will only balance inside the node (much cheaper to search, and stops tasks from bouncing across nodes, which is very costly). The cpus_to_balance routine is conditionally defined to ensure no impact to non-NUMA machines. This is a tiny NUMA scheduler, but it needs the assistance of the second and third patches in order to spread tasks across nodes.
-