- 14 Oct, 2002 1 commit
-
-
Ivan Kokshaysky authored
Thanks David Miller, Jay Estabrook and Richard Henderson for reviewing the patch and for corrections. Description: The ISA dma falls into 2 classes. 1. True busmastering (aka DMA_MODE_CASCADE) when the ISA device generate bus addresses by itself. Obviously, such devices are limited to lower 16 Mb as there are only 24 address lines on the ISA bus. Drivers for these devices pass NULL pdev argument to pci mapping functions, and we must always use dma_mask = 0x00ffffff in this case. 2. ISA devices using i8237 DMA controller functionality: floppy, all soundcards (AFAIK) and a lot of other cheap ISA cards. In this case actual device doing DMA is a PCI-to-ISA bridge. Quite a few of ISA bridges can do 32-bit DMA (using "high page" extensions), and alpha traditionally uses this. I propose the following: introduce 'struct pci_dev *isa_bridge' global variable; this will be pointer to either real bridge device found by pci probing code, or a fake device in special cases (like jensen running generic kernel). isa_bridge->dma_mask will be set depending on DMA capabilities of particular bridge (either using generic quirk list or in an arch specific manner). This would allow devices like floppy and audio utilize 32-bit DMA just by replacing 'NULL' with 'isa_bridge' in the pci mapping calls. Also, this helps to resolve ISA dma vs. MAX_DMA_ADDRESS mess on alpha. Setting MAX_DMA_ADDRESS depending on the number of address lines on the ISA bridge became bogus since early 2.4 when we started to use the SG windows. Basically, if we have a working iommu, we don't have any dma limitations. All we need is a correct dma_mask to choose proper dma window. OTOH, there are 'iommuless' alphas (rx164, nautilus, possibly early miata) which need to have 16 Mb GFP_DMA zone (just like i386) even if their ISA bridge is 32-bit. Proposed changes: - rename all XXX_MAX_DMA_ADDRESS to XXX_MAX_ISA_DMA_ADDRESS; alpha_mv.max_dma_address - ditto (it's about 90% of the patch); - ISA bridge on nautilus does support 32-bit dma; - MAX_DMA_ADDRESS is 16 Mb if there is no iommu, ~0UL (unlimited) otherwise; - if needed, fall back to GFP_DMA allocations in pci_alloc_consistent(); - pci_dma_supported() also returns success if GFP_DMA is helpful; - isa_bridge stuff. Used only by floppy as yet. Ivan.
-
- 13 Oct, 2002 39 commits
-
-
bk://linuxusb.bkbits.net/linus-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Andrew Morton authored
This patch from Christoph Hellwig removes the kiobuf/kiovec infrastructure. This affects three subsystems: video-buf.c: This patch includes an earlier diff from Gerd which converts video-buf.c to use get_user_pages() directly. Gerd has acked this patch. LVM1: Is now even more broken. drivers/mtd/devices/blkmtd.c: blkmtd is broken by this change. I contacted Simon Evans, who said "I had done a rewrite of blkmtd anyway and just need to convert it to BIO. Feel free to break it in the 2.5 tree, it will force me to finish my code." Neither EVMS nor LVM2 use kiobufs. The only remaining breakage of which I am aware is a proprietary MPEG2 streaming module. It could use get_user_pages().
-
Andrew Morton authored
From Anton Blanchard. This fixes a couple of Linux Test Project failures. - Returns EBUSY if the caller is trying to invalidate memory which is covered by a locked vma. The open group say: [EBUSY] Some or all of the addresses in the range starting at addr and continuing for len bytes are locked, and MS_INVALIDATE is specified. - Returns EINVAL if the caller specified both MS_SYNC and MS_ASYNC [EINVAL] The value of flags is invalid. and: "Either MS_ASYNC or MS_SYNC is specified, but not both."
-
Andrew Morton authored
CONFIG_LBD was initially hardwired to "on" for testing. That seems to have gone OK, so now make it configurable.
-
Andrew Morton authored
From Bill Irwin: ensure that the data structures which hold the node's zone structures is all zeroed before we start using it.
-
Andrew Morton authored
If you're peforming 512-byte sized IOs. With, say, dd of=/dev/raw/raw1 bs=512 then the `pgpgin' and `pgpgout' accounting just sits on zero. This is because it counts in kbytes, and 512/1024 is zero. So change it to count sectors, and divide that by two when we report it to userspace.
-
Andrew Morton authored
From Ed Tomlinson, then mauled by yours truly. The current shrinking of the dentry, inode and dquot caches seems to work OK, but it is slightly CPU-inefficient: we call the shrinking functions many times, for tiny numbers of objects. So here, we just batch that up - shrinking happens at the same rate but we perform it in larger units of work. To do this, we need a way of knowing how many objects are currently in use by individual caches. slab does not actually track this information, but the existing shrinkable caches do have this on hand. So rather than adding the counters to slab, we require that the shrinker callback functions keep their own count - we query that via the callback. We add a simple registration API which is exported to modules. A subsystem may register its own callback function via set_shrinker(). set_shrinker() simply takes a function pointer. The function is called with int (*shrinker)(int nr_to_shrink, unsigned int gfp_mask); The shrinker callback must scan `nr_to_scan' objects and free all freeable scanned objects. Note: it doesn't have to *free* `nr_to_scan' objects. It need only scan that many. Which is a fairly pedantic detail, really. The shrinker callback must return the number of objects which are in its cache at the end of the scanning attempt. It will be called with nr_to_scan == 0 when we're just querying the cache size. The set_shrinker() registration API is passed a hint as to how many disk seeks a single cache object is worth. Everything uses "2" at present. I saw no need to add the traditional `here is my void *data' to the registration/callback. Because there is a one-to-one relationship between caches and their shrinkers. Various cleanups became possible: - shrink_icache_memory() is no longer exported to modules. - shrink_icache_memory() is now static to fs/inode.c - prune_icache() is now static to fs/inode.c, and made inline (single caller) - shrink_dcache_memory() is made static to fs/dcache.c - prune_dcache() is no longer exported to modules - prune_dcache() is made static to fs/dcache.c - shrink_dqcache_memory() is made static to fs/dquot.c - All the quota init code has been moved from fs/dcache.c into fs/dquot.c - All modifications to inodes_stat.nr_inodes are now inside inode_lock - the dispose_list one was racy.
-
Greg Kroah-Hartman authored
into kroah.com:/home/linux/linux/BK/gregkh-2.5
-
David Brownell authored
Cleaning out my queue of most minor patches: - Provides some kerneldoc for 'struct usb_interface' now that the API is highlighting it. - Fixes usb_set_interface() so it doesn't affect other interfaces. This provides the right place for an eventual HCD call to clean out now-invalid records of endpoint state, and also gets rid of a potential SMP issue where drivers on different interfaces calling concurrently could clobber each other. (Per-interface data doesn't need locking except against config changes.) - It's OK to pass URB_NO_INTERRUPT hints if you're queueing a bunch of interrupt transfers. The set_interface call should eventually take the interface as a parameter, it's one of the few left using the "device plus magic number" identifier. I have a partial patch for that, but it doesn't handle the (newish) ALSA usb audio driver or a few other callers.
-
Greg Kroah-Hartman authored
Thanks to David Brownell for pointing this out to me.
-
Romain Liévin authored
Here is patch which adds parallel link cable support for Texas Instruments graphing calculators.
-
-
Russell King authored
Keep the partition information around for the lifetime of the module.
-
Russell King authored
This updates AFS mtd partition parsing to the current CVS version: - Don't recognise the AFS SIB as a partition - Ensure initialisation of afs mtdpart structures.
-
Russell King authored
-
Russell King authored
-
Russell King authored
-
Russell King authored
We removed asm/mach-types.h from asm/hardware.h. This means we must now include asm/mach-types.h where its used. We also fix h3600 pcmcia initialisation/cleanup.
-
Russell King authored
-
Russell King authored
Traditionally, the Assabet reverses its mapping of UART1 and UART3 when the Neponset board is connected. This can be (a) confusing and (b) annoying when the boot loader uses UART1. We therefore have a fixed mapping between the ttySA names and the physical UARTs on this platform.
-
Russell King authored
The patches convert drivers/pcmcia to use C99 named initializers, and all the patches are against 2.5.42. There are 25 patches in total, and the "cat"ing them together they're more that 20K, so I'm sending the patches as a compressed attachment. The patches were CC'd to Linus in the first mail that bounced.
-
Russell King authored
Here's a small set of patches that switch the code to use C99 desiginated initializers. Patches are against 2.5.42.
-
Russell King authored
-
Russell King authored
Prevent the assembler putting constant pools in the middle of code. Clean up shark ISA PIC handling.
-
Russell King authored
This cset removes the global irq handling in the AcornSCSI driver, and makes the target type for bitops an unsigned long array rather than an unsigned char array.
-
Russell King authored
-
Russell King authored
Remove unnecessary use of __inline__, and remove a few unnecessary prototypes. copy_buffer is moved before use.
-
Russell King authored
This removes a compilation warning and makes the code smaller. It is also more obvious what's going on.
-
Russell King authored
The USB gadget code now lives in arch/arm/mach-sa1100/usb, and isn't in a mergable state. We remove the old makefile entries which are never going to be satisfied, and leave a placeholder for the usb directory.
-
Russell King authored
dump_stack() got used by the generic code. Call our version __dump_stack since we're running out of other descriptive names. Allow show_trace_task to show the backtrace for the current thread.
-
Russell King authored
Add rudimentary support for Thumb ptracing; we aren't able to single step through thumb branches yet, but this change provides enough infrastructure to make this possible.
-
Russell King authored
This cset updates (as much as is possible) the NCR5380-based Acorn SCSI drivers, mainly converting them to the new error handling code. However, they still don't build due to errors in NCR5380.
-
Russell King authored
Vojtech has patches that bring their counterparts in the input subsystem up to date (and into a working state) so these drivers are no longer required. This cset also fixes the Acorn i2c RTC code.
-
Russell King authored
This cset combines the Atomwide and The Serial Port 16550 driver modules into one "8250_acorn.c" driver. This new module takes full advantage of the LDM-based expansion card facilities.
-
Russell King authored
This cset implements validity checks on the ethernet MAC address when the device is opened, and refuses to open the device if this check fails. We also provide the set_mac_address method to allow ifconfig to change the mac address to something valid. In addition, the driver is converted from the old expansion card discovery methods to the new device model driver framework.
-
Russell King authored
Provide LDM-based driver registration/removal interface for drivers to use. We make the old device discovery code ignore devices claimed via the LDM framework. However, the LDM framework ignores devices that may be in use by the old device discovery code. This is fine since the only devices that will still use the old discovery code will be SCSI drivers. Currently, we don't provide a useful dev.name entry.
-
Russell King authored
This updates the Integrator cpufreq code to use the new interfaces, and makes the sa1100 cpufreq round up the requested frequency.
-
Russell King authored
The second serial port is never present in these machines, so its pointless listing it in the first place.
-
Russell King authored
-