1. 23 Sep, 2002 35 commits
    • Patrick Mochel's avatar
      driver model: add better platform device support. · f6bec0e6
      Patrick Mochel authored
      Platform devices are devices commonly found on the motherboard of systems. This
      includes legacy devices (serial ports, floppy controllers, parallel ports, etc)
      and host bridges to peripheral buses. 
      
      We already had a platform bus type, which gives a way to group platform devices
      and drivers, and allow each to be bound to each other dynamically. Though before,
      it didn't do anything. It still doesn't do much, but we now have:
      
      - struct platform_device, which generically describes platform deviecs. This only
        includes a name and id in addition to a struct device, but more may be added later.
      
      - implelemnt platform_device_register() and platform_device_unregister() to handle
        adding and removing these devices. 
      
      - Create legacy_bus - a default parent device for legacy devices. 
      
      - Change the floppy driver to define a platform_device (instead of a sys_device). 
        In driverfs, this gives us now:
      
      a# tree -d /sys/bus/platform/
      /sys/bus/platform/
      |-- devices
      |   `-- floppy0 -> ../../../root/legacy/floppy0
      `-- drivers
      
      and
      
      # tree -d /sys/root/legacy/
      /sys/root/legacy/
      `-- floppy0
      f6bec0e6
    • Patrick Mochel's avatar
      Merge osdl.org:/home/mochel/src/kernel/devel/linux-2.5-virgin · d668723c
      Patrick Mochel authored
      into osdl.org:/home/mochel/src/kernel/devel/linux-2.5
      d668723c
    • Patrick Mochel's avatar
      driver model: add support for multi-board systems. · aeb14ea3
      Patrick Mochel authored
      - device struct sys_root for describing the individual boards of a multi-board
        system.
      
      - allow for registration of alternate device roots.
      
      - check if struct sys_device::root is set on registration, and add it as a child of
        an alternative root, if it's set. 
      aeb14ea3
    • Andrew Morton's avatar
      [PATCH] direct-io bandaid · bf72e973
      Andrew Morton authored
      The direct-IO code is currently generating 1 meg BIOs (and
      subsequent BUGs) because it doesn't know about bio_add_page().
      
      Could we please drop it to 16k until we get it sorted out?
      bf72e973
    • Patrick Mochel's avatar
      driver model: add support for CPUs. · 2a833213
      Patrick Mochel authored
      - Create struct cpu to generically describe cpus (it simply contains
        a struct sys_device in it).
      
      - Define an array of size NR_CPUS in arch/i386/kernel/cpu/common.c 
        and register each on bootup. This gives us something like:
      
      # tree -d /sys/root/sys/
      /sys/root/sys/
      |-- cpu0
      |-- pic0
      `-- rtc0
      
      and:
      
      # tree -d /sys/bus/system/devices/
      /sys/bus/system/devices/
      |-- cpu0 -> ../../../root/sys/cpu0
      
      - Define arch-specific CPU driver that's also registered on boot.
        That gives us: 
      
      # tree -d /sys/bus/system/drivers/
      /sys/bus/system/drivers/
      |-- cpu
      
      - Create a CPU device class that's registered very early. That 
        gives us all the CPUs in the system in one place:
      
      # tree -d /sys/class/cpu/
      /sys/class/cpu/
      |-- devices
      |   `-- 0 -> ../../../root/sys/cpu0
      `-- drivers
      
      Other archs are encouraged to do the same.
      2a833213
    • Patrick Mochel's avatar
      USB: fixup handling of generic USB driver. · 714279be
      Patrick Mochel authored
      The generic driver is used by the virtual USB bridge device. This makes sure that
      the driver is registered before we try to use it (and it gets the bus type right).
      
      We also check for equality when matching devices to drivers, because we don't 
      want to match any device to it. 
      714279be
    • Patrick Mochel's avatar
      Driver model: handle devices registered with ->driver set. · 4ee5a59e
      Patrick Mochel authored
      In some cases, especially when dealing with system and platform devices, a 
      device's driver is known when the device is registered. We still want to add
      the device to the driver's list and add it to the class.
      
      This makes splits driver binding into probe() and attach(). If the device already
      has a driver, we simply call attach(). Otherwise, we try to match it on the bus
      and still call found_match().
      
      This requires that all drivers that are referenced are registered beforehand.
      4ee5a59e
    • Patrick Mochel's avatar
      Driver model: improve support for system devices. · 8b755139
      Patrick Mochel authored
        
      - Create struct sys_device to describe system-level devices (CPUs, PICs, etc.). This 
        structure includes a 'name' and 'id' field for drivers to fill in with a simple
        canonical name (like 'pic' or 'floppy') and the id of the device relative to its 
        discovery in the system (it's enumerated value).
      
        The core then constructs the bus_id for the device from these, giving them meaningful
        names when exporting them to userspace:
      
      # tree -d /sys/root/sys/
      /sys/root/sys/
      |-- pic0
      `-- rtc0
      
      - Replace 
      	int register_sys_device(struct device * dev);
      	with 
      	int sys_device_register(struct sys_device * sysdev);
      
      - Fixup the users of the API.
      
      - Add a system_bus_type for devices to associate themselves with. This provides a 
        bus/system/ directory in driverfs that looks like:
      
      # tree -d /sys/bus/system/
      /sys/bus/system/
      |-- devices
      |   |-- pic0 -> ../../../root/sys/pic0
      |   `-- rtc0 -> ../../../root/sys/rtc0
      `-- drivers
          `-- pic
      8b755139
    • Greg Kroah-Hartman's avatar
      Merge kroah.com:/home/greg/linux/BK/bleeding_edge-2.5 · 7fcc2c87
      Greg Kroah-Hartman authored
      into kroah.com:/home/greg/linux/BK/gregkh-2.5
      7fcc2c87
    • Adams IT Services's avatar
      [PATCH] USBLCD updates · 9c5e6f5a
      Adams IT Services authored
      -increased timeout value because some people reported problems
      -(important!) Vender ID has changed from 0x1212 to 0x10D2 , my official
        assigned one.
      -added usblcd driver to configure.help
      9c5e6f5a
    • Stuart MacDonald's avatar
      [PATCH] usb whiteheat driver update · 97338442
      Stuart MacDonald authored
      Update to full working driver status. Latest firmware 4.06 too. Driver
      now officially supported.
      97338442
    • Greg Kroah-Hartman's avatar
      [PATCH] USB: made port_softint global for other usb-serial drivers to use. · e185597b
      Greg Kroah-Hartman authored
      Based off of a patch from Stuart MacDonald <stuartm@connecttech.com>
      e185597b
    • Stuart MacDonald's avatar
      [PATCH] USB: clean up the error logic for open() in the usb-serial driver · 9a50ad7f
      Stuart MacDonald authored
      This cleans up the error path in the open() call to make a bit more
      sense.
      9a50ad7f
    • Greg Kroah-Hartman's avatar
      [PATCH] USB: fix for ezusb firmware download · 20e3be5f
      Greg Kroah-Hartman authored
      This fixes a stupid error in the timeout value when downloading firmware
      to a device.  The WhiteHEAT device now works properly with this patch.
      20e3be5f
    • Alan Stern's avatar
      [PATCH] usb-storage: fix return codes... · 0d80c6f5
      Alan Stern authored
      Like the header says, this patch fixes up the various Transfer- and
      Transport-level return codes.  There were a lot of places in the various
      subdrivers that were not particularly careful about distinguishing the
      two; it would help if the people currently maintaining those drivers could
      take a look at my changes to make sure I haven't screwed anything up.
      
      # Converted US_BULK_TRANSFER_xxx to USB_STOR_XFER_xxx, to make it more
      # easily distinguishable from USB_STOR_TRANSPORT_xxx.  (Also, in the
      # future these codes may apply to control transfers as well as to bulk
      # transfers.)
      #
      # Changed USB_STOR_XFER_FAILED to USB_STOR_XFER_ERROR, since it implies
      # a transport error rather than a transport failure.
      #
      # Added a USB_STOR_XFER_STALLED code, to indicate a transfer that was
      # terminated by an endpoint stall.
      
      This patch is in preparation for one in which usb_stor_transfer_partial()
      and usb_stor_transfer() are replaced by usb_stor_bulk_transfer_buf() and
      usb_stor_bulk_transfer_srb() respectively, with slightly different
      argument lists.  Ultimately the subdrivers will be able to use these
      routines in place of the slightly specialized versions they have now and
      in place of the ones in raw_bulk.c.
      0d80c6f5
    • Luc Van Oostenryck's avatar
      [PATCH] #include <linux/version.h> missing in drivers/usb/host/ohci-hcd.c · 7e5b54d4
      Luc Van Oostenryck authored
      compile fails with the following message:
      
      	> In file included from ohci-hcd.c:136:
      	> ohci-dbg.c:318: parse error
      	> make[3]: *** [ohci-hcd.o] Error 1
      
      due to a missing #include <linux/version.h>
      
      Here is a trivial patch for this.
      7e5b54d4
    • David Brownell's avatar
      [PATCH] USB shutdown oopser · 817c0217
      David Brownell authored
      is it guarenteed that callers have zero'd out the device
      before this is invoked?  Else the following is necessary to
      prevent potential OOPS's derefencing interface->dev.driver in
      the generic device layer.
      817c0217
    • David Brownell's avatar
      [PATCH] ehci-hcd: update · df42f7cf
      David Brownell authored
      Here's an EHCI update, I'll send separate patches to sync 2.4 with
      this version.  Changes in this version include:
      
        - An earlier locking update would give trouble on SPARC, where
          irqsave "flags" aren't flags.  This resolves that issue by
          adding a module parameter to limit work done with irqs off.
          (Some net drivers do the same thing.)
      
        - Optionally (now #ifdef DEBUG) collects some statistics on IRQs
          and URBs.  There are more IAA interrupts than I want to see,
          during extended usb-storage loading.
      
        - Adds a commented-out workaround for a problem I've seen on one
          VT8235.  Seems likely an issue with this specific motherboard;
          another tester hasn't reported such issues.
      
        - Includes the jiffies time_after() patch from Tim Schmielau.
      
        - Minor tweaks to the hcd portability (get rid of another #if).
      
        - Minor doc/diagnostic/... updates
      df42f7cf
    • David Brownell's avatar
      [PATCH] ohci-hcd, queue fault recovery + rm DEBUG · 65e2da7e
      David Brownell authored
      This USB patch updates the OHCI driver:
      
        - converts to relying on td_list shadowing the hardware's
          schedule; only collecting the donelist needs dma_to_td(),
          and td list handling works much like EHCI or UHCI.
      
        - leaves faulted endpoint queues (bulk/intr) disabled until
          the relevant drivers had a chance to clean up.
      
        - fixes minor bugs (unreported) in the affected code:
            * byteswap problem when unlinking urbs ... symptom would
              be data toggle confusion (since 2.4.2x) on big-endian cpus
            * latent bug if folk unlinked queue in LIFO order, not FIFO
      
        - removes unnecessary debug code; mostly de-BUG()ged
      
      The interesting fix is the "leave queues halted" one.  As
      discussed on email a while back, this HCD fault handling
      policy (also followed by EHCI) is sufficient to let device
      drivers implement the two key fault handling policies that
      seem to be necessary:
      
          (a) Datagram style, where issues on one I/O won't affect
              the next unless the device halted the endpoint.  The
              device driver can ignore most errors other than -EPIPE.
      
          (b) Stream style, where for example it'd be wrong to ever
              let block N+1 overwrite block N on the disk.  Once
              the first URB fails, the rest would just be unlinked
              in the completion handler.
      
      As a consequence of using the td_list, you can now see urb
      queuing in action in the driverfs 'async' file.  At least, if
      you look at the right time, or use drivers (networking, etc)
      that queue (bulk) reads for a long time.
      65e2da7e
    • Ingo Molnar's avatar
      [PATCH] de-xchg fork.c · 94eda096
      Ingo Molnar authored
      This fixes all xchg()'s and a preemption bug.
      94eda096
    • Ingo Molnar's avatar
      [PATCH] pidhash cleanups, tgid-2.5.38-F3 · 817fdd72
      Ingo Molnar authored
      This does the following things:
      
       - removes the ->thread_group list and uses a new PIDTYPE_TGID pid class
         to handle thread groups. This cleans up lots of code in signal.c and
         elsewhere.
      
       - fixes sys_execve() if a non-leader thread calls it. (2.5.38 crashed in
         this case.)
      
       - renames list_for_each_noprefetch to __list_for_each.
      
       - cleans up delayed-leader parent notification.
      
       - introduces link_pid() to optimize PIDTYPE_TGID installation in the
         thread-group case.
      
      I've tested the patch with a number of threaded and non-threaded
      workloads, and it works just fine. Compiles & boots on UP and SMP x86.
      
      The session/pgrp bugs reported to lkml are probably still open, they are
      the next on my todo - now that we have a clean pidhash architecture they
      should be easier to fix.
      817fdd72
    • Linus Torvalds's avatar
      Terminate a failed IO properly · 76417366
      Linus Torvalds authored
      76417366
    • Linus Torvalds's avatar
      Merge http://linux-isdn.bkbits.net/linux-2.5.isdn · 46796862
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      46796862
    • Kai Germaschewski's avatar
      ISDN: Fix build when CONFIG_ISDN_TTY_FAX is not set · 767bf8a2
      Kai Germaschewski authored
      T30_s * is part of a union, so the typedef needs to exist even when
      CONFIG_ISDN_TTY_FAX is not set.
      767bf8a2
    • Linus Torvalds's avatar
      Merge http://linux-isdn.bkbits.net/linux-2.5.make · c06fd892
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      c06fd892
    • Kai Germaschewski's avatar
      kbuild: Convert missed L_TARGET references · a8c7db20
      Kai Germaschewski authored
      When converting all L_TARGETs to lib.a, I missed these instances.
      a8c7db20
    • Peter Rival's avatar
      [PATCH] Compile fixes for alpha arch · 41447041
      Peter Rival authored
      Update alpha port to work with new nanosecond xtime, and the in_atomic()
      requirements.
      41447041
    • Linus Torvalds's avatar
      Merge bk://thebsh.namesys.com/bk/reiser3-linux-2.5 · 59e8b32c
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      59e8b32c
    • Mikael Pettersson's avatar
      [PATCH] fix UP_APIC linkage problem in 2.5.3[78] · cb45d949
      Mikael Pettersson authored
      The problem is that the local APIC code references stuff in
      mpparse, but 2.5.37 changed arch/i386/kernel/Makefile to only
      compile mpparse for SMP.
      
      This patch works around this by enforcing CONFIG_X86_MPPARSE
      for all LOCAL_APIC-enabled configs.
      cb45d949
    • Jens Axboe's avatar
      [PATCH] bio_get_nr_vecs · 63b9d36d
      Jens Axboe authored
      Add bio_get_nr_vecs(). It returns an approximate number of pages that
      can be added to a block device. It's just a ballpark number, but I think
      this is quite fine for the type of thing it is needed for: mpage etc
      need to know an approx size of a bio that they need to allocate. It
      would be silly to continously allocate 64-page sized bio_vec entries, if
      the target cannot do more than 8, for example.
      63b9d36d
    • Jens Axboe's avatar
      [PATCH] pdc4030 · 58c1b542
      Jens Axboe authored
      make pdc4030 work
      58c1b542
    • Jens Axboe's avatar
      [PATCH] trm compile · 6c99eec3
      Jens Axboe authored
      Bad merge from 2.4.20-pre-ac, ide_build_dmatable() does not need data
      direction argument in 2.5 (it's implicit in the request)
      6c99eec3
    • Tim Schmielau's avatar
      76dc17b4
    • Ivan Kokshaysky's avatar
      [PATCH] Re: 2.5.36 IDE fixes · 7d663f71
      Ivan Kokshaysky authored
      I'm terribly sorry - I've sent you the wrong diff, it was
      some intermediate variant. Actually it added extra breakage to
      ide_hwif_configure().
      
      Desired behavior was:
      
      if ctl == base == 0, the device is in "true legacy" mode (as per PCI
      spec); use values from the base address registers otherwise.
      7d663f71
    • Jens Axboe's avatar
      [PATCH] more bio updates · ef869838
      Jens Axboe authored
      cleanup end_that_request_first() end_io handling, and fix bug where
      partial completes didn't get accounted right wrt blk_recalc_rq_sectors()
      ef869838
  2. 22 Sep, 2002 5 commits