1. 26 Sep, 2011 3 commits
    • Rafael J. Wysocki's avatar
      PM / Domains: Split device PM domain data into base and need_restore · cd0ea672
      Rafael J. Wysocki authored
      The struct pm_domain_data data type is defined in such a way that
      adding new fields specific to the generic PM domains code will
      require include/linux/pm.h to be modified.  As a result, data types
      used only by the generic PM domains code will be defined in two
      headers, although they all should be defined in pm_domain.h and
      pm.h will need to include more headers, which won't be very nice.
      
      For this reason change the definition of struct pm_subsys_data
      so that its domain_data member is a pointer, which will allow
      struct pm_domain_data to be subclassed by various PM domains
      implementations.  Remove the need_restore member from
      struct pm_domain_data and make the generic PM domains code
      subclass it by adding the need_restore member to the new data type.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      cd0ea672
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-fixes' into pm-domains · 0d41da2e
      Rafael J. Wysocki authored
      Merge commit e8b364b8
      (PM / Clocks: Do not acquire a mutex under a spinlock) fixing
      a regression in drivers/base/power/clock_ops.c.
      
      Conflicts:
      	drivers/base/power/clock_ops.c
      0d41da2e
    • Rafael J. Wysocki's avatar
      PM / Clocks: Do not acquire a mutex under a spinlock · e8b364b8
      Rafael J. Wysocki authored
      Commit b7ab83ed (PM: Use spinlock instead of mutex in clock
      management functions) introduced a regression causing clocks_mutex
      to be acquired under a spinlock.  This happens because
      pm_clk_suspend() and pm_clk_resume() call pm_clk_acquire() under
      pcd->lock, but pm_clk_acquire() executes clk_get() which causes
      clocks_mutex to be acquired.  Similarly, __pm_clk_remove(),
      executed under pcd->lock, calls clk_put(), which also causes
      clocks_mutex to be acquired.
      
      To fix those problems make pm_clk_add() call pm_clk_acquire(), so
      that pm_clk_suspend() and pm_clk_resume() don't have to do that.
      Change pm_clk_remove() and pm_clk_destroy() to separate
      modifications of the pcd->clock_list list from the actual removal of
      PM clock entry objects done by __pm_clk_remove().
      Reported-and-tested-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      e8b364b8
  2. 25 Sep, 2011 4 commits
  3. 23 Sep, 2011 26 commits
  4. 22 Sep, 2011 7 commits