1. 14 Oct, 2002 1 commit
    • Ivan Kokshaysky's avatar
      [PATCH] alpha ISA dma and MAX_DMA_ADDRESS · 48e7ce94
      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.
      48e7ce94
  2. 13 Oct, 2002 39 commits
    • Linus Torvalds's avatar
      Merge bk://linuxusb.bkbits.net/linus-2.5 · 71660e15
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      71660e15
    • Andrew Morton's avatar
      [PATCH] remove kiobufs · 2dcb8ff9
      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().
      2dcb8ff9
    • Andrew Morton's avatar
      [PATCH] msync correctness fixes · 59791303
      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."
      59791303
    • Andrew Morton's avatar
      [PATCH] enable 64-bit sector_t config option · 0e296d85
      Andrew Morton authored
      CONFIG_LBD was initially hardwired to "on" for testing.  That seems to
      have gone OK, so now make it configurable.
      0e296d85
    • Andrew Morton's avatar
      [PATCH] discontigmem: zero out the per-node zone structures at boot · 881b4046
      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.
      881b4046
    • Andrew Morton's avatar
      [PATCH] fix disk IO stats for 512-byte IOs · 12c26749
      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.
      12c26749
    • Andrew Morton's avatar
      [PATCH] batched slab shrink and registration API · 71419dc7
      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.
      71419dc7
    • Greg Kroah-Hartman's avatar
      Merge kroah.com:/home/linux/linux/BK/bleeding-2.5 · 31c96625
      Greg Kroah-Hartman authored
      into kroah.com:/home/linux/linux/BK/gregkh-2.5
      31c96625
    • David Brownell's avatar
      [PATCH] usbcore doc + minor fixes · 321d6a82
      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.
      321d6a82
    • Greg Kroah-Hartman's avatar
      USB: visor.c: changed USB_DT_DEVICE to USB_RECIP_INTERFACE, as that's the proper #define to use. · c2ece75a
      Greg Kroah-Hartman authored
      Thanks to David Brownell for pointing this out to me.
      c2ece75a
    • Romain Liévin's avatar
      [PATCH] char driver: added tipar driver · 2a4eb6d7
      Romain Liévin authored
      Here is patch which adds parallel link cable support for Texas Instruments
      graphing calculators.
      2a4eb6d7
    • Linus Torvalds's avatar
      Merge bk://bk.arm.linux.org.uk · e0970dce
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      e0970dce
    • Russell King's avatar
      [ARM] Update integrator-flash.c from MTD CVS · 4c515af5
      Russell King authored
      Keep the partition information around for the lifetime of the module.
      4c515af5
    • Russell King's avatar
      [ARM] Update AFS mtd partition parsing. · da4acd13
      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.
      da4acd13
    • Russell King's avatar
      [ARM] Update cyber2000fb for 2.5 fbcon. · 63ffa3f0
      Russell King authored
      63ffa3f0
    • Russell King's avatar
      [ARM] Update clps711x fbcon driver. · a2ca74ad
      Russell King authored
      a2ca74ad
    • Russell King's avatar
      fa1625e7
    • Russell King's avatar
      [ARM] Update sa1100 PCMCIA support · 26908da1
      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.
      26908da1
    • Russell King's avatar
      a8ac88a3
    • Russell King's avatar
      [ARM] Make the assabet machine always use the same uart mapping. · a67d2586
      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.
      a67d2586
    • Russell King's avatar
      [ARM] Convert sa1100 PCMCIA drivers to C99 initializers (Art Haas) · 62dadef4
      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.
      62dadef4
    • Russell King's avatar
      [ARM ADFS] C99 designated initialisers (Patch from Art Haas) · a8fd098c
      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.
      a8fd098c
    • Russell King's avatar
      [ARM] Update ARM cache type decoding. · 6c17e8bc
      Russell King authored
      6c17e8bc
    • Russell King's avatar
      [ARM] Fix entry-armv.S · 9e1f670c
      Russell King authored
      Prevent the assembler putting constant pools in the middle of code.
      Clean up shark ISA PIC handling.
      9e1f670c
    • Russell King's avatar
      [ARM] Update acorn scsi code wrt global irq and bitops · e664b42a
      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.
      e664b42a
    • Russell King's avatar
      [ARM] Fix fas216 use of __FUNCTION__ macro. · 4a08171d
      Russell King authored
      4a08171d
    • Russell King's avatar
      [ARM] Update fd1772.c · 705e28a4
      Russell King authored
      Remove unnecessary use of __inline__, and remove a few unnecessary
      prototypes.  copy_buffer is moved before use.
      705e28a4
    • Russell King's avatar
      [ARM] Convert boot-time memory permission selection to table. · 81e7a4c1
      Russell King authored
      This removes a compilation warning and makes the code smaller.
      It is also more obvious what's going on.
      81e7a4c1
    • Russell King's avatar
      [ARM] Remove non-existent USB gadget code from mach-sa1100/Makefile · 5ade4422
      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.
      5ade4422
    • Russell King's avatar
      [ARM] dump_stack and show_trace_task · 2bf9d19a
      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.
      2bf9d19a
    • Russell King's avatar
      [ARM] Rudimentary support for Thumb ptracing. · f6737e3e
      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.
      f6737e3e
    • Russell King's avatar
      [ARM] Fix up NCR5380-based Acorn SCSI drivers · 2d3c0459
      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.
      2d3c0459
    • Russell King's avatar
      [ARM] Remove old Acorn iomd-based keyboard and mouse drivers. · efc500ca
      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.
      efc500ca
    • Russell King's avatar
      [ARM] Acorn serial port driver update · 5425c22f
      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.
      5425c22f
    • Russell King's avatar
      [ARM] Update Acorn ethernet expansion cards · 3ecf65ae
      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.
      3ecf65ae
    • Russell King's avatar
      Convert acorn expansion card probing code to the Linux device model. · 8025567f
      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.
      8025567f
    • Russell King's avatar
      [ARM] cpufreq updates for ARM · 767b74a3
      Russell King authored
      This updates the Integrator cpufreq code to use the new interfaces,
      and makes the sa1100 cpufreq round up the requested frequency.
      767b74a3
    • Russell King's avatar
      [ARM] Remove second serial port address. · 074a2e78
      Russell King authored
      The second serial port is never present in these machines, so its
      pointless listing it in the first place.
      074a2e78
    • Russell King's avatar
      [ARM] Fix iop310-pci compilation errors. · 00325ac8
      Russell King authored
      00325ac8