1. 15 Jul, 2003 11 commits
    • Dave Jones's avatar
      [CPUFREQ] Fix locking [8/11] · 86372d54
      Dave Jones authored
      Split up cpufreq_governor into a locking and non-locking variant.
      86372d54
    • Dave Jones's avatar
      [CPUFREQ] Fix locking [7/11] · e45335e8
      Dave Jones authored
      Finally implement the two different cpufreq_driver_target callbacks --
      the one called while the per-CPU lock is held, the other while
      not. While we're at it, clean up cpufreq_governor.
      e45335e8
    • Dave Jones's avatar
      [CPUFREQ] Fix locking [6/11] · 2717cc0d
      Dave Jones authored
      Change the function parameter of cpufreq_cpu_put to struct
      cpufreq_policy *.
      2717cc0d
    • Dave Jones's avatar
      [CPUFREQ] Fix locking [5/11] · 3563db15
      Dave Jones authored
      Make cpufreq_set_policy a bit more readable by storing the CPU's
      cpufreq_policy into a pointer.
      3563db15
    • Dave Jones's avatar
      [CPUFREQ] Fix locking [4/11] · fb430fb1
      Dave Jones authored
      Make cpufreq_remove_dev a bit more readable. Also, assure that the
      GOV_STOP and the cpufreq_driver->exit() call are indeed the last calls
      done.
      fb430fb1
    • Dave Jones's avatar
      [CPUFREQ] Fix locking [3/11] · a5f5ddb8
      Dave Jones authored
      Change the return value of cpufreq_cpu_get from a nondescriptent int
      to struct cpufreq_policy*. This will allow for cleaner code - and
      later it will be expected that anyone who grabs a reference by calling
      cpufreq_cpu_get must return this struct cpufreq_policy* to
      cpufreq_cpu_put.
      a5f5ddb8
    • Dave Jones's avatar
      [CPUFREQ] Locking fixes [2/11] · 618b27dc
      Dave Jones authored
      As the per-CPU initialization can fail, we need to deal with this
      situation in cpufreq_remove_dev as the sysdev core doesn't (yet) do
      this for us. The solution: add a "struct cpufreq_policy
      *cpufreq_cpu_data[NR_CPUS]" array, which has a NULL pointer for each
      CPU not managed by cpufreq (yet) and a pointer to the per-CPU data
      for each CPU managed by cpufreq. It is locked by cpufreq_driver_lock.
      618b27dc
    • Dave Jones's avatar
      [CPUFREQ] Locking fixes [1/11] · 807ea9d6
      Dave Jones authored
      First part in a series of patches from Dominik which clean up the locking in
      cpufreq. It sort of worked, but is full of races. But to keep it
      working at least as well it works now, add a new spinlock
      cpufreq_driver_lock which will be what cpufreq_driver_sem intended to
      be -- but it can indeed be a spinlock instead of a semaphore. 
      
      This driver adds proper protection for struct cpufreq_driver
      *cpufreq_driver which can only go away during cpufreq_unregister --
      block this by increasing the driver's module reference count.
      807ea9d6
    • Dave Jones's avatar
      [CPUFREQ] Longrun validate can fail. · fafe16b7
      Dave Jones authored
      From Dominik
      
      Instead of trying to guess what the user intended, fail if the user
      requests a setting which is not supported by the longrun driver.
      fafe16b7
    • Dave Jones's avatar
      c65dd7c8
    • Dave Jones's avatar
      [CPUFREQ] update Documentation · d941effa
      Dave Jones authored
      - the path to sysfs changed
      - add the cpufreq_driver.owner requirement
      - clarify another paragraph
      d941effa
  2. 12 Jul, 2003 11 commits
  3. 11 Jul, 2003 18 commits