1. 10 Jun, 2003 23 commits
  2. 09 Jun, 2003 5 commits
    • Patrick Mochel's avatar
      60c37a8b
    • Patrick Mochel's avatar
      [driver model] Make sure that system devices are handled specially power-wise · 9777b1de
      Patrick Mochel authored
      - Suspend system devices last, after interrupts have been enabled. 
      - Resume them first, before interrupts are enabled. 
      - Shut them down last, after everything else.
      9777b1de
    • Patrick Mochel's avatar
      [kobject] Add set_kset_name · 651d7ed2
      Patrick Mochel authored
      Shorthand macro for initializing only the name of an embedded kset in an 
      object.
      651d7ed2
    • Patrick Mochel's avatar
      [list.h] Add list_for_each_entry_reverse · fab97929
      Patrick Mochel authored
      fab97929
    • Patrick Mochel's avatar
      [driver model] Rewrite system device API · a4ff342a
      Patrick Mochel authored
      System devices are special, and after two years of listening to Linus
      preach this, it finally sunk in enough to do something about. We don't
      need to regard them as real devices that reside on a peripheral bus and
      can be dynamically bound to drivers. If we discover, e.g. a CPU, we know
      by default that we have a driver for it, and we know damn well that we
      have a CPU. We still need to keep track of all the devices, and all the
      devices of a particular type. The kobject infrastructure allows us to do
      this, without the overhead of the regular model.
      
      A new subsystem is defined that registers as a child object of 
      devices_subsys, giving us:
      
              /sys/devices/system/
      
      struct sysdev_class {
              struct list_head        drivers;
      
              /* Default operations for these types of devices */
              int     (*shutdown)(struct sys_device *);
              int     (*suspend)(struct sys_device *, u32 state);
              int     (*resume)(struct sys_device *);
              struct kset             kset;
      };
      
      Defines a type of system device. These are registered on startup, by e.g. 
      drivers/base/cpu.c. The methods are default operations for devices of that 
      type that may or may not be used. For things like the i8259 controller, 
      these will be filled in, since it is registered by the same component that 
      the device controls reside in. 
      
      For things like CPUs, generic code will register the class, but other 
      architecture-specific or otherwise configurable drivers may register 
      auxillary drivers, that look like: 
      
      struct sysdev_driver {
              struct list_head        entry;
              int     (*add)(struct sys_device *);
              int     (*remove)(struct sys_device *);
              int     (*shutdown)(struct sys_device *);
              int     (*suspend)(struct sys_device *, u32 state);
              int     (*resume)(struct sys_device *);
      };
      
      
      Each auxillary driver gets called during each operation on a device of a 
      particular class. 
      Auxillary drivers may register with a NULL class parameter, in which case 
      they will be added to a list of 'global drivers' that get called for each 
      device of each class. 
      
      
      Besides providing a decent of cleanup for system device drivers, this also 
      allows:
      
      - Special handling of system devices during power transitions. 
      
        We no longer have to worry about shutting down the PIC before we shut 
        down any devices. We can shut down the system devices after we've shut 
        down every other device. 
      
        Ditto for suspend/resume cycles. Almost (if not) all PM actions for 
        system devices happen with interrupts off, and require only one call, 
        which makes that easier. But, we can also make sure we take care of 
        these last during suspend and first during resume.
      
      - Easy expression of configurable device-specific interfaces. 
      
        Namely cpufreq and mtrr. We don't have to worry about mispresentation in 
        the driver model (like recent MTRR patches) or using a cumbersome 
        interface ({device,class}_interface) that don't receive all the 
        necessary calls. 
      
      - Consolidation of userspace representation.
      
        No longer do we have /sys/devices/sys, /sys/bus/sys, and /sys/class/cpu,
        etc. We have only /sys/devices/system: 
      
      # tree /sys/devices/system/
      /sys/devices/system/
      |-- cpu
      |   `-- cpu0
      |-- i8259
      |   `-- i82590
      |-- lapic
      |   `-- lapic0
      |-- rtc
      |   `-- rtc0
      `-- timer
          `-- timer0
      
      Each directory in 'system' is the class, and each directory under that is 
      the instance of each device in that class. 
      a4ff342a
  3. 05 Jun, 2003 12 commits
    • Jeff Garzik's avatar
      Merge redhat.com:/garz/repo/linus-2.5 · cb4acf11
      Jeff Garzik authored
      into redhat.com:/garz/repo/net-drivers-2.5
      cb4acf11
    • Hideaki Yoshifuji's avatar
      [netdrvr] C99 initializers for arcnet · 7107a09c
      Hideaki Yoshifuji authored
      7107a09c
    • Scott Feldman's avatar
      [PATCH] remove ethtool privileged references · 5443b474
      Scott Feldman authored
      dev_ioctl already checks capable(CAP_NET_ADMIN) for SOICETHTOOL, so
      privileged reference are not necessary.
      5443b474
    • Scott Feldman's avatar
      [PATCH] 10GbE ethtool support · c4a875e5
      Scott Feldman authored
      Add 10GbE support for ethtool.
      c4a875e5
    • Zwane Mwaikambo's avatar
      [PATCH] cli/sti cleanup for fmvj18x · f86e71e8
      Zwane Mwaikambo authored
      This one should be safe as we're protected by the xmit_lock in all instances
      f86e71e8
    • Jeff Garzik's avatar
      08d84e53
    • Simon Kelley's avatar
      [netdrvr] add atmel[_cs], new wireless driver · bd75dd8c
      Simon Kelley authored
      Attached is a driver for Atmel at76c50x WiFi cards. This code started
      out as a GPL release from Atmel of pretty horrible quality and I've
      extensively re-worked it with the aim of making it acceptable in the
      kernel. Please could you take a look and either pass it into the patch
      stream or let me know what's wrong with it?
      
      The code has been tested on at least three different brand cards by
      different people. Jean Tourrilhes took a look at an earlier version an
      was positive. He's put incorporating this into 2.6 as a priority 1.
      The patch works fine on 2.5.70.
      
      The firmware issue has been addressed now. The only firmware in the
      driver is a small stub which reads the MAC address from NVRAM on the
      card. The source for that is included so there are no GPL issues. The
      main firmware is loaded from userspace using Manuel Estrada Sainz's
      sysfs firmware class. I know that the  patch for that has been
      accepted but it hasn't turned up anywhere I can see yet. The 
      driver compiles fine even without the firmware class. I've made a
      package of the firmware images which is available from my website.
      
      The remaining issues with the driver are migrating PCMCIA to the new
      driver model and PCI support. I'm happy to produce followup patches as
      the PCMCIA system gets evolved to the new driver model: the timing on
      that is controlled by others. This set of chips includes a PCI version
      and the driver should support that, but AFAIK there is no PCI hardware
      available anywhere. If Atmel can provide me with some it will be
      simple to add PCI support.
      
      The driver uses the CRC32 library module and the firmware loader. I've
      not put in dependencies on those, but when the lastest set of patches
      go into Kconfig I'll set it up so that selecting the Atmel driver
      selects CRC32 and FW_LOADER too.
      bd75dd8c
    • Stephen Hemminger's avatar
      [PATCH] sb1000 driver bugs · b1871948
      Stephen Hemminger authored
      Inspecting the sb1000 driver showed some interesting bugs:
      	- net device pointer is used before the device is allocated; gcc
      	  does catch this.
      	- unregister is called even though device not registered successfully
      	- net device is not freed on remove.
      
      Compiles but don't have hardware to test.  Don't know how it ever worked though.
      b1871948
    • Hollis Blanchard's avatar
      [PATCH] awe_wave.c user pointer dereference · 5c9e7fc0
      Hollis Blanchard authored
      Two ioctl functions in sound/oss/awe_wave.c were directly dereferencing
      a user-supplied pointer in a few places.
      5c9e7fc0
    • Linus Torvalds's avatar
      zlib cleanup: final fixups · cd6a8eae
      Linus Torvalds authored
      Jörn missed a few places of FAR conversion in inflate
      cd6a8eae
    • Jörn Engel's avatar
      [PATCH] zlib cleanup: OF · 3e3addbb
      Jörn Engel authored
      Remove the stale support for K&R function declarations through the OF()
      macro.
      
      This is the last patch to clean up zconf.h, at least for now.
      3e3addbb
    • Jörn Engel's avatar
      [PATCH] zlib cleanup: z_off_t · e5a74b67
      Jörn Engel authored
      This nice macro must have been one of the good intentions on the road
      to hell.  Completely unused. :)
      e5a74b67